私の外部記憶装置

ただの覚え書きです。ちょこちょこ見直して加筆・修正していますが、間違ってるかも😅

【Vim】コマンドなど


移動(モーション)コマンド、スクロールコマンド

⭐️移動コマンド前に数字を入力すると、動作が掛け算される
⭐️スクロールコマンドは、カーソルは動かない

  • w:次語の先頭
  • e:次語の末尾
  • b:前語の先頭
  • ge:前語の末尾(gはオペレータコマンド)

  • 0:行頭
  • $:行末
  • %:対応するカッコ。(( ↔︎ )[ ↔︎ ]{ ↔︎ }

  • ctrl - e:1行下にスクロール
  • ctrl - y:1行上にスクロール
  • ctrl - f:1画面下にスクロール(前方)
  • ctrl - b:1画面上にスクロール(後方)

  • z + return:カーソル行を画面上端に表示
  • z.:カーソル行を画面中央に表示
  • z-:カーソル行を画面下端に表示

  • H:カーソルを画面上端に移動
  • M:カーソルを画面中央に移動
  • L:カーソルを画面下端に移動

  • gg:先頭行
  • G:最終行
  • 行番号 + G:指定番号の行

  • g;:直前の変更箇所
  • g,:直後の変更箇所

オペレータコマンド

⭐️コマンドを合成できる
繰返し数) + オペレータコマンド + (繰返し数) + 移動(モーション)コマンド

  • x:削除(1字)
  • d:カット(delete。移動コマンドが必要)
    例)dw:単語を削除 例)2d3w:6つの単語を削除
  • dd:カット(1行)
  • D:カット(カーソルから行末)
  • y:コピー/ヤンク
    例)y$:行末までコピー
  • yy又はY:コピー(1行)
  • p:ペースト
    例)2p:2個ペースト
  • 置換
    • r:1文字
      R:置換モード(下記リプレースモード参照)
  • 置換(実行後はインサートモードになる)
    • c:(change。移動コマンドが必要)
      例)c + w + 上書き単語:カーソル位置以降を単語置換。上書き単語は元より長くてもOK
    • cc:1行
    • C:カーソルから行末
    • s:1字
    • S:1行(ccと同じっぽい)
  • 検索
    • *:カーソル位置の単語を下方向(前方)に検索
    • n:前回の検索語を下方向(前方)に検索
    • N:前回の検索語を上方向(後方)に検索

  • g:移動(go)
  • >>:カーソル行にインデント追加
  • <<:カーソル行のインデント削除
  • =:カーソル行のインデント自動整形

  • u:取り消し
  • U:取り消し(行全体)
  • ctrl - r:やり直し

モード

ノーマルモード

基本のモード。escで他モードから戻ってくる

ビジュアルモード

カット、コピー、ファイル書き込みなど。実行後はノーマルモードになる

  • v:範囲選択(モードに入った時のカーソル位置が始点になる)
  • V:行選択
  • ctrl - v:列選択
  • 使用例
    • gg + V + G + =:全体のインデントを揃える
    • V(又はctrl - v)+ >:選択部のインデント追加

挿入(インサート)モード

文字入力

  • i:カーソルの前位置にインサート
  • a:カーソルの後位置にインサート
  • I:行頭にインサート
  • A:行末にインサート
  • o:下に空行を追加し、インサート
  • O:上に空行を追加し、インサート

置換(リプレース)モード

  • R:置換モード(削除+記入。行末に文字を追加できる)
    r:1字置換(実行後はノーマルモード

コマンドモード

:で書き始める。各種コマンドを実行

  • :q:変更が無ければ終了
    :q!:変更を破棄して終了
  • :w ファイル:保存(新規作成)
    :w:上書き保存
    :w!:🚨強制的に上書き保存。基本的に使わない
    :wq:上書き保存して終了

  • :!外部コマンド:外部コマンドの実行
    例):!ls:外部コマンドでファイルリストを出力
    例):!rm ファイル:外部コマンドでファイル削除
  • :r ファイル:ファイル内容をカーソル以下に読み込む
    例):行番号r ファイル:指定した行番号の下にファイル内容を読み込む
  • :r! 外部コマンド:コマンド出力結果の読み込み
    :r !外部コマンド:r!外部コマンドと書いても動いた)
    例):r! ls:ファイルリストをカーソル以下に読み込む

  • 検索+置換
    • :s/検索文字/置換文字:1行(1カ所)
    • :s/検索文字/置換文字/g:1行(行内一括)
    • :開始行番号,終了行番号s/検索文字/置換文字/g:複数行(一括)
    • :%s/検索文字/置換文字/g:ファイル内(一括)
    • :%s/検索文字/置換文字/gc:ファイル内(逐語確認)

  • 設定
    • :syntax on:文字に色をつける
    • :syntax off:文字の色を消す
    • :set number:行番号を表示
    • :set nonumber:行番号を消す

モードのあわせ技

  • 例)選択範囲をファイルに書き込み(ビジュアルモード → コマンドモード)
    1. 開始位置でv、終了位置で:
    2. 左下に:’<, ’>が出たら、w ファイルを記入しreturn:!lsで、ファイルの存在を確認できる)

個人設定ファイル

~/.vimrc

" 文字の色付け
syntax on
" 行番号の表示
set number
" タブをスペースに置き換えない(つまりタブのまま)(置き換えたい場合:set expandtab)
set noexpandtab
" 既存ファイルのタブを、どの幅で表示するか(短縮名:ts)
set tabstop=2
" インデントで自動的に挿入される幅(短縮名:sw)
set shiftwidth=2
" タブのキーを押した時に挿入される幅(短縮名:sts)
set softtabstop=2

その他

参考

quickref - Vim日本語ドキュメント
Vimの:wと:rの便利Tips