我尝试在句子中选择一些文字并替换突出显示文本范围内的字符。
e.g。
这是我的杰作文件$,其上有许多美元符号。 $例如$
我只突出显示$For example$
并尝试用“|”替换两个美元符号
我尝试过以下命令:
:'<,>'s/\$/\|/gc <CR>
我使用'v'
突出显示普通
但是上面的命令用“|”替换句子中的所有美元符号 instread 这是我在上面的命令之后得到的:
这是我的杰作文件| |有很多迹象。 |例如|
有没有人知道我的替换命令有什么问题?
答案 0 :(得分:1)
选择后,键入
s/\%Vpattern/replace
所以在你的情况下
:'<,>'s/\%V\$/\|/gc <CR>
请注意,如果您在搜索开始时进行非常神奇的搜索(\v
),请省略反斜杠,然后输入%V
:h \%V
解释得非常好:
在可视区域内匹配。
Vim在一般情况下不是非常用户友好,你期望工作的东西,比如替换选择内容,不是自动的。
如果对选定文本执行的主要操作是替换,则此映射可能很有用,当您在可视模式处于活动状态时键入\%V
时,该映射始终以:
为前缀。
" Turn on "match inside visual selection" by default when pressing
" : with text highlighted
vnoremap : :\%V