您的位置:首页 > 其它

vim 如何迅速删除一对括号

2014-12-02 14:57 288 查看
嵌套的括号,如果删除了左括号后,无法再%跳到对应的右括号,有什么方便的方法吗?
先%删除,再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)
然后把它们映射到某个键上,就方便反复用了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: