Table of Contents
はじめに
自分はnvimでファジーファインダーとしてtelescope.nvimを使っていたのですが、fzf-luaに引っ越しました。いつからかわからないのですが、telescope.nvimでファイルを検索すると検索結果がうまく表示されないということが起こるようになっていたので移行しました(telescopeをアップデートしたタイミングで起こるようになったので、設定が変わって自分が対応してないだけな気がしてる…)。
設定も簡単で使い心地もいいので今回は自分の設定を紹介します。設定はGitHubでも公開しています。
dotfiles/dot_config/nvim/lua/plugins/fzf.lua at main · Tatsumi0000/dotfiles
git管理のファイルを検索しているスクショ
grep検索をしているスクショ
fzf-luaの設定
fzf-luaを使うためには事前準備が必要でそちらについてはこちらに書いています。
自分の設定です。プラグインの設定はできるだけプラグイン事に分けるようにしているのでfzf-luaを設定するだけのファイルを作っています。
return { { "ibhagwan/fzf-lua", dependencies = { "nvim-tree/nvim-web-devicons" }, config = function() require("fzf-lua").setup({ "fzf-native", actions = { files = { -- 検索結果のファイルに対してtab -> enterをしたら、そのファイルを一括で開く ["default"] = require("fzf-lua.actions").file_edit, }, }, }) local set = vim.keymap.set set("n", "<leader>ff", require("fzf-lua").files, { desc = "Fzf Files" }) set("n", "<leader>fg", require("fzf-lua").live_grep, { desc = "Fzf live_grep" }) set("n", "<leader>fb", require("fzf-lua").buffers, { desc = "Fzf buffers" }) set("n", "<leader>fif", require("fzf-lua").git_files, { desc = "Fzf Files gitignore" }) set( "n", "<leader>fig", ':lua require"fzf-lua".live_grep({ cmd = "git grep --line-number --column --color=always" })<CR>', { desc = "Fzf git grep" } ) end, },}この設定ファイルをinit.luaで読み込みます。パッケージ管理としてlazyを使っているのでsetupの引数に渡します。
local fzf_lua = require("plugins/fzf")local plugins = { fzf_lua, -- 他にもいろんな設定が続く…}require("lazy").setup(plugins)fzf-luaの戸惑った挙動として検索した結果に対してtabで移動をしてエンターを押すと、ファイル一覧がvsplitで表示されていました。どうやらfzf-luaではtabは移動ではなく、カーソル下のファイルにマーク?をしてエンターを押したタイミングでtabで選択されたファイルをvsplitで一覧で表示するという挙動になるようです。
これはこれで便利そうなので自分は、vsplitで表示するのではなく一気にバッファに展開するように設定をしました。
こちらの箇所です。
["default"] = require'fzf-lua.actions'.file_edit単純にファイル移動をしたい場合は矢印キーで移動して、エンターを押すと目的のファイルのみを開くことができました。
telescopeの見た目がいい場合は、fzf-native の箇所をtelescope に変更することで可能です。
終わりに
fzf-luaになって検索表示もいい感じに表示されて良かったです。設定も簡単に出来て便利です。
参考文献
- nvim-telescope/telescope.nvim: Find, Filter, Preview, Pick. All lua, all the time.
- ibhagwan/fzf-lua: Improved fzf.vim written in lua
- Bug: Opening a single file when multiple files are shown still opens them in QuickFix. · Issue #1308 · ibhagwan/fzf-lua
- ibhagwan/fzf-lua: Improved fzf.vim written in lua