2017/06/18

Vimチートシート(随時更新)

仕事でも個人的にもVimをよく使うのでオプションをまとめてみました

カーソル移動

  • 先頭行の頭にジャンプ
    • gg
  • 最終行の末尾にジャンプ
    • G

Undo/Redo

  • u 直前の操作を取り消す
  • R 取り消した操作を遡って再実行

挿入

  • i 指定文字の直前に挿入
  • a 指定文字の直後に挿入
  • I 指定文字のある行の先頭に挿入
  • A 指定文字のある行の最後に挿入
  • o カーソルの後行から文字入力開始
  • O カーソルの前行から文字入力開始

切り取り、コピー

  • x 1文字を切り取り
  • dd 指定行を切り取り
  • 5dd 指定行から数えて5行を切り取り
  • dG カーソル位置から最終行まで削除
  • dgg カーソル位置から最初行まで削除
  • :g/文字列/d 指定した文字列を含む行を削除
  • :g/^文字列/d 指定した文字列から始まる行を削除
  • :v/文字列/d 指定した文字列を含む行以外を削除
  • vi” ダブルクォーテーション内の文字列を削除
  • vi’ シングルクォーテーション内の文字列を削除
  • 切り取り
    • 開始点でms
    • 終了行でd’s

文字列検索

  • /文字列
    • n: 次のキーワード該当箇所にカーソル移動
    • N: 前のキーワード該当箇所にカーソル移動

範囲指定コピー/切り取り

  • コピー
    • 開始行でms
    • 終了行でy’s
  • 切り取り
    • 開始行でms
    • 終了行でd’s

置換

  • 該当キーワードを全て置換
    • :%s/置換対象/置換する文字列/g
  • 該当キーワードを順番に選択置換
    • :%s/置換対象/置換する文字列/gc

2ファイル間の差分表示

http://nanasi.jp/articles/howto/diff/diff_text.html

  • :vertical diffsplit 差分を取りたいファイル

文字コード確認

  • vim自体のエンコード確認
    • :set enc?
  • 開いているファイルのエンコード確認
    • :set fenc?

現在の設定の出力

  • 変数定義
    • :let
  • vimエディタオプションの定義
    • :set
  • マッピングの定義
    • :map
  • autocmdの定義
    • :autocmd
  • カレントディレクトリの確認  - :pwd

参考

  • 現在の設定を出力する
    • http://nanasi.jp/articles/code/coding/current-status.html
  • 個人的によく使うVimテクニック5選
    • https://cloudear.jp/blog/?p=1352