我尝试用Vim中突出显示的文本替换一些文本

时间:2016-11-20 03:07:47

标签: vim

我尝试在句子中选择一些文字并替换突出显示文本范围内的字符。

e.g。

这是我的杰作文件$,其上有许多美元符号。 $例如$

我只突出显示$For example$并尝试用“|”替换两个美元符号

我尝试过以下命令:

:'<,>'s/\$/\|/gc <CR>

我使用'v'突出显示普通

但是上面的命令用“|”替换句子中的所有美元符号 instread 这是我在上面的命令之后得到的:

这是我的杰作文件| |有很多迹象。 |例如|

有没有人知道我的替换命令有什么问题?

1 个答案:

答案 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