最近vimで覚えた便利な操作

へっぽこvimmer丸出しですが、vim歴1年未満ということでご勘弁ください。

コマンドモードにコピーした文字を貼り付け

:を叩いてコマンドモードにしたら、 CTRL+rを押して、「"」(ダブルクォーテーション)を押すと、ペーストできます。

不便だなぁと思いつつも、今まで手打ちしてました。
 
 

カーソル下の文字を手軽に検索

検索したい単語(多分wとかbでジャンプ出来るワード単位)の上にカーソルを持っていって、前方検索なら「#」、後方検索なら「*」を叩くと、即座に次に見つかった単語にジャンプされます。

今までは、.vimrcに以下のような設定をしておいて、ビジュアルモードで選択してから検索していました。

TEXT:
  1. vnoremap <silent> // y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>

まぁこれはこれで便利なんですけど、1単語なら「*」って叩いたほうが圧倒的にキーストロークが少なく済みますね。
 
 

markした場所をどこまでもいつまでも覚えておく

任意の行で「ma」とか叩くと「a」にそのカーソル位置がマークされ、「'a」と叩くとマーク位置にジャンプ出来る機能がviにはあります。
この機能は同一セッション(要するに現在編集中のファイル)に限ったマークらしいのですが、これがvimだと拡張されているそうです。

マークとして使うアルファベットを大文字にするか、数字にすると、どのファイルでマークされたのかまで記録してくれます。

例えば「m1」とマークした後に別のファイルを開いても、「'1」と叩けば先ほどマークしたファイルにジャンプします。
ファイルをクローズしてしまったりvimを一度終了させてしまっても、マークした場所を覚えててきっちりジャンプしてくれるので超便利です。

ということで、詳しくは「:help mark」で!
 
 

簡易電卓機能

インサートモードでテキスト編集中に、「CTRL+r」を押して、「=」(イコール)を入力すると、コマンドモードのように下の方で入力待ち状態になります。
ここで数式を入れてenterを叩くと、テキストに計算結果が挿入されます。

正確には電卓機能じゃなくて、いわゆるeval()的な、vim内部関数を直接呼び出して、出力結果をテキストに挿入するものみたいです。
なので、sin()とかlog10()とかも使えます。


関連記事