入力中の文字列を瞬時に補間

一度使ったら手放せない便利機能

機能概要

次のような行を入力したいとします

printf("(%g, %g, %g)", vector_line_A[0], vector_line_A[1], vector_line_A[2]);

この行で "vector_line_A"という文字列を何度も入力するのが面倒ですよね. でも これから 説明する機能により,この行は 実際には次のようなキー入力を すれば良いのです. 実際にやってみて下さい. CONT-P の所は コントロールを押しながらP という意味です

printf("(%g, %g, %g)", vector_line_A[0] CONT-P [1] CONT-P [2]);

CTRL-P を押した瞬間に vector_line_A という文字がでてきたと思います
直前に入力した単語は CTRL-P で瞬時に入力できるということです

実際には直前だけじゃなくて 今までファイルに書かれていた文字のほとんどを カーソル位置に呼び戻して 楽ができるようになります. このように, jvimには 今まで 入力されてファイル中にある(とある基準に基づく)単語を入力の時に瞬時に入力する ことができます

やってみよう

この機能は 実際にjvimを動かしながら試すと分かりやすいです. 例えば次のような 1行が すでに入力されていたとします

apple banana grape orange

そして 次の行を入力しようとして挿入モードにしてから CTRL-P を押してみて 下さい, すると カーソル位置に文字列が勝手に出てくる と思います. 文字列が 出てきた状態でさらに もう一度 CTRL-Pを押す と どんどん前に入力した 単語が よみがえってくることがわかることでしょう
さらに 例えば "apple"と入力したい場合は 最初の文字 "a"だけを打った状態で CTRL-P を押し てみて下さい. 今までに入力した "a"で始まる単語が補間されます

候補は カーソル位置から近いものから CTRL-Pを押す度に条件に合う単語を前方に 検索してきて よみがえらせます. 逆に 入力する位置よりも後ろにある(すでに入力 されている)文字列を拾ってきたい場合は CTRL-N を使います.(後方検索)

これだけわかれば もうこの機能は自由自在に使えるはずです. 何かプログラムやスクリプトを 書いている時に 関数名や変数名の名前が ちょっと長くてわかりにくい名前だった時, 今までは ファイルの前の部分を わざわざスクロールさせたりして 確認しに行ってたり… ってことは ありませんでしたか ? この機能を知ったら これからは 最初の 1〜2文字を入れてから CTRL-P/Nを数回押すだけ で正確な文字列を すばやく入力できるのですから もうこの機能は 手放せなくなると思います. もう少し詳しいことが知りたいのであれば マニュアル(reference)を 読んでみて下さい

その他の入力時の横着(?)機能たち

他にも 挿入中に今まで入力されている文字列をカーソル位置に呼び出すコマンドが いくつかあるので簡単に紹介します. こういうのは存在を知っていても 無意識に 指が動いて使えるようにならないと 便利に使っているという気分になれないので 最初のうちは意識してでも慣れるようにすると 後が楽になるものだと思います

CTRL-A

直前に挿入した文字 を呼び出せる. 何か挿入してから もう一回同じ文字列を打ち たい時に有効. でも何か他の操作をした後だと効かないので ちょっと使いにくいかも

CTRL-Y

挿入する時に 直前の行のカーソルの真上の文字をコピー する
何かリストみたいなものを書いている時で,同じような行が続く時には使えるかも

CTRL-E

カーソル位置の 真下の文字をカーソル位置にもってこれる . CTRL-Yの逆です

CTRL-R

名前付きバッファや履歴バッファの内容をカーソル位置に 書き出せる
たとえば 現在編集中のファイルのファイル名ならば CTRL-R% という操作をする だけで入力できるということです
…ちなみに 名前付きバッファや履歴バッファの内容は :dis と打てば一覧表示 できますので 組み合わせて活用すると便利

おまけ … その他の横着入力例

上の機能解説とは直接関係ありませんが…楽に文字列を入れる例をついでに書きます

「現在自分のいるディレクトリ名」を編集中の文章の中に書きたい時には わざわざディレクトリ名を :pwd で調べてから「手で」書かなくても :r!echo $PWD で一発です. もちろん環境変数 PWDにカレントディレクトリが 設定されていれば…ですが 普通は設定されていると思います. まぁこれは別に JVimの機能でも何でもないんですが ちょっと気がつきにくい割には なかなか使えます. 他の環境変数に格納されている 文字列も同様に持ってこれますね

「外部プログラムの読み込み」も 面倒な入力を省く手段のひとつですね. たとえば 今日の日付を入力するなら "date"コマンドを使ったりして直接よみこませるということが できます. 詳しくは外部のプログラムの利用で機能拡張の解説文章を読んで みて下さい


前項目, 「便利なタグ機能を手軽に使おう」へ

目次へ

次項目, 「希望のファイルを自由自在に開く」へ