命令

命令

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>PEsc从插入模式返回到正常模式并P保留以前的内容时。

答案4

左括号只需(用括号将选择内容括起来即可。与环绕它并不像 vim 那样遵循通常的键绑定理念。相反,它需要更少的键。

否则,有很多方法可以继续。如果你不介意弄乱未命名的寄存器,你也可以使用s(^R")<esc>^RCTRL-R

相关内容