• このエントリーをはてなブックマークに追加

vimの若干マニアックな使い方:レジスタ

  • このエントリーをはてなブックマークに追加

vim
zaco muraです。

最近業務が落ち着いていることもあり、よく使うツールの便利な使い方とかを勉強しています。
そんな中で自分の知らない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などでデータをコピーするときに使われています。このレジスタですが、実は保存する領域が複数存在します。つまり、複数のデータを保存&貼り付けすることができるわけです。

やり方

まず、以下のようなファイルを用意します。
vim1

この状態で、2行目の”w”にカーソルを持って行き、コマンドモードにした上で

“adw

と打ちます。
(画面は “ad まで打った状態です。)
vim2

すると、以下のように”world”という文字列がカットされます。
vim3

このコマンドを解説すると、

” : レジスタを使う というコマンド
a : a という名前のレジスタを選択
dw: 単語をカット

ということになります。つまり、これを実行した状態では、”a”レジスタに”world”という文字列が格納された状態になっています。

次に、3行目の”!”にカーソルを持って行き、同様に実行していきます。
今度のコマンドは

“bdw

になります。
(画面は “bd まで打った状態)
vim4

すると、今度は”!!”という文字列がカットされます。
vim5

もうおわかりかと思いますが、今度は、”b”というレジスタに”!!”という文字列を格納しました。

最後に、これを貼り付けます。

まず、1行目の末尾にカーソルを持って行きます。
この状態で、以下のコマンドを実行します。

“ap

(画面は “a まで打った状態)
vim6

すると、先程”a”レジスタに格納した”world”という文字が貼り付けられます。
vim7

続いて同じように

“bp

と実行すると、
vim9

このように”b”レジスタに格納されていた”!!”という文字列が貼り付けられました。

このように、レジスタ機能を使えば複数のデータを同時にコピー&ペーストすることができます。

まとめ

ということで、vimのレジスタ機能について説明しました。
他にもいろいろ調べたのでまた書いていきたいと思います。

以前書いたvimの記事もどうぞ
【vim】若干便利なオプション
vimの自動補完機能

スポンサーリンク
Sponsords Link
  • このエントリーをはてなブックマークに追加

ZacoDesign

スポンサーリンク
Sponsords Link