cheat sheet vim

rafi/vim-config

rafi/vim-config: Lean mean Neovim machine, carefully crafted with Use with latest Neovim.

Snacks Explorer(ファイラ)

2026年時点では rafi/vim-config / LazyVim の現行寄りに合わせて、ファイラは Neo-tree ではなく Snacks Explorer を使う。 ローカルでは lazyvim.jsonlazyvim.plugins.extras.editor.snacks_explorer を明示し、個人プラグイン側の Snacks Explorer 無効化 override は削除する。

効果キー
Snacks Explorerを開く(root dir);e / Space e / Space fe
Snacks Explorerを開く(cwd);E / Space E / Space fE
現在のファイルをファイラで表示;a
現在のファイルをファイラで表示(cwd);A
ファイルを開くl / Enter
新しいタブで開くst
上のディレクトリに移動Backspace
ファイル/ディレクトリ作成a
ツリーを閉じるh
grepgr
ファイル検索gf
水平分割で開くsv
垂直分割で開くsg
プレビューのオンオフK
リネームr
削除d
ファイル移動m
コピーc
ペーストp
パスをヤンクy
システムアプリで開くo
更新u

Lazygit

効果キー
gitのルートで開くSpace , tg
カレントディレクトリで開くSpace , tg

キーバインド

