用字符串替换vim环绕中的环绕引号

用字符串替换vim环绕中的环绕引号,vim,Vim,我正在使用vim环绕,我正在尝试替换: 'this text needs to be replaced' 与 我做过yss和cst(即): 两者都只捕获第一个* 如何用字符串包围文本 HTML标记显然工作得很好,我想它们会检测到“的第一个实例,您可以在VIM中自定义行为,例如 let g:surround_42 = "**\r**" 或者基于文件,其中txt是一种文件类型 autocmd FileType txt let b:surround_42 = "**\r**" 其中42是*的AS

我正在使用vim环绕,我正在尝试替换:

'this text needs to be replaced'

我做过yss和cst(即):

两者都只捕获第一个*

如何用字符串包围文本


HTML标记显然工作得很好,我想它们会检测到“的第一个实例,您可以在VIM中自定义行为,例如

let g:surround_42 = "**\r**"
或者基于文件,其中
txt
是一种文件类型

autocmd FileType txt let b:surround_42 = "**\r**"

其中42是
*
的ASCII值。然后像往常一样使用single
*
更改包围的文本对象,它将被
**

sorround
帮助文件替换:

A replacement argument is a single character, and is required by |cs|, |ys|,
and |vS|.  Undefined replacement characters (with the exception of alphabetic
characters) default to placing themselves at the beginning and end of the
destination, which can be useful for characters like / and |.
所以实际上,在替换中只能使用一个字符。无论如何,
round
可以定制,您可以采用另一个答案中提出的解决方案

但是在这种情况下,为什么不使用一些普通的
vim
替换呢

:s/'/**/g  
然后,您可以在另一行上使用
@:

重复此更改,如果您同时拥有这两个选项,则可以执行以下操作:

ysi'*
.
ds'
那么它的作用是:

  • 将引号内的文本用星号括起来
  • 重复上一个命令
  • 删除环绕引号

  • 请注意,如果您没有处理插件映射之类的
    repeat.vim
    ,这将不起作用。

    您尝试过surround的问题跟踪程序吗?另一种编写方法:
    让g:surround_uu2nr('*')}=“***\r**”
    。我发现这提高了可维护性。
    :s/'/**/g  
    
    ysi'*
    .
    ds'