インターン生がvi(vim)使い始めたので、私がよく使うコマンドを共有します。
(前提条件)本記事内のviとvimの区別について
コメントをいただきましたので追記します。
本記事では、vi と vimのコマンドの差異に関して、 意図的に扱っていません。
というのも、ぬるいWebエンジニアである筆者の観測範囲(CentOS6系、Amazon Linuxの最新)では vi コマンドでエディタを起動しても本記事に掲載したコマンドは使えるため(はっきりと検証していませんが、viコマンドでもvimが起動している模様)、 あえて vi と vim を意識的に使い分けることは、(社内レベルでは)必要ないという認識です。
もちろん、環境によっては viコマンドで純粋な vi が起動することも当然考えられるので、
という事を心のどこかに止めておくのは、有効な心がけだと思います。
モード変更
| コマンド名 |
内容 |
| ctl+ [ |
ノーマルモードに戻る |
| i |
挿入モードに変更 |
| I |
(行頭に移動して)挿入モードに変更 |
| A |
(行末に移動して)挿入モードに変更 |
| shift + v |
行レベルのヴィジュアルモードに変更(行を丸ごとコピーする時とか) |
- ほぼすべてのコマンドは[ノーマルモード]でしか有効になりません。迷子になった時はとにかく
ctl + [を押すのがいいです。
保存・終了
| コマンド名 |
内容 |
| :w + enter |
保存 |
| :wq + enter |
保存して終了 |
| :q! + enter |
保存せずに終了 |
移動系
- アルファベットは、大文字、小文字の区別があるので注意!
行間移動
| コマンド名 |
内容 |
h, j, k, l
|
カーソルキーの上下左右に相当 |
| ctl+f, ctl+b |
一画面進む |戻る |
| gg |
ファイルの最初に移動 |
| G |
ファイルの最後に移動 |
| [数字] gg |
[数字]で指定した行数に移動 |
行内移動
| コマンド名 |
内容 |
| 0 |
行頭に移動 |
| ^ |
行頭に移動(行頭スペースを無視) |
| f[文字] |
行内にある[文字]の位置まで移動 |
| t[文字] |
行内にある[文字]の位置の一文字前まで移動 |
検索移動
| コマンド名 |
内容 |
| /[文字列] + enter |
下方向に検索 |
| ?[文字列] + enter |
上方向に検索 |
編集系
編集
| コマンド名 |
内容 |
| cw |
カーソル位置以降から1単語分を削除して挿入モード |
| ciw |
カーソル位置にある1単語分を削除して挿入モード |
| ci[, ci{, ci( |
カーソル位置を基準に、[], {}, ()で囲まれた範囲を削除して編集モード |
| C |
カーソル位置以降から行末までを削除して挿入モード |
| o |
(小文字のoオー)カーソル位置の次の行に空行を追加して挿入モード |
| O |
(大文字のoオー)カーソル位置の前の行に空行を追加して挿入モード |
削除
| コマンド名 |
内容 |
| dw |
カーソル位置以降から1単語分を削除 |
| diw |
カーソル位置にある1単語分を削除 |
| di[, di{, di( |
カーソル位置を基準に、[], {}, ()で囲まれた範囲を削除 |
| dd |
カーソル位置にある行をまるごと削除 |
| x |
カーソル位置にある1文字だけを削除 |
便利コマンド
| コマンド名 |
内容 |
| :set number + enter |
行番号を表示 |
随時増やしていきます 