効果省略記法
文字コードを確認:set fileencoding
保存する文字コードを変更:set fileencoding=utf-8
前ひらいたバッファに戻る<C-^> ( 数字の6のやつ )
検索で行きすぎたら戻る;
変更してきた箇所に戻るg;
変更してきた箇所に進むg,
次のワードの頭にw
次のワードの最後にe
行頭にいきなり追加I
上書きモードR
ワード前のスペース有りヤンクyaw
スペース無しヤンクyiw
文字を検索して上書きct<key>
ワード削除diw
引数をまるっと削除di(
functionの記述をまるっと削除di{
カーソル上の単語を消すdiw
カーソル上の単語を消して挿入モードdiw
“"(ダブルコーテーション)で囲まれた文字列を消すdi”
新規ファイルを開く(横分割):new
新規ファイルを開く(縦分割):vnew
新規ファイルを開く(タブ):tabnew
次のタブに切替gt
前のタブに切替gT
これは % がカレントディレクトリ、 :h が親ディレクトリの意味:e %:h<Tab>
ウィンドウを入れ替える。<C-w>x
縦に最大化<C-w>_
横に最大化<C-w>パイプ
ウィンドウの大きさを揃える<C-w>=
ウィンドウの幅を増やす<C-w>>
ウィンドウの幅を減らす<C-w><
ウィンドウの高さを増やす<C-w>+
ウィンドウの高さを減らす<C-w>-
縦に最大化<C-w>_
横に最大化<C-w>パイプ
アクティブなウインドウを左に移動<C-w>h
アクティブなウインドウを下に移動<C-w>j
アクティブなウインドウを上に移動<C-w>k
アクティブなウインドウを右に移動<C-w>l
アクティブなウインドウそのものを左に移動<C-w>H
アクティブなウインドウそのものを下に移動<C-w>J
アクティブなウインドウそのものを上に移動<C-w>K
アクティブなウインドウそのものを右に移動<C-w>L
アクティブなウインドウを次に移動<C-w>w
バッファリストのファイル名をリスト表示:buffers
バッファリストの指定したバッファを開く:buffer:b
バッファリストの次のバッファを開く:bnext:bn
バッファリストの前のバッファを開く:bprevious:bp
バッファリストのすべてのバッファをウィンドウを開く:ball:ba
バッファリストにバッファを追加:badd:bad
バッファリストからバッファを削除:bdelete:bd
バッファリストの最初のバッファを開く:bfirst:bf
バッファリストの最後のバッファを開く:blast:bl
バッファリストの次の変更済みバッファを開く:bmodified:bm
バッファを閉じる:bd
新規タブ:tabedit
{count}で指定した番号のタブへ移動:tabnext:tabn {count}gt
次のタブへ移動:tabnext:tabn gt
前のタブへ移動:tabprevious:tabp gT
現在、以外のタブを全て閉じる:tabo
開いてるファイルを削除:call delete(expand(’%’))
数値をインクリメント、デクリメントするC-a, C-x (ノーマルモード)
前に変更した場所へカーソルを移動するg; (ノーマルモード)
パラグラフ削除dap (ノーマルモード)
プラグイン、モジュール 一覧:scriptnames
deinプラグインのアップデート:call dein#update()
deinでエラーが起きtが時:call dein#clear_state()
Snacks Explorerを開く:lua Snacks.explorer()
ファイルの再読込:e
ファイルを書き込んでexitする:x
ショートカット一覧:map

LSP( neovim rafi/vim-config の設定 20240630時点)のキーバインド

rafi/vim-config: Lean mean Neovim machine, carefully crafted with Use with latest Neovim.

  • gyなどで型定義に飛んだ後は<C-o>で戻る
効果ショートカット
他の場所でこのシンボルが使われている場所にジャンプgr
型定義に移動gy
実装に移動gI
ホバーヘルプ、簡単に説明を表示できるK
トラブルのある参照先をリストアップgR
コードのリファクタリングやクイックフィックスを実行Space ca
LSPの情報を表示Space cl
リネームSpace cr
診断ウィンドウを開くSpace ce
フォーマッタのメニュー選択Space co
ソースアクションSpace cA
この関数を呼び出している関数やメソッドのリストSpace csi
この関数が呼び出している他の関数やメソッドのリストSpace cso
診断バッファの切り替えSpace ud
グローバルバッファの切り替えSpace uD
ワークスペースフォルダの追加Space fwa
ワークスペースフォルダの削除Space fwr
ワークスペースフォルダのリストSpace fwl
参照をひと目でわかるように(私の環境では不安定だった20240630)gpr
定義をひと目でわかるようにgpd
タイプをひと目でわかるようにgpy
実装箇所をひと目でわかるようにgpi
宣言(declation)に移動gD
関数やメソッドのシグネチャヘルプを表示gK

LSP incoming/outgoing calls

fzf

ctrl + p で fzfでファイル選択( 慣れたら ctrl + e から切り替えたい )

hwwというfishスクリプト作った hww hoge でfzfしながらvimで開く

ショートカット
新規タブで表示Ctrl-t
水平分割して表示Ctrl-x
垂直分割して表示Ctrl-v

figitive <- tig をメインで使うようにするか… どのみちコミット溜めがちではあるので

<C-g>押してから

ステータスs:Gstatus
コミットc:Gcommit
今開いてるファイルを git adda:Gwrite
今開いてるファイルを前のコミットとvimdiffd:Gdiff git diff
今開いてるファイルを git blameb:Gblame git blame
git merge [args] を呼ぶ.コンフリクト時に:Gmergeするとconflictをquickfixに流すm:Gmerge git merge
pushp:Gpush git push
変更リストを表示:changes
前の変更箇所へ移動g;
次の変更箇所へ移動g,

]c や [c で変更箇所にジャンプ、 dp でそれをコミットに含める。 古い方のvimウィンドウを:q!で消す。 この状態で git commit する.

ctags

※ universal-ctag用で、現在、 constantsにあるもののうち、関数はfunctionになるように、 universal-ctagsの設定をオーバーライドしたい…

|———————|————-| | ジャンプ | control + ] | | 呼び出し元へ戻る | cntrol + t | | CLIでタグを作成する | ctags -R |

tagbar

:TagbarToggle

SrcExpl <- できれば OmniSharp/omnisharp-vim を使いたい

SrcExplToggle で表示/非表示

ソースは ~/.local/share/dein/repos/github.com/wesleyche/SrcExpl/plugin/srcexpl.vim

追加設定で『ソースを開く時、別のウィンドウかタブで開きたい』 作業中のウィンドウだと戻れない…

nerdtree

~/.config/dein/lazy.toml で設定している

コマンド説明
水平分割して開くi
垂直分割して開くs
タブで開き、移動はしないT
ファイルを開くo(enter)
ファイルを開き、カーソルはツリーに保持するgo
タブで開くt
水平分割して開き、移動はしないgi
垂直分割して開き、移動はしないgs

vim-plugin NERDTree で開発効率をアップする! - Qiita