最近業務が落ち着いていることもあり、よく使うツールの便利な使い方とかを勉強しています。
そんな中で自分の知らないvimの使い方やオプションがあることを知りました。
周りのエンジニアも知らないような使い方で、改めてvimの奥深さに気付いた。。。そんなちょっとマニアックな(知っている人では常識?)使い方をメモしておきます
0.環境
OS : windows7 Professional 32bit
vim : Vi IMproved 7.4 (2013 Aug 10, compiled Oct 11 2014 23:54:50) MS-Windows 32 ビット GUI版
概要
vimにはレジスタという機能があります。自分なりの解釈では、”データを保存する領域”という感じで、yyなどでデータをコピーするときに使われています。このレジスタですが、実は保存する領域が複数存在します。つまり、複数のデータを保存&貼り付けすることができるわけです。
やり方
この状態で、2行目の”w”にカーソルを持って行き、コマンドモードにした上で
“adw
と打ちます。
(画面は “ad まで打った状態です。)
すると、以下のように”world”という文字列がカットされます。
このコマンドを解説すると、
” : レジスタを使う というコマンド
a : a という名前のレジスタを選択
dw: 単語をカット
ということになります。つまり、これを実行した状態では、”a”レジスタに”world”という文字列が格納された状態になっています。
次に、3行目の”!”にカーソルを持って行き、同様に実行していきます。
今度のコマンドは
“bdw
になります。
(画面は “bd まで打った状態)
もうおわかりかと思いますが、今度は、”b”というレジスタに”!!”という文字列を格納しました。
最後に、これを貼り付けます。
まず、1行目の末尾にカーソルを持って行きます。
この状態で、以下のコマンドを実行します。
“ap
(画面は “a まで打った状態)
すると、先程”a”レジスタに格納した”world”という文字が貼り付けられます。
このように”b”レジスタに格納されていた”!!”という文字列が貼り付けられました。
このように、レジスタ機能を使えば複数のデータを同時にコピー&ペーストすることができます。
まとめ
ということで、vimのレジスタ機能について説明しました。
他にもいろいろ調べたのでまた書いていきたいと思います。
以前書いたvimの記事もどうぞ
【vim】若干便利なオプション
vimの自動補完機能