Vimは過去に実務で使用したことがありましたが、体系的に学習した記憶がありませんでしたため、以下の教材を学習しました。学習記録として、基本的なコマンドをまとめてみました。
現役シリコンバレーエンジニアが教える NeoVim(VIM) + Tmux + Zsh 入門 - Udemy
Vimとは
テキストエディタの一種で、コマンドラインで使用する。
使用場面としては、サーバの操作やサーバに配置されているプログラムを変更する際に特に利用する。
Vimとほぼ同じ機能があるNeoVimがある。違いとしては、 NeoVimの方がプラグインが豊富にあること。
モード変更
Vimはモードによって行える操作が異なるため、行いたい操作によって、モードを切り替える必要がある。Vim起動後、以下コマンドでモードを切り替える。起動時は ノーマルモード で立ち上がる。
コマンド | 説明 |
---|---|
ノーマルモード | カーソル移動や文字を削除、行のコピペなどで使用。esc でノーマルモード |
インサートモード | ファイルに入力する際に使用。i でインサートモード |
コマンドモード | 検索、置換、保存などに使用。: や/ でコマンドモード |
ビジュアルモード | カーソル選択でコピペやインデント移動に使用。v でビジュアルモード |
インサートモードは i 以外にも a や o 、 O でも変更可能
ノーマルモード で実行する操作
カーソル移動
コマンド | 説明 |
---|---|
k | 上に移動 |
j | 下に移動 |
h | 左に移動 |
l | 右に移動 |
gg | ファイルの一番上の行に移動 |
G | ファイルの一番下の行に移動 |
0 | 行の先頭に移動 |
$ | 行の末尾に移動 |
:数字 | 数字の行に移動(:set numberで行数を表示可能) |
CTRL + o | 移動前に戻る |
矢印キーでもカーソル移動はできるが、kやjなどでカーソル移動したほうが、キーボード上で指の移動が少なくて済む。
入力
コマンド | 説明 |
---|---|
o(小文字) | カーソルを当てた下の行から入力 |
O(大文字) | カーソルを当てた上の行から入力 |
a | カーソルを当てた右横から入力 |
i | カーソルを当てた左横から入力 |
上記のコマンドを実行すれば、ノーマルモードからインサートモードに切り替わる。
削除
コマンド | 説明 |
---|---|
x | カーソルを当てた文字を消す |
dd | カーソルを当てた行を消す |
数字dd | カーソルを当てた行を含めて、数字分の行を消す |
dw | カーソルを当てた単語を削除 |
削除した後に、uを叩けば、削除した文字を元に戻せる。また、元に戻しすぎてしまった場合は、「Control + r」を叩けば、復活する。
コピー、ペースト
コマンド | 説明 |
---|---|
yy | 1行コピー |
数字yy | 数字で指定した行数分コピー |
p(小文字) | カーソルの真下にペースト |
P(大文字) | 行の一番下にペースト |
コマンドモードで実施する操作
検索
コマンド | 説明 |
---|---|
/検索キーワード | 検索したいキーワードを探す |
n | 検索したいキーワードが複数ある場合、下方向に移動する |
N | 検索したいキーワードが複数ある場合、上方向に移動する |
置換
コマンド | 説明 |
---|---|
:%s/置換前/置換後/g | 一括置換 |
:%s/置換前/置換後/gc | 一つずつ置換してよいか確認してから置換 |
上記以外でも、削除で使用した dw で単語単位で消してから、書き換える方法もある。
ファイルを保存、閉じる
コマンド | 説明 |
---|---|
:q | テキストを編集していない状態で、保存せずに閉じる |
:q! | テキストを編集している状態でも、編集していない状態でも保存せずに閉じる |
:w | ファイルを上書き保存 |
:w ファイル名 | 名前をつけて保存 |
:wq | 保存してから閉じる |
コマンド実行
コマンド | 説明 |
---|---|
:!実行コマンド 実行したいコマンド(※) | エディタを開いた状態でプログラム実行 |
:!! | 前コマンドを実行 |
(※)Rubyの場合、例えばruby test.rb
と実行すれば、test.rbを開いた状態で実行可能。
ビジュアルモードで実行する操作
その他
コマンド | 説明 |
---|---|
> | 右にインデントを移動 |
< | 左にインデントを移動 |
コピーしたい範囲を選択して、y | カーソル指定コピー |