ほぼvimの初心者の自分が、同じく初心者の方、
苦手と思う方向けにvimの基本的な操作をまとめてみました。
さらっと内容を確認していただいて、あとはvimtutorでハンズオンすれば実務でも問題ないレベルになれると思います。
vimの世界はそんな甘くないと思いますが、1、2時間あれば最後まで出来ると思うのでまずは触ってみてください。
この記事で分かること
- vimの基本的なコマンドの操作方法
- vimtutorというハンズオン形式で学べる無料で最高の教材
対象者
- vim初心者の方
- vim操作しかできない状況で
:wqとi(insert mode)で乗り切ったことがある人(自分) - vimの基礎を学びたい方
vimの基本的なコマンドの操作方法
各モード
esc: ノーマルモード
vimを開いたデフォルトの状態
v: ビジュアルモード
複数行で削除、コピーするときに便利。
i: インサートモード
矢印キーでの操作や文字入力ができる状態。
とりあえず、編集時にこのモード使えればどうにかなる。
ファイル操作
vim ファイル名: 新規ファイル名または既存ファイルで編集開始
:w ファイル名: ファイル名で保存した新規ファイルが作成される
:r ファイル名 or 外部コマンド: ファイル名の中身または外部コマンドの実行結果をペーストする
:w: 保存のみ
:q: 保存せずに編集終了
:wq: 保存して編集終了
:q!: 強制終了
!を付けることで、操作途中で編集終了できない時に強制的に終了できます。
ファイル内の移動(ノーマルモードのみ)
k: 上に移動
l: 右に移動
j: 下に移動
h: 左に移動
0: 行頭へ移動
$: 行末へ移動
w: 各単語の先頭へ移動(T i t i v の順で移動するイメージ)
e: 各単語の末尾へ移動(s s t n m の順で移動するイメージ)
ex. This is text in vim.
操作の取り消し、削除
x: カーソル上の一文字を削除
dd: 行全体を削除
2dd: 先頭の数字分の行を削除する(2行削除する)
u: 直前の操作を取り消す
ctl+R: 取り消しコマンドを取り消す(uコマンド自体を取り消すイメージ)
ペーストコマンド
p: 特定のコマンドで対象とした文字、行を貼り付けする
置換コマンド
r: カーソル上の文字を置き換える
ce: カーソル以降の単語を削除後、insertモードへ以降し編集できる
c モーション: モーションの部分にeやwを指定すると特定の動作が追加されます。
R: カーソル上から文字を入力することで、入力した文字だけ置換される
:s/変換される文字/変換したい文字: 最初の見つかった文字のみ置換される
:s/変換される文字/変換したい文字/g: その行の対象文字全てが置換される
:開始行,終了行s/変換される文字/変換したい文字/g: 開始と終了行の間の全ての対象文字が置換される
:%s/変換される文字/変換したい文字/g: ファイル内の全ての対象文字が置換される
/gc: gcにすることで毎回置換するか確認して置換できる
ex. :s/appli/app/g
行の特定と移動
ctl+g: ページ下部にファイル情報と現在の行数が表示される
ex. ファイル名 [Modified] line 89 of 98
行番号 G: ctl+gで特定した行数をタイプ後にG(大文字)をタイプすると、その行数へ移動する。
検索コマンド
/検索文字: 検索対象が複数の場合に上から下へ検索する
?検索文字: 同じく、下から上へ検索する
n: 検索中に次の単語へ移動する(検索時と同じ方向へ移動)
N: nと逆方向へ移動する
ctl+o: 元の位置に戻る
%: (,[,{などの括弧にカーソルを当て実行すると、対となる括弧へ移動する。
括弧を忘れて構文エラーになる場合に確認できる。
外部コマンドの実行
:!外部コマンド: 外部コマンドを実行できる
ex. :!lsでlsコマンドの実行
vモードの操作
v: ビジュアルモードへ移動
・方向キーで範囲指定後にyでコピー、pでペースト
・上記と同様に範囲指定後に:をタイプすると:'<,'>が表示される。
'<,'>w ファイル名の形式で範囲指定の内容で新規ファイルが作成される。
insertモードへの移行方法
i: insertモードへ移行
o or O: oでカーソルの下に移動しinsertモードへ、Oはカーソル上に移動する
a: カーソルが次の文字へ移動しinsertモードへ
オプションの指定
検索や置換するタイミングで一緒に設定する。
:set オプション名: オプションが設定される
オプション
ic: 検索時に大文字小文字関係なくする
is: 検索時に部分マッチした箇所を表示する
hls: 検索にマッチした文字を強調する
最後に
vimtutorという無料の教材があります。
自分は実務でvimを触る機会が少ないですが、vimtutorのみで基本はある程度理解できました。
是非、ご自身のターミナルで下記コマンドを実行してみてください。
$ vimtutor
ハンズオン形式で一度通してやってみると理解が深まると思います。