はじめに
CUIベースのテキストエディタにviがあります。特にUNIX系のマシン操作は基本的にリモートから行うため、XWindowsシステムを使わない場合はviやemacsやnanoを利用します。
で、私は主にviを利用します。単に慣れているからですが、マシンに入っていないことがほぼないのも魅力の一つです。
ちなみにvimtutorコマンドでvimのハンズオンが行えます。もしマシンに入っていればこちらで練習するのも手と思います。
$ which vimtutor /usr/bin/vimtutor
重要度★★★
これさえ使えればやりたいことはなんとかなります。
前提としてviにはモードという概念があり、主に「コマンドモード」と「入力モード」で、起動直後はコマンドモードです。入力モードに入っている場合にコマンドモードに戻りたければ「Escキー」を押下します。
- 移動系
h, j, k, lでカーソル移動。
動き方は←↓↑→で、この4つを使えばテキストのどこへでも行けます。
- 検索系
そうはいっても手っ取り早く移動したい場合は「/検索文字列
」と入力して「Enter」を押すと該当文字列に飛びます。そこで「n
」を押せば次の該当文字列に移動していきます。ちなみに「/検索文字列\c
」とすることで大文字小文字を区別せずに検索することも可能です。
- テキスト追加系
「i
またはa
」で「入力モード」になります。これを一度打てば任意のキーをテキストに入れることができます。
入力モードになると上で述べていたキーは反応しなくなります。コマンドモードに戻る場合は「Esc
」です。
iとaの違いですが、カーソルの箇所に文字を差し込む場合は「i」、カーソルの後ろに文字を差し込む場合は「a」です。
特に行末に追記しようとする場合は「i」だと所定の場所に文字が入らないので「a」を使うことが多いです。
- テキスト削除系
「x
」キーにて文字を消せます。これさえ覚えていれば連打することで全ての文字列を消せます。
ただ、よく使うものとしてカーソル位置から行末までを消すd$
があります。
あとは、行全体を消すdd
も重宝します。
- 操作取り消し系
1つ前の操作を取り消したい場合は「u
」キーです。誤って削除してしまった場合などには大活躍します。
- コピペ系
テキストエディタであれば必須ですね。
これは少しややこしくてコピー対象の先頭で「v
」キーを押してカーソル移動(h, j, k, l)を行い、末尾にて「y
」キーを押下します。これで選択は完了。
後は、ペーストしたい場所に移動して「p
」キーを押下します。挿入のされ方は「a」と同じでカーソルから一つ後ろなので気を付けてください。思った場所と違うところに挿入されたら「u」キーで戻せばいいだけですが。
- 保存系
よく使うのは「:wq
」で保存して終了です。とりあえず現状を保存するのは「:w」です。
たまに使うのは「:q!」でこれは保存せずに強制終了です。ファイルがめちゃめちゃになってしまった場合とかはこれを使ったりします。
ここまでの操作を覚えていれば、とりあえず時間はかかるにせよやりたい作業は行えると思います。
重要度★★☆
これが使えればテキスト編集の時間が短縮できます。
- 指定した行に移動
飛びたい行数の数字を入れて「Shift+g」でその行数に移動できます。
- ページめくり
「Shift+f」で画面送り、「Shift+b」で画面戻しです。
- ブロック選択
「Ctrl+v」で縦に移動すれば列レベルで指定できます。
そして選択は上と同じく「y」。あとは普通の「v」と同じです。
終わりに
viで使えるコマンドが増えると、手持ちの武器が増える感覚で結構楽しいです。