Linuxのviのコマンドで便利なものをご紹介します。
viエディタで設定ファイルの編集など、ひとつひとつきちんと修正しているけど何か時間がかかってしまう。
面倒くさいやり方になっている気がするけど、どう効率化すればわからない
そういった疑問をもっているエンジニアの為に、Linuxのviで便利なコマンドを現役エンジニアの筆者がまとめます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!
Linuxサーバーエンジニアこの記事を読んでviのコマンドをものにすれば、viエディタの作業効率が上がります。
Linuxのviエディタのコマンド


Linuxのviエディタのコマンドを要件別にまとめます。
- 編集系viコマンド
- 移動系viコマンド
- 保存系viコマンド
- 編集モード移行コマンド
- viエディタ設定コマンド
それではご紹介します。
編集系viコマンド


編集する時に使えるviコマンドをまとめます。
| コマンド | 効果 |
|---|---|
| dd | 1行まとめて消去 |
| yy | 1行まとめてコピー |
| p | ペースト |
| :%d | 全て消去 |
| u | 編集の取り消し |
| . | 最後の編集の繰り返しの動作 |
| ~ | カーソルの文字を大文字⇔小文字に変更 |
行のコピペは最も使用するので覚えて下さい。
編集の取り消ししたい場合はCtrl+zしてしまいがちですが、Linuxではviエディタ終了してしまいます。編集の取り消しはコマンドモードでuを押しましょう!
移動系viコマンド


移動する時に使えるviコマンドをまとめます。
| コマンド | 効果 |
|---|---|
| G | 一番最後の行に移動 |
| 1G | 一番最初の行に移動 |
| nG | n行目に移動 |
| 0 | 選択している行の一番先頭へ移動 |
| $ | 選択している行の一番末尾へ移動 |
| Ctrl+f | 画面を下に向けて1ページスクロール |
| Ctrl+b | 画面を上に向けて1ページスクロール |
一番下にカーソルを持っていく事は多いのではないでしょうか?コマンドで移動しましょう!
一番下だけでなく一番上や行数指定して移動も可能です。
カーソルの先頭や末尾にも移動できます。
検索して対象の文字列に移動するviコマンドをまとめます。
| コマンド | 効果 |
|---|---|
| /検索文字列 | カーソルから下に向かって検索 |
| ?検索文字列 | カーソルから上に向かって検索 |
| n | 検索した後、更に次の文字列へ移動 |
| N | 検索した後、更に前の文字列へ移動 |


保存系viコマンド


保存する時に使えるviコマンドをまとめます。
| コマンド | 効果 |
|---|---|
| :q! | 保存せずにviエディタ終了 |
| :wq | 保存してviエディタ終了 |
| :w | 保存 |
| :w ファイル名 | 指定したファイル名で別名保存 |
| :wq ファイル名 | 指定したファイル名で別名保存してviエディタ終了 |
| :e! | 編集を破棄して再読み込み |
| :! コマンド | 編集中にコマンド実行 |
保存して終了や破棄して終了は基本中の基本ですので、是非覚えましょう!


別名で保存も出来ます。
編集を破棄して読み込みはよく使用するので、覚えると効率化できます。
編集モード移行コマンド


コマンドモードから編集モードへ移行して編集する時のviコマンドをまとめます。
| コマンド | 効果 |
|---|---|
| i | カーソルの前から編集可能になる |
| I | カーソルの先頭から編集可能になる |
| a | カーソルの後から編集可能になる |
| A | カーソルの末尾から編集可能になる |
| o | カーソルの下に行を挿入して編集可能になる |
| O | カーソルの上に行を挿入して編集可能になる |
行を挿入して編集可能にする事で効率化できますね。
viエディタ設定コマンド


viエディタの設定を行えるコマンドをまとめます。
| コマンド | 効果 |
|---|---|
| :set number | ファイルの行数を表示する |
| :set nonumber | ファイルの行数表示を解除する |
| :set list | 行末などの表示されない文字も表示する |
| :set nolist | 行末などの表示されない文字表示を解除する |
行数を表示して指定した行に移動などもできますね。「:set number」を実行して行数を表示して「nG」でn行目にカーソル移動できます。



Linuxのviエディタのコマンドについて説明しました。



