LEXUES BLOG

レキサスブログ

vi – Tips ~移動編~

こんにちは、技術統括部の豊田です。
久しぶりのレキブロ投稿です。

今日は、text Editorの話題をひとつ書きたいと思います。
私は4月に入社してから、vi系エディタのひとつであるgvimを使用しています。

使い始めた当初は、コマンドを使用した操作に悪戦苦闘してましたが、
一年近く使ってみて、やっと手に馴染んできた感がでてきました。
いまでは、プログラムを書くにとどまらず、日々の日報作成など、
ちょっとしたテキスト作成にもgvimを愛用しています。

vi Editorの特徴といえば、hjklなどのコマンドによる操作です。

最近、仕事でも本格的にプログラムを書くことが多くなって感じることなのですが、
テキストエディタの重要な要素のひとつは「編集したい箇所にすばやく移動できる」
ということです。

その点では、vi Editorには、多くの移動系のコマンドが用意されています。
hjklもそうですが、Ctrl+f、Ctrl+b、Ctrl+d、Ctrl+u、Ctrl+e、Ctrl+yなどがあります。
特定の行にピンポイントで移動したいときには、exコマンドを使用して行番号を
指定しての移動も可能です。

しかし、私が最近感じたのは、縦方向に移動するコマンドはたくさん覚えましたが、
横方向に移動することに関しては、相変わらずlを連打したり、
wを連打したりしているということです。3wで3単語先に移動といったことも可能ですが、
例えば、以下のようなコードの引数を変更したい場合、

10: public function hoge(arg1, arg2, arg3) {
11:
12: }

(の位置が何単語先を瞬時に数えるのはなかなか難しかったりします。
何か良い横方向移動のコマンドはないかと探してみると、ありました。

fxコマンド、txコマンドです。

「入門vi」によると、

fx : カレント行の次のxに移動
tx : カレント行の次のxの直前に移動

xは任意の文字を表します。

上のコードの例でいえば、f(と入力すると、(の位置までカーソルが移動します。
他のコマンドと連携させるともっと効果が分かります。
上のコードの引数を丸ごと書き換えたいときなどは、こうです。
:10 -> f( -> l -> v -> t) -> c

このfx、txですが、Fx、Txとすると逆方向へ検索します。
基本的なコマンドですが、ここ最近では私的にとてもヒットしたTipsです。

この記事のライター

みなさまからのご連絡をお待ちしております。

CONTACT US