無題の備忘録

IT技術について調べたことや学んだこと、試したこと記録するブログです。Erlang、ネットワーク、 セキュリティ、Linux関係のものが多いです。

「実践Vim」を読んで学んだこと - 第1章 Vimのやり方

ドットコマンド

ドットコマンドすごい。機能的には「直前に行った変更を繰り返せる。」だけ。これだけ読んでも何がすごいかわからないが、実際に使ってみるとこれが効く。

この思想がVimの本質なのだろうと感じる。

下記のようなJavaScriptのコードがあるとする。各行の末尾にセミコロンが必要だ。このようなことをドットコマンドなら簡単にやってのける。

var foo = 1
var bar = 'a'
var foobar = foo + bar

初期状態はノーマルモードだ。最初の行で、大文字のAを入力し行末に移動して挿入モードに切り替える、セミコロン;を入力し、<Esc>キーで挿入モードを抜ける。

var foo = 1;
var bar = 'a'
var foobar = foo + bar

そうすると、1行目の編集が終わる。ここまでは良い。そのあと、j.を入力するだけで残りの行が編集できるのだ。

jで1つ下の行に移動し、.で先程の操作を繰り返す。先程の操作というのは、A;<Esc>キーによる操作だ。そして、次の行も同様に編集したいなら、 j.を入力すれば良い。これは、カーソルが行末になくても良いのだ。Aの入力が行末までの移動を含んでいるため。

var foo = 1;
var bar = 'a';
var foobar = foo + bar;

これは、便利だ。

この機能が、コードを記述方法を変える。コードの記述に対する考え方を変える。

繰り返しできる操作でコードを書くことを考えるようになる、というか、そう考えてVimを書くべきなのだ。

ドットの公式

本の筆者は、繰り返せる操作によるコードの記述方針のことを「ドットの公式」(Dot Formula)と呼んでいる。

ドットの公式 : 移動にキー入力1回、何かするのにキー入力1回

1回のキーストロークをカーソル移動に、もう1回のキーストロークを何か実行するのに使う方針のことだ。これより少ない入力回数は無理だろう。これがVimにおける理想的な記述方針で、このように記述できるように考える必要がある。

Vimはただのテキストエディタと考えていると、Vimのメリットを引き出せない。この公式を使えるように記述する必要がある。

まだ、私はVimを使っていたと思っていたが、本当のVimの使い方ができていなかったのだ。なんてことだ。第1章でVimの真髄とも呼べることを感じることができた。

続きは下記のリンクより

stacktrace.hatenablog.jp