cheat sheet vim
Posted:
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.json に lazyvim.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 |
| grep | gr |
| ファイル検索 | 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 add | a | :Gwrite |
| 今開いてるファイルを前のコミットとvimdiff | d | :Gdiff git diff |
| 今開いてるファイルを git blame | b | :Gblame git blame |
| git merge [args] を呼ぶ.コンフリクト時に:Gmergeするとconflictをquickfixに流す | m | :Gmerge git merge |
| push | p | :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 |