如何在Vim中快速引用/取消引用单词并更改引用(例如从“到”)?我知道环绕的事。vim插件,但我想只使用vim。


当前回答

这里有一些简单的映射,可以用来引用和取消引用一个单词:

" 'quote' a word
nnoremap qw :silent! normal mpea'<Esc>bi'<Esc>`pl
" double "quote" a word
nnoremap qd :silent! normal mpea"<Esc>bi"<Esc>`pl
" remove quotes from a word
nnoremap wq :silent! normal mpeld bhd `ph<CR>

其他回答

这里有一些地图可能会有所帮助:

:nnoremap <Leader>q" ciw""<Esc>P
:nnoremap <Leader>q' ciw''<Esc>P
:nnoremap <Leader>qd daW"=substitute(@@,"'\\\|\"","","g")<CR>P

如果您没有更改mapleader变量,那么使用\q" \q'或\qd激活映射。它们分别在光标下的单词周围添加双引号,在光标下的单词周围添加单引号,在光标下的单词周围删除任何引号。

用单引号括起来(例如)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/

在单词的周围加上引号:v i w S '

视图:选择光标下的单词 S:添加周边 ':单引号

将'改为":c s ' "

c:改变环境 ':单引号 :改为双引号

用引号括住所有单词:

s/\(\w\+\)/"\1"/g

之前:

aaa,bbb,ccc

后:

"aaa","bbb","ccc"

宏观的方式!

按q和q记录到q寄存器(我们用“q”作为快捷键来记住“引号”)。 按shift + b移动光标到当前单词的前面 按I输入'(单引号) 按esc键,然后按e键移动到单词的末尾 按a,然后再按',用引号包围单词。 按esc键进入正常模式。 最后按q将其记录到q寄存器中。

如何使用

移动光标到所需的单词。 按@q将单词用引号括起来。 如果你想把它重复成另一个单词,请按@@。

你可以修改步骤4任何你喜欢的{一行,一个词,直到找到一些字符,等等}。

使记录的宏持久

打开. vimrc 转到文件末尾 切换到插入模式。输入这个使它持久:

let @q='ctrl + r ctrl + r q'

保存并退出 打开你的文件,翻到一些单词 现在按@q

如果你做得正确,神奇的东西应该出现在你的话语中。

您可以将此应用于您喜欢的其他宏。