Vim:在标签中包含单词

yeotifhr  于 2023-10-20  发布在  其他
关注(0)|答案(5)|浏览(111)

我想在Vim中用封闭标签 Package 一个单词,例如从word'word'或从word(word)

efzxgjgh

efzxgjgh1#

使用Tim Pope的vim-surround,您可以用途:ysw'用“"括起单词,ysw(用“(“括起单词。如果你想用一个实际的标签(如HTML标签)包围单词,你可以使用yswt,然后在提示符中键入你的标签。如果你想改变现有的环绕元素,使用csw,输入你想替换的环绕元素,点击 (enter),然后输入新的环绕元素。 请注意,要使上面的命令起作用,您必须将光标放在要包围的单词的开头。 从其官方页面: 按cs"'(即c、s、双引号、单引号) “Hello world!” 将其更改为 “你好,世界!' 现在按cs'将其更改为 你好,世界! 要转一圈,请按cat"以获得 “Hello world!” 要完全删除分隔符,请按ds"。 你好,世界! 现在将光标放在“Hello”上,按ysiw]iw是一个文本对象)。 [Hello] world! 让我们使用大括号并添加一些空格(使用“}”而不是“{”表示没有空格):cs]{{ Hello } world! 现在将整行用括号括起来,并使用yssbyes)。 (Hello world!) 回复原文:ds{ds)你好,世界! 强调你好:ysiwHello world! 最后,让我们试试视觉模式。按大写字母V(用于逐行视觉模式),然后按S。 Hello world! 有关详细的用法信息,请安装vim-surround,然后使用:help surround`调用文档。

jtjikinw

jtjikinw3#

<c-r>对于这些非常方便,允许您插入寄存器,剪贴板,光标下的单词(<c-r><c-a>)等的内容。例如:

nmap <space>' ciw'<c-r>"'<esc>
vmap <space>' c'<c-r>"'<esc>
nmap <space>( ciw(<c-r>")<esc>
vmap <space>( c(<c-r>")<esc>

它Mapspace+'以将当前单词或视觉选择用单引号括起来,或Mapspace+(以将当前单词或视觉选择用双引号括起来。
Map的内容是“变内字|选择文本,插入引号,插入单词,插入引号,退出插入模式”。

xqk2d5yq

xqk2d5yq4#

我第一次使用这个片段将宏记录到字母M中:qmcw'“' q然后用@m重做
解释,在第一次10罢工是必要的:

  • qm开始记录字母m中的宏
  • cw只改变一个字,并把你到插入模式
  • 第一句话是
  • “粘贴我们在stade 2删除的单词,同时保持插入模式
  • “是另一个环绕引用
  • 返回编辑词
  • q结束宏。

用@m回忆一下:现在我们只用两击就能包围...

quhf5bfb

quhf5bfb5#

NVIM中可以使用此函数,将<leader>sw<leader>sWMap为分别使用:lua Surround("w"):lua Surround("W"),其中Surround是自定义函数。
您可以找到更多信息和函数定义here

相关问题