移動(モーション)コマンド、スクロールコマンド
⭐️移動コマンド前に数字を入力すると、動作が掛け算される
⭐️スクロールコマンドは、カーソルは動かない
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
+上書き単語
:カーソル位置以降を単語置換。上書き単語
は元より長くてもOKcc
: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
:行番号を消す
モードのあわせ技
- 例)選択範囲をファイルに書き込み(ビジュアルモード → コマンドモード)
- 開始位置で
v
、終了位置で:
- 左下に
:’<, ’>
が出たら、w ファイル
を記入しreturn
(:!ls
で、ファイルの存在を確認できる)
- 開始位置で
個人設定ファイル
~/.vimrc
" 文字の色付け syntax on " 行番号の表示 set number " タブをスペースに置き換えない(つまりタブのまま)(置き換えたい場合:set expandtab) set noexpandtab " 既存ファイルのタブを、どの幅で表示するか(短縮名:ts) set tabstop=2 " インデントで自動的に挿入される幅(短縮名:sw) set shiftwidth=2 " タブのキーを押した時に挿入される幅(短縮名:sts) set softtabstop=2
その他
vimtutor
:チュートリアル(ターミナルで実行する。事前のvim起動は不要):help hoge
:オンラインヘルプ。hoge
にw
,c_CTRL-D
,insert-index
など
例):help user-manual
:help - Vim日本語ドキュメントと同じ表示