はじめに
Neovimのプラグインで私がよく使うキーマップを紹介します。
Vim版は こちら です。
環境
- macOS: Ventura 13.5.2(22G91)
- Neovim: v0.10.0-dev-1336+g9c2270b83
注意
- 表の見やすさを優先して
noremap
を省略している
- 「カスタマイズ」は私が使いやすいように変更している
- 私は
<Leader>
を ,
にしている
- わからない説明は先頭に「(?)」を付けている
Neovimのプラグインでよく使うキーマップ一覧
Neovimのプラグインでよく使うキーマップの一覧です。
ノーマル
ノーマルモード( n
)でよく使うキーマップの一覧です。
nvim-treesitter-context
説明 |
デフォルト |
カスタマイズ |
備考 |
前方のコンテキストにジャンプする |
function() require('treesitter-context').go_to_context() end |
[c |
context |
Todo Comments
説明 |
デフォルト |
カスタマイズ |
備考 |
後方のキーワードにジャンプする |
function() todo_comments.jump_next { keywords = { 'FIXME', 'TODO' } } end |
]t |
todo |
前方のキーワードにジャンプする |
function() todo_comments.jump_prev { keywords = { 'FIXME', 'TODO' } } end |
[t |
todo |
LSP
説明 |
デフォルト |
カスタマイズ |
備考 |
次の指摘へ進む |
vim.diagnostic.goto_next |
g] |
|
前の指摘へ戻る |
vim.diagnostic.goto_prev |
g[ |
|
指摘を一覧表示する |
vim.diagnostic.setloclist |
gl |
|
(?)宣言へジャンプする |
vim.lsp.buf.declaration |
gD |
|
定義へジャンプする |
vim.lsp.buf.definition |
gd |
|
情報を表示する |
vim.lsp.buf.hover |
K |
|
(?)実装へジャンプする |
vim.lsp.buf.implementation |
gi |
|
(?)シグニチャのヘルプを表示する |
vim.lsp.buf.signature_help |
<C-k> |
|
ワークスペースに現在のフォルダを追加する |
vim.lsp.buf.add_workspace_folder |
gwa |
|
ワークスペースから現在のフォルダを取り除く |
vim.lsp.buf.remove_workspace_folder |
gwr |
|
ワークスペースを出力する |
function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end |
gwl |
|
型の定義へジャンプする |
vim.lsp.buf.type_definition |
gt |
|
リネームする |
vim.lsp.buf.rename |
gn |
|
指摘に対するアクションの候補を表示する |
vim.lsp.buf.code_action |
ga |
|
参照している箇所を一覧表示する |
vim.lsp.buf.references |
gr |
|
ファイル全体をフォーマットする |
function() vim.lsp.buf.format { async = true } end |
gf |
|
インレイヒントの表示を切り替える |
function() vim.lsp.buf.inlay_hint(bufnr) end |
gh |
hints |
LSP関連のキーマップはほぼ g
をプリフィックスにしています。
Neovim 0.8.0から vim.lsp.buf.formatting
が非推奨になったので、代わりに vim.lsp.buf.format { async = true }
を使っています。
参考
lsp-lens.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
表示を切り替える |
<Cmd>LspLensToggle<CR> |
gs |
|
lsp_lines
説明 |
デフォルト |
カスタマイズ |
備考 |
指摘の表示を切り替える |
require('lsp_lines').toggle |
gp |
|
telescope
説明 |
デフォルト |
カスタマイズ |
備考 |
Gitリポジトリ内のファイルを検索する |
require('telescope.builtin').git_files |
<Leader>F ( ,F ) |
find |
グレップする |
require('telescope').extensions.egrepify.egrepify |
<Leader>f ( ,f ) |
find |
カーソル下の単語でグレップする |
require('telescope.builtin').grep_string |
<Leader>G ( ,G ) |
grep |
バッファを検索する |
require('telescope.builtin').buffers |
<Leader>b ( ,b ) |
buffers |
過去に開いたファイルを検索する |
require('telescope').extensions.frecency.frecency |
<Leader>r ( ,r ) |
recently |
コマンド履歴を検索する |
require('telescope.builtin').command_history |
<Leader>hc ( ,hc ) |
history command |
検索履歴を検索する |
require('telescope.builtin').search_history |
<Leader>hs ( ,hs ) |
history search |
ヘルプを検索する |
require('telescope.builtin').help_tags |
<Leader>H ( ,H ) |
help |
通知の履歴を検索する |
<Cmd>Telescope notify<CR> |
<Leader>n ( ,n ) |
notify |
Gitのコミット履歴を検索する |
require('telescope.builtin').git_commits |
<Leader>gc ( ,gc ) |
git commits |
バッファのGitのコミット履歴を検索する |
require('telescope.builtin').git_bcommits |
<Leader>gf ( ,gf ) |
git file |
Gitのブランチを検索する |
require('telescope.builtin').git_branches |
<Leader>gb ( ,gb ) |
git branches |
Gitのステータスを検索する |
require('telescope.builtin').git_status |
<Leader>gs ( ,gs ) |
git status |
Gitのスタッシュを検索する |
require('telescope.builtin').git_stash |
<Leader>gt ( ,gt ) |
git stash |
ghqで管理しているリポジトリを検索する |
<Cmd>Telescope ghq list<CR> |
<Leader>gl ( ,gl ) |
ghq list |
追加できるimport文を検索する |
<Cmd>Telescope import<CR> |
<Leader>i ( ,i ) |
import |
telescopeのファジーファインダー(あいまい検索)はよく使うので、かんたんなキーマップにしています。
ssr.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
ストラクチュアルサーチする |
require('ssr').open |
<Leader>sr ( ,sr ) |
structual search and replace |
text-case.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
カーソル下の単語の変換するケースを検索する |
<Cmd>TextCaseOpenTelescope<CR> |
cr. |
|
カーソル下の単語をアッパーケースに変換する |
require('textcase').current_word('to_upper_case') |
cru |
upper case |
カーソル下の単語をローワーケースに変換する |
require('textcase').current_word('to_lower_case') |
crl |
lower case |
カーソル下の単語をスネークケースに変換する |
require('textcase').current_word('to_snake_case') |
crs |
snake case |
カーソル下の単語をダッシュケースに変換する |
require('textcase').current_word('to_dash_case') |
crd |
dash case |
カーソル下の単語をコンスタントケースに変換する |
require('textcase').current_word('to_constant_case') |
crn |
constant case |
カーソル下の単語をキャメルケースに変換する |
require('textcase').current_word('to_camel_case') |
crc |
camel case |
カーソル下の単語をパスカルケースに変換する |
require('textcase').current_word('to_pascal_case') |
crp |
pascal case |
カーソル下の単語をすべてアッパーケースに変換する |
require('textcase').lsp_rename('to_upper_case') |
crU |
upper case |
カーソル下の単語をすべてローワーケースに変換する |
require('textcase').lsp_rename('to_lower_case') |
crL |
lower case |
カーソル下の単語をすべてスネークケースに変換する |
require('textcase').lsp_rename('to_snake_case') |
crS |
snake case |
カーソル下の単語をすべてダッシュケースに変換する |
require('textcase').lsp_rename('to_dash_case') |
crD |
dash case |
カーソル下の単語をすべてコンスタントケースに変換する |
require('textcase').lsp_rename('to_constant_case') |
crN |
constant case |
カーソル下の単語をすべてキャメルケースに変換する |
require('textcase').lsp_rename('to_camel_case') |
crC |
camel case |
カーソル下の単語をすべてパスカルケースに変換する |
require('textcase').lsp_rename('to_pascal_case') |
crP |
pascal case |
gitlinker.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
対象行のGitリポジトリをWebブラウザで開く |
require('gitlinker.actions').open_in_browser |
<Leader>go ( ,go ) |
git open in browser |
dropbar.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
ピックモードに入る |
require('dropbar.api').pick |
<Leader>p ( ,p ) |
pick |
nvim-tree.lua
説明 |
デフォルト |
カスタマイズ |
備考 |
ファイルツリーの表示を切り替える |
<Cmd>NvimTreeToggle<CR> |
<Leader>e ( ,e ) |
explorer |
symbols-outline.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
シンボルアウトラインの表示を切り替える |
<Cmd>SymbolsOutline<CR> |
<Leader>s ( ,so ) |
symbols outline |
git-conflict.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
自分の変更を適用する |
co |
- |
<Cmd>GitConflictChooseOurs<CR> |
相手の変更を適用する |
ct |
- |
<Cmd>GitConflictChooseTheirs<CR> |
変更を両方とも適用する |
cb |
- |
<Cmd>GitConflictChooseBoth<CR> |
変更を両方とも適用しない |
c0 |
- |
<Cmd>GitConflictChooseNone<CR> |
次の競合へジャンプする |
[x |
- |
<Cmd>GitConflictNextConflict<CR> |
前の競合へジャンプする |
]x |
- |
<Cmd>GitConflictPrevConflict<CR> |
ugaterm
説明 |
デフォルト |
カスタマイズ |
備考 |
ターミナルの表示を切り替える |
<Cmd>UgatermToggle<CR> |
<Leader>t ( ,t ) |
terminal |
peek.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
WebViewでプレビューを開く |
require('peek').open |
<C-p> |
preview |
挿入
挿入モード( i
)でよく使うキーマップの一覧です。
nvim-cmp
説明 |
デフォルト |
カスタマイズ |
備考 |
前の候補に移動する |
<Down> |
- |
|
前の候補に移動する |
<C-p> |
- |
previous |
前の候補に移動する |
- |
<S-Tab> |
|
次の候補に移動する |
<Up> |
- |
|
次の候補に移動する |
<C-n> |
- |
next |
次の候補に移動する |
- |
<Tab> |
|
(?)候補を4つ前にスクロールする |
- |
<C-b> |
back、なぜか効かない |
(?)候補を4つ後ろにスクロールする |
- |
<C-f> |
forward、なぜか効かない |
(?)補完を確定する |
- |
<C-l> |
completion、なぜか効かない |
補完を確定する |
<C-y> |
- |
|
補完を確定する |
- |
<CR> |
|
補完せずに閉じる |
<C-e> |
- |
exit |
参考
ビジュアル、選択
ビジュアル、選択モード( v
)でよく使うキーマップの一覧です。
gitlinker.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
対象行のGitリポジトリをWebブラウザで開く |
require('gitlinker.actions').open_in_browser |
<Leader>go ( ,go ) |
git open in browser |
ビジュアル
ビジュアルモード( x
)でよく使うキーマップの一覧です。
ssr.nvim
説明 |
デフォルト |
カスタマイズ |
備考 |
ストラクチュアルサーチする |
require('ssr').open |
<Leader>sr ( ,sr ) |
structual search and replace |
コマンドライン
コマンドラインモード( c
)でよく使うキーマップの一覧です。
nvim-cmp
説明 |
デフォルト |
カスタマイズ |
備考 |
前の候補に移動する |
<C-p> |
- |
previous |
前の候補に移動する |
<S-Tab> |
- |
|
次の候補に移動する |
<C-n> |
- |
next |
次の候補に移動する |
<Tab> |
- |
|
候補を閉じる |
<C-e> |
- |
exit |
参考
端末ジョブ
端末ジョブモード( t
)でよく使うキーマップの一覧です。
ugaterm
説明 |
デフォルト |
カスタマイズ |
備考 |
ターミナルの表示を切り替える |
<Cmd>UgatermToggle<CR> |
<Leader>t ( ,t ) |
terminal |
ターミナルを抜ける |
<C-\\><C-n> |
<Esc> |
|
おわりに
これでNeovimのプラグインをかんたんに呼び出せます