Hatena::Groupvim

vim and plasticity

 | 

2009-06-20

jumpも覚えるか

05:25

参考 :help jump-motions

jump-listの確認

:ju[mps]


jump-motions

8. Jumps					*jump-motions*

A "jump" is one of the following commands: "'", "`", "G", "/", "?", "n",
"N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and
the commands that start editing a new file.  If you make the cursor "jump"
with one of these commands, the position of the cursor before the jump is
remembered.  You can return to that position with the "''" and "``" command,
unless the line containing that position was changed or deleted.

jumpしたときに、Vimはjump前のカーソル位置を覚えています、と。

bufferを開くこともjumpに含まれているので注意。

<c-f>,<c-b>,<c-u>,<c-d>はjumpに含まれていないので注意。

"gg"は書いてないがjumpに含まれている模様。"1G"のaliasなのだろうか。


jump-listを移動

<C-O>(alphabetのo)でjump元に戻れる。jump-listを辿れる。bufferを跨いで戻るので乱発注意。

<C-I>(alphabetのi),<Tab>でjump-listを進める。

							*CTRL-O*
CTRL-O			Go to [count] Older cursor position in jump list
			(not a motion command).  {not in Vi}
			{not available without the +jumplist feature}

<Tab>		or					*CTRL-I* *<Tab>*
CTRL-I			Go to [count] newer cursor position in jump list
			(not a motion command).
			In a |quickfix-window| it takes you to the position of
			the error under the cursor.
			{not in Vi}
			{not available without the +jumplist feature}

jumpは便利だけど、乱発すると狙ったとこにうまく戻れない感が。

jump-list見ても何がどこだか分からないし。

<C-O>で戻るのは記憶してる範囲に留めるのがいいかもしれない。それ以上はmarkするとかして。


最後にinsert-modeだった場所に戻る

gi

bufferは跨がない。

便利かも。

registerでも覚えるか

03:52

参考1 :help :registers

参考2 :help registers


現在のレジスタの確認

:reg[isters]


レジスタの種類

[RO]はRead Onlyのレジスタを意味する。

""Unnamed register.最後に用いられたregisterを指す
"0yankしたときに用いられるregister
"1delete,changeの際に用いられるregister
"2delete,changeの際、旧"1の値が入る
"3delete,changeの際、旧"2の値が入る
...... "4から"9まで同じ ...
"-small delete register.1行以下のdelete内容が入る
"aレジスタa。ユーザが指定しないと使われない。
"A指定すると"aに追加(append)される
...... 以下"b,"Bから"z,"Zまで同じ ...
".The last inserted text.[RO]
":The most recent executed command-line.[RO]
"%Current file name.[RO]
"#Alternate file name.[RO]
"=Expression register.計算してくれる特殊なレジスタ*1[RO]
"*X11ならMouse overした内容、またはVisual modeで選択した内容。 WindowsならClipboardの内容。
"+X11ならClipboardの内容。Windowsなら"*と同じ。
"~Drag and dropの際に用いられる[RO]
"_Black hole register.何も起こらない。

レジスタに書き込む

"0から"9はyank,delete,changeの際にVimが放り込んでいくけど、"a-"z,"A-"Zは指定しないと使われない。特定のレジスタに書き込むには、yy,dd,cc,etc.の前にレジスタを指定すれば良い。

"aに書き込むには、

"add

などとすればいい。

数字レジスタに書き込むことも出来る。あんまり意味なさそうだけど。


Clipboardに書き込むなら、

"+yy

とか。


レジスタの読み込み

Insert mode, Command-line modeにて、<C-R>の後にレジスタをDouble quote(")無しで指定する。

つまり"aの内容を読み込むには、

<C-R>a

と押す。

もしくはNormal modeでレジスタを指定してpaste,

"ap

としてもいい。

*1:Reference :help "=

 |