如何在Vim中快速引用/取消引用单词并更改引用(例如从“到”)?我知道环绕的事。vim插件,但我想只使用vim。
当前回答
如果你使用vim插件https://github.com/tpope/vim-surround(或使用VSCode vim插件,它附带了预先安装的vim-surround),它非常方便!
add
ysiw' // surround in word `'`
下降
ds' // drop surround `'`
改变
cs'" // change surround from `'` to `"`
它甚至适用于html标签!
cst<em> // change surround from current tag to `<em>`
查看github上的自述文件以获得更好的示例
其他回答
我不知道任何内置的vim命令,但使用r"f'r"从'到'和r'f"r'从'到'工作,如果你站在第一个'或'。命令r'将光标下的任何字符替换为',f“将您向前移动到下一个”。
VIM for vscode做得很好。如果你不使用vscode,它是基于一个vim-surround。
一些例子: "test",光标在引号内,类型为cs"',以'test'结束 "test",光标在引号内,类型ds",以test结束 "test",光标在引号内,输入cs"t,然后输入123>结束 < 123 >测试 用光标在单词上测试测试类型锯)结束于(测试)
对于VSCodeVim、Neovim和Macvim的用户,可以这样做
vwS"
你可以用你想用的任何东西来代替“”。 你可以用任何其他选择运算符替换w
用单引号括起来(例如)ciw'<C-r>"'<esc>可以,但重复就不行。试一试:
ciw'<C-r><C-o>"'<esc>
这将默认寄存器的内容“逐字”放置。现在你可以按了。任何一个词都要加引号。要了解更多信息,请参阅:h[elp] i_ctrl-r和关于:h text-objects文本对象的更多信息
来源:http://vimcasts.org/episodes/pasting-from-insert-mode/
这个怎么样?
:%s/\'/"/g