Vim 中是否有允许在突出显示的文本周围添加括号的功能?
例如,如果我 n = getchar()
在中突出显示if (n = getchar() == '\n')
,我会在其周围加上括号。
答案1
你需要一个很棒的必备插件环绕Sb
。然后,如果您选择文本并输入(括号)或S)
(请注意大写 S!),它将很乐意执行您想要的操作。
它实际上可以做很多包围:各种引号、标签等。它允许您将光标放在双引号单词中,并通过键入:cs"'
(change-surround "
to ) 将双引号更改为单引号。或者您可以通过键入(delete-surround )'
完全删除引号。ds"
"
通过链接阅读文档,它真的很棒!
答案2
除了 Dmitry 的建议之外环绕插件,可以使用以下命令在突出显示的文本周围添加括号:
xi()<Esc>P
\s
您可以通过将以下内容添加到文件来以可视模式设置地图(例如)~/.vimrc
:
xnoremap <leader>s xi()<Esc>P
答案3
命令
c()<Esc>P
解释
如果您想将光标下的单词放在括号中,则是viwc()<Esc>P
。
viw
通常会v
选择所有i
字符w
。
c()
将c
改变选择并进入插入模式,您可以在其中键入文字字符(
)
。此外,c
还会自动将原始内容复制到yank
缓冲区(剪贴板)。
当<Esc>P
您Esc
从插入模式返回到正常模式并P
保留以前的内容时。
答案4
左括号只需(
用括号将选择内容括起来即可。与环绕它并不像 vim 那样遵循通常的键绑定理念。相反,它需要更少的键。
否则,有很多方法可以继续。如果你不介意弄乱未命名的寄存器,你也可以使用s(^R")<esc>
(^R
如CTRL-R
)