「AWS無料相談会」をオンラインで開催中

Vimで効率よくプログラミングをするために、まず知っておくと良い操作方法

Vimで効率よくプログラミングをするために、まず知っておくと良い操作方法

概要

エンジニアの内山です。
この記事では、Vimで効率よくプログラミングをするために、まず知っておくと良い操作方法を紹介しています。

以下の書籍の簡易版となっています。

実践Vim 思考のスピードで編集しよう!

基本的なVimの操作方法に関することが学べるので、拡張機能が入っていないVimや他エディタのVimエミュレータを使う際にも役立ちます。余裕があれば、書籍を読むことをおすすめします。

モード

Vimを操作する上で、以下の3つのモードを理解する必要があります。

ノーマルモード

コマンドを入力するモードです。カーソル移動やファイル保存などは、このモードで行います。
コマンドを駆使すれば、テキストの編集作業はノーマルモードで完結できます。

他のモードからノーマルモードに移る場合は、ESC または Control + ] を入力します。

挿入モード

テキストを入力するモードです。他のエディタと同じような動きをします。

ビジュアルモード

テキストの範囲選択をするモードです。
ノーマルモード時に、v を入力するとビジュアルモードになります。
Control + v を入力すると矩形選択のビジュアルモードになります。

範囲選択した後、d を入力すれば削除、yを入力すればコピーが実行されます。

まずは覚えるコマンド

ノーマルモードで使えるコマンド一覧

コマンド 意味
h j k l カーソル移動
:w ファイル保存
:q ファイルを閉じる
:q! ファイルを強制的に閉じる
dd 1行削除
yy 1行コピー
kk 1行コピーして削除
p ペースト
w 1単語ずつ移動
$ 文末に移動
^ 行頭に移動
: + {数字} + Enter {数字} の行まで移動
/ + {文字列} + Enter {文字列}でファイル内検索。
nN で該当箇所に移動
i カーソルの位置で挿入モードに移行
o カーソルの1つ下に1行追加して、挿入モードに移行
Shift + o カーソルの1つ上に1行追加して、挿入モードに移行
v ビジュアルモードに移行
Shift + v ビジュアルモード(矩形選択)に移行
Shift + g ファイルの最後の行

組み合わせコマンド

コマンド 意味
:wq ファイルを保存して閉じる
{数字} + dd {数字}行だけ削除
{数字} + yy {数字}行だけコピー
dw 1単語(word)削除
cw 1単語(word)削除して、挿入モードに移行

上記に見られるように、コマンドは規則性を持っています。それを手がかりに覚えておくと良いです。

マイクロマクロ

コマンド 意味
. 一つ前の操作を実行(マイクロマクロ)

例えば、 一行削除コマンドddを実行した後に、カーソル移動して、. を入力すると、再び一行削除コマンドが実行されます。

タイプ数が減らせるので、マイクロマクロを活用することをおすすめします。

Vim操作に慣れるには

操作方法に関しては、知識を学ぶだけではなく、実際に使えるようになる必要があります。
実際に使えるようになるためには、実際に学んだ操作方法を使って見る必要があります。
慣れないうちは、プログラミングの効率が落ちてしまうかもしれません。
しかし、一時的に効率が落ちることは覚悟して、普段のプログラミングを行う時にVimキーバインドを絶対に使うようにしてみることをおすすめします。
つっかえたり調べたりしながらの操作になると思いますが、繰り返していくうちに自然と手に馴染むようになります。

ゲーム感覚で学びたい場合は、VimGolf というサイトがあります。

https://www.vimgolf.com/

「お題になっている編集作業を、どれだけ少ないタイプ数で完了できるか」を競うゲームとなっています。他の人の操作方法を参考にできるので勉強になります。