嵌套的括号,如果删除了左括号后,无法再%跳到对应的右括号,有什么方便的方法吗?
先%删除,再C-o跳回来是一个方法,仿佛不方便,而且不符合思维习惯,要先跳再删,思维顺序是先删再跳。
若包括括号里的内容一起删除的话,先移动光标到任意一个括号处,在normal mode下执行: d%
nnoremap <F8> ma%x`ax
光标移动到一个括号上,按F8
: nnoremap <F8> ma%x`ax
: 光标移动到一个括号上,按F8
这个需求在编辑文本的时候好像不常用到。如果你想居中对齐文本,vim 倒是有现成的命令。 一般移动到指定列,是用 | (是 shift + \),比如想移动到第10列,就是10| 直接按就行。如果你能估计屏幕的宽度,或者一行的长度,中间位置大约还是比较好算的。或者如果你能看见你想去的列上是什么字符,比如是 x,用 fx 也可以移过去。如果光标和中间位置之间不止一个 x,在 fx 后用几次 ; 就可以了。
$:移动光标到行尾 n$:移动到第n行的行尾 0(Num):移动光标到行首 ^:移动光标到行首第一个非空字符上去
f:移动光标到当前行的字符a上,nf移动光标到当前行的第n个a字符上 F:相反
如果你要频繁地做这件事,也不是没办法,但略显复杂。 就比如你是想挪一行文本的正中间,执行以下两个命令都可以: :exe "norm " . col("$")/2 . "|" 或 :cal cursor(line("."), col("$")/2) 然后把它们映射到某个键上,就方便反复用了