我想在vim中复制“突出显示并注解掉代码”(通常绑定到键SHIFT + /)的VS代码特性。我可以在普通模式下运行:g//s/^/\/\/ /,在每行的开头预先添加//。我只想对此设置一个约束,这样它就只对可视模式下突出显示的行应用替换。
vim
SHIFT + /
:g//s/^/\/\/ /
//
whitzsjs1#
用V选择所有的行,然后点击:,给予:'<,'>,这是你的可视选择范围,然后你可以添加vim命令。如果您不想使用插件,我建议您使用以下方法。
V
:
:'<,'>
:'<,'>normal I//
如果你想要一个非常好的vim插件,以vim的方式完成这个任务,看看tpope的vim-commentary,这在我看来是必不可少的。
azpvetkf2#
我可以在正常模式下运行:g//s/^/\/\/ /,以便在每行的开头预先挂起//。好吧,这将是一个不必要的复杂的方式来做它,你的命令不会真正工作无论如何。
:g//
:g/^/
:g/$/
:%s/^/\/\/ /
在此上下文中使用:help :global没有任何价值(无论如何,您都希望在每一行上操作),并且速度相当慢(我们说的是慢上千倍)
:help :global
:%s@^@// @
:%s@^@// <-- there is a space, here
v " enter visual mode <motion> " expand the selection : " press : :'<,'> " Vim inserts the range covering the visual selection for you :'<,'>s@^@// <CR> " perform your substitution
2条答案
按热度按时间whitzsjs1#
用
V
选择所有的行,然后点击:
,给予:'<,'>
,这是你的可视选择范围,然后你可以添加vim命令。如果您不想使用插件,我建议您使用以下方法。
如果你想要一个非常好的vim插件,以
vim
的方式完成这个任务,看看tpope的vim-commentary,这在我看来是必不可少的。azpvetkf2#
我可以在正常模式下运行
:g//s/^/\/\/ /
,以便在每行的开头预先挂起//
。好吧,这将是一个不必要的复杂的方式来做它,你的命令不会真正工作无论如何。
:g//
要么不匹配,要么匹配上一个搜索。此处您需要的可能是类似:g/^/
或:g/$/
的内容。在此上下文中使用
:help :global
没有任何价值(无论如何,您都希望在每一行上操作),并且速度相当慢(我们说的是慢上千倍):
从可视模式进入命令行模式。因此,您只需进行可视选择,按:
,然后运行替换: