NeovimでのFuzzyFileFinder「Telescope」を使ってみる
vimでFuzzyFinderといったら国内ではShougoさんのUniteやDeniteから始まり今はdduが広まってきてます。
海外はCTRL-Pやfzfが有名ですが、Neovim環境というとTelescopeが有名な模様。
なんでTelescopeなのか?
この記事とか読んで、ほんとはddu使いたかったけど、職番環境でDeno使えなかったら。
Telescopeだとluaで書いているので、プラグイン2つ入れたら使える。
インストールはPackerで。 Pluginを管理しているplugins.luaに
use{ 'nvim-lua/plenary.nvim'} use{ 'nvim-telescope/telescope.nvim'}
を追加。再起動して、
:PackerInstall
:PackerCompile
するだけで終了。
再起動して
:Telescope find_files
と入力するだけで、すぐ動く。
ファイル名やpathの一部だけで探してくれるので快適。検索欄に日本語入力してもいけた。
終了するときはESCかCTRL+Cで終了。
ESCはこの画面のNormalモードのとき。最初は画面した側の入力欄でInsertモードになってるので、1回目のESCでNormalモードに。NormalモードでのESCで終了になる。
Telescopeではどんな内容を探すのかというのでPickerというのが準備されてる。
ファイル名だけでなく、いろいろあるので組み込みのを使ったり、増やしたりとほんと多機能。
最初は多いので、find_filesとbuffersとhelp_tagsだけ試してみてもいいんじゃないかと。
buffer切り替え用のbuffersはほんと便利。
キーマップを設定することでコマンドの入力も簡単に
-- これは記入済 vim.keymap.set('n', 's', '<NOP>',{noremap = true}) -- 今回追加分 vim.keymap.set('n', 'sf', '<cmd>lua require("telescope.builtin").find_files()<cr>',{noremap = true}) vim.keymap.set('n', 'sb', '<cmd>lua require("telescope.builtin").buffers()<cr>',{noremap = true}) vim.keymap.set('n', 'sh', '<cmd>lua require("telescope.builtin").help_tags()<cr>',{noremap = true})
こうすればNormalモードで
- s + f でファイル検索
- s + bでバッファ一覧
- s + hでヘルプ一覧
が表示される。これから機能追加していくけど、公式ページの説明見るだけでも面白そう。