skip to content
私的歌詞倉庫

nvimでtelescope.nvimからfzf-luaに引っ越した

/ 5 min read

Updated:
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管理のファイルを検索しているスクショ

git管理のファイルを検索しているスクショ

grep検索をしているスクショ

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になって検索表示もいい感じに表示されて良かったです。設定も簡単に出来て便利です。

参考文献