Skip to content

vim Cheats

foolmacky edited this page Apr 19, 2023 · 24 revisions

■検索

  • * or # を打鍵すると、カーソル上の単語について現在のバッファを検索。
  • *は前方、#は後方だが、何れにせよすべてハイライトされ、n/Nで移動できる

■複数画面のカーソル移動

  • <C-w>h 左
  • <C-w>j 下
  • <C-w>k 上
  • <C-w>l 右
  • <C-w>w 次のwindow

■画面自体の移動(Uppercaseになり、カーソル移動と対になっている)

  • <C-w>H 左
  • <C-w>J 下
  • <C-w>K 上
  • <C-w>L 右

■vimのterm機能

  • :termでターミナルwindowが自動的に画面分割して開く。ranger配下からでも問題ない
  • terminal画面ではコマンドを打鍵した結果はスクロールバックできないが、<C-w>N (ノーマルモード)で出力bufferをvimに取り込んで開くことができる
  • a or iを打つと、もとのterminal画面に戻る
  • bufferを取り込んだvimで :q するとterminal画面自体が閉じるが、bufferを編集したりしているとterminal&bufferとして残り、vimを終了できない
  • 通常はterminal画面でexitするほうがいい。

■bufferの扱い

  • :ls 現在のbufferのリストを得る
  • sb <buffer NO.> 画面分割してbufferを表示

■word選択範囲の書き直し

  • つい viwc とやってしまいがちだが、これは無駄だ。ciwc が正しい。 y についても同様

■visual選択モードのときの行No移動(行Noでの選択)

  • <行ナンバー>gg or <行ナンバー><Shif>G

■:grepとquickfixウインドウの制御

  • 現状の設定だと、一旦コンソールに検索結果が出て、Enterするとquickfix windowが開く感じで、直接開けないのか調査中
  • :cn 次の結果にジャンプ
  • :cp 前の結果にジャンプ
  • :ccl クローズ

■ 確認しながらの置換

:%s/hoge/foo/gc
//c optionをつける

■vimで複数ファイルの一括更新

:args **/*.go
//カレントディレクトリ以下の*.goファイルをリストアップ
:args
//arglistを確認
:argdo %s/foo/hoge/g | update
//リスティングされたファイルについて置換と保存コマンドを実行

vimで正規表現の際にエスケープが必要な特殊文字

^ $ . * [ ] / ~ \ (sedとは異なる)

■ 現在のbufferと比較( vim -d )と同じ動作

:diffs <File名>

Clone this wiki locally