Table of Contents
はじめに
この記事はGMOペパボ エンジニア アドベントカレンダーの20日目です。昨日はゆむさんの技術コミュニティと私でした。明日はToshihiko Sakaiさんです。
https://adventar.org/calendars/10036/embed
今年も去年に続き、nvimのプラグインを紹介します。ほとんどが今年使い始めたプラグインです。
去年の紹介はこちらです。
toggleterm.nvim
このプラグインはnvimを開きつつ、ターミナルモードをいい感じに表示するプラグインです。
ターミナルを表示するときに画面上にfloatで表示したいときと、下画面に分割して表示したいときがあるので、それをコマンドで切り替えれるようにしています。
floatは画面上に大きく表示できるので、実行したテスト結果を細かく見たいときなどに使っています。
{ "akinsho/toggleterm.nvim", version = "*", config = function() require("toggleterm").setup({}) -- Alt-f でfloatでターミナルを開く vim.keymap.set("n", "<A-f>", "<cmd>ToggleTerm direction=float<CR>") vim.keymap.set("t", "<A-f>", "<cmd>ToggleTerm<CR>") -- Alt-d で水平でターミナルを開く vim.keymap.set("n", "<A-d>", "<cmd>ToggleTerm direction=horizontal<CR>") vim.keymap.set("t", "<A-d>", "<cmd>ToggleTerm<CR>") end,}
水平分割で表示
folatで表示
copy-file-path.nvim
GitHub - mogulla3/copy-file-path.nvim: A Neovim plugin to copy file path to the clipboard.
ファイルパスをコピーするプラグインです。以前はcopypath.vimというプラグインを使っていたのですが、より高機能なこちらのプラグインに移行しました。
このプラグインはファイル名、相対パス、絶対パスをコマンドで簡単にコピーできるのでよく使っています。
{ { "mogulla3/copy-file-path.nvim" },}mini.nvim
こちらのプラグインは、いくつかのプラグインから構成されているまとめプラグインみたいなもので、mini.nvimを入れなくても使いたいプラグインを指定して使うことができます。
その中で自分が使っているプラグインを紹介します。
echasnovski/mini.starter
こちらはnvimを起動したときの画面を変更することができ、直近開いていたファイルを表示してれます。作業の続きをする時に便利です。
{ "echasnovski/mini.starter", version = false, config = function() require("mini.starter").setup() end,}
直近で開いたファイルを一覧で表示
echasnovski/mini.indentscope
インデントを可視化してくれるプラグインです。記憶があやふやなのですが、以前に他のインデントを可視化するプラグインを使った時ににRubyではうまいこと動いてくれなくて、これを使うようになりました。RubyとPHP、Vue(JavaScript)で使っている感じ、きちんと動いている気がします。
インデントを可視化する時のアニメーションが綺麗で、好きです(公式サイトのデモがわかりやすいです)。
{ "echasnovski/mini.indentscope", version = false, config = function() require("mini.indentscope").setup() end,}
インデントを可視化(画面左端の青い縦線)
mini.cursorword
カーソル下の単語をハイライトしてくれるプラグインです。このプラグインはあくまで同じ単語をハイライトしてくれるだけで、変数のスコープを意識してハイライトはしません。
{ "echasnovski/mini.cursorword", version = false, config = function() require("mini.cursorword").setup() end,}
text_to_moonをハイライト
mini.comment
コメントアウトをするプラグインです。コメントアウトしている状態でコマンドを実行するとコメントアウトを外してくれます。
自分はleaderキーに/でコメントアウトするようにしています。
{ "echasnovski/mini.comment", version = false, config = function() require("mini.comment").setup({ mappings = { comment = "<Leader>/", -- 何の設定かよくわかってない… comment_visual = "<Leader>/", -- vモードで選択している範囲をコメントアウト comment_line = "<Leader>//", -- 現在の行をコメントアウト }, }) end,}mini.bufremove
バッファを削除するプラグインです。VSCodeやXCode、Android Studioでタブを開きすぎた時にCmd(Ctrl) + w でタブを消しているのでそれをnvimでも再現するために入れました。
自分は、Ctrl + w した後にw で現在開いているタブを削除するように設定しました。
{ "echasnovski/mini.bufremove", version = false, config = function() require("mini.bufremove").setup() local set = vim.keymap.set set("n", "<C-w>w", "<Cmd>bdelete<CR>") end,}終わりに
今年使い始めたプラグインを紹介しました。miniシリーズのプラグインは自分も全部は知らないのですが、便利なのでぜひおすすめしたいです!