実践vimメモ(tip:59~121)

vimのめも


実践Vim 思考のスピードで編集しよう! (アスキー書籍)
実践Vim 思考のスピードで編集しよう! (アスキー書籍)

TIP memo

書籍「実践vim」に出てくるtipのメモです。
本書の各々のtipの目的とはずれてることが多々あります。ただ単に僕がこのtipを読んで学んだコマンドのメモです。

 

TIP60

これも結構革命的だった。レジスタを指定できる。
例えば、ただ普通にyyでヤンクするのではなく、"{register}yiwなどでヤンクすると、"{register}pでそれをプットできる。
{register}というのはアルファベット一文字。
これによって26パターン分のクリップボードのようなものが手に入ることになる。

これに続けて、同じ{register}でヤンクすればレジスタは上書きされ、{register}を大文字にすると追記される。

またいつものとおりに、dとかxで切り取ったときは「無名レジスタ」というレジスタに登録される。
しかし、ヤンクに関しては別の「ヤンクレジスタ」というレジスタに登録される。
これは"0でアクセスすることができる。
つまりyiwなどで単語をヤンクしたあと、dawなどで単語を切り取ったあとでも、"0pと打てば、さきほどヤンクしたものをプットすることができる。

ブラックホールレジスタというのもある。
"_diwなどのように"_を付けて切り取り動作を行うと、その切り取ったものはブラックホールに投げ込まれる。つまりレジスタに保存されなくなる。直感的な「削除」と同じである。どのレジスタも汚染されない。

その他のレジスタ
"%:現在のファイルのファイル名
".:直前に挿入されたテキスト
基本的にはこのあとにpが続くのだろう。
レジスタは便利だが、単語Aをコピー→単語Bを削除して単語Aを貼り付け
という作業をしたいときは、
単語Aをyiwでコピーし、ciw0で削除と、貼り付けができる。
もう一つの方法は単語Aをyiwでコピーし、viwpで貼り付ければ楽である。こちらのほうが手数が少なく良さげだと思う。

この方法の前者の長所は.で変えたい単語のどこにいても置換が可能。
その反面、後者は変えたい単語の頭にカーソルがないと.で繰り返した時に若干ミスる。

 

TIP64

ここからはマクロの話。
何種類かのキーの組み合わせを記録して、再利用できる。
aton上で使うには、「atom-keyboard-macros-vim」というパッケージを使うと良い。
q{register}:マクロ開始
@{register}:マクロ実行
{register}はa-zA-Zの52種類登録できる。
うそ。qは登録できない。

このパッケージ便利なのですが、本来のvimならできる「n回繰り返し」ができないのでそこがネックです。
あとこれは本来のvimでもかも知らないけど(試してないからわからない)、jjでエスケープすると、jjと入力されたと記録される。

 

TIP66-71

上に書いた問題があるので、atom上ではマクロの本領を発揮できないので飛ばします。
また良さげなパッケージがアレばそのときにでも見返そうと思います。

 

TIP72-78

主に置換などの正規表現の話だがatom上では使わないので省略

 

TIP79

/?で検索画面が表示されている時にキーを押すと検索履歴が見れる。

 

TIP80-86

省略

 

TIP87

ここからは置換の話。
多分atom上ではあまり使わないと思うけど、スクレイピングでもよく使う正規表現の勉強のため随時本来のvim上で練習してみる。
これが基本構文
:[range]s[ubstitute]/{pattern}/{string}/[flags]

:s/foo/bar/:次のfooのみをbarに変える
:s/foo/bar/g:カーソルが乗っている全てのfooをbarに変える
:%s/foo/bar/g:ファイル全体のfooをbarに変える

 

TIP88-96

省略

 

TIP100

VGなどで選択したあとに:'<,'>sortと続けると、選択されていた行がアルファベット順に整理される。

 

TIP100-

vim上のパッケージの話なので省略。

 

実践Vim 思考のスピードで編集しよう! (アスキー書籍)
実践Vim 思考のスピードで編集しよう! (アスキー書籍)

 

コメントを残す