本日のvim道 2018.3.20
今回はスクリーン移動系
H,M,L
現在見せている文書の範囲はまったく変えずに、カーサだけをウィンドウの一番上([H]igh)、真ん中([M]iddle)、一番下([L]ow)に移動する。
zt, zz, zb, C-E, C-Y
文書内でのカーサの現在地は変化させずに、見せている文書の範囲だけを変える。
カーサの位置が一番上になる範囲を表示するのが[zt]op、ちょうど真ん中になるのが[zz]、一番下になるのが[zb]ottom。C-Eは下に、C-Yは上に一行ずつスクロールしていく。
C-F, C-B, C-D, C-U
見せている文書の範囲を変える。
[C-F]orwardで現在の位置から1ページ分すすみ、、[C-B]ackで一ページ分もどる。[C-D]ownで半ページすすみ、[C-U]pで半ページもどる。
C-O, C-I
C-Oでカーソルのジャンプ移動をundo、C-Iでredo。
行単位のジャンプだけのundo/redoで、たとえば$の後に戻るのには使えない。
色々試していた時にはHMLやC-Fなどだけのundo/redoかと思って、あまり役に立つことはなさそうだという旨のツイートをしたら:
I use that a hell of a lot. For example, make a change, realise I need to change something else to match it elsewhere, so “/“ search for the other place, quickly change, then jump back with Ctrl-O…
— Daniel P. Wright (@danielpwright) 2018年3月20日
友人から情報提供をもらった。なるほど、検索でジャンプしたときもundo/redoできるのか。それは便利だ。