什么Vim命令可以用来引用/不引用单词?
我如何在Vim中快速地引用/取消引用单词并改变引号(例如从' to " )?我知道有关surround.vim插件,但我只想使用Vim。 
surround.vim将成为您最简单的答案。 如果你真的反对使用它,下面是你可以做的一些例子。 不一定是最有效的,但这就是为什么surround.vim写的。
-  引用一个单词,用单引号 
 ciw'Ctrl+r"'-   ciw– 删除光标所在的单词,并以插入模式结束。
-   '– 添加第一个报价。
-   Ctrl+r"– 插入"注册"的内容,也就是上一次的插入/删除。
-   '– 添加结束报价。
 
-   
-  请用单引号括起一个单词 
 di'hPl2x-   di'– 删除单引号括起来的单词。
-   hP– 将光标向左移动一个位置(在开头引号的顶部),并将刚删除的文本放在报价之前。
-   l– 将光标向右移动一个位置(在开头引号之上)。
-   2x– 删除两个引号。
 
-   
-  将单引号更改为双引号 
 va':s/\%V'\%V/"/g-   va'– 直观地select引用的单词和引号。
-   :s/– 开始更换。
-   \%V'\%V– 只匹配在视觉选定区域内的单引号。
-   /"/g– 全部用双引号replace。
 
-   
引用一个单词,用单引号
ciw'Ctrl+r"'
我这样做比较容易
 ciw '' Esc P 
除了其他命令之外,这将把所有单词用双引号括起来(按照你的评论)
 :s/\(\S\+\)/"\1"/ 
 或者如果你想减less反斜杠的数量,你可以在模式的开头放一个\v (非常魔法)修饰符 
 :s/\v(\S+)/"\1"/ 
这里有一些映射可以帮助:
 :nnoremap <Leader>q" ciw""<Esc>P :nnoremap <Leader>q' ciw''<Esc>P :nnoremap <Leader>qd daW"=substitute(@@,"'\\\|\"","","g")<CR>P 
 如果你还没有改变mapleadervariables,那么用\q" \q'或\qd激活映射,在光标下的单词周围加双引号,在光标下的单词周围单引号,删除周围的引号分别在光标下的字。 
 要包装在单引号(例如) ciw'<Cr>"'<esc>作品,但重复将无法正常工作。尝试: 
 ciw'<Cr><Co>"'<esc> 
 这将默认寄存器的内容“字面上”。 现在你可以按. 在任何单词包装在引号。 要了解更多信息,请参阅:h[elp] i_ctrl-r和更多关于文本对象的信息:h text-objects 
资料来源: http : //vimcasts.org/episodes/pasting-from-insert-mode/
 我不知道任何内置的Vim命令,但如果你站在第一个“或”上,使用r"f'r"从“改变”到r'f"r' ”和r'f"r'从“变为”工作。 命令r'用r'replace你的光标下的任何字符,并且f"将你移动到下一个“。 
添加行情
 我开始在我的.vimrc使用这个快速而脏的函数: 
 vnoremap q <esc>:call QuickWrap("'")<cr> vnoremap Q <esc>:call QuickWrap('"')<cr> function! QuickWrap(wrapper) let l:w = a:wrapper let l:inside_or_around = (&selection == 'exclusive') ? ('i') : ('a') normal `> execute "normal " . inside_or_around . escape(w, '\') normal `< execute "normal i" . escape(w, '\') normal `< endfunction 
 所以,现在,我可以通过引号select我想要的任何东西(通常通过viw – 直观地select内部单词 ),然后按Qinput双引号,或按qinput单引号。 
去除行情
 vnoremap s <esc>:call StripWrap()<cr> function! StripWrap() normal `>x`<x endfunction 
 我使用vim-textobj引号,以便vim将引号视为文本对象。 这意味着我可以做vaq (在视觉上select引号,find最接近的引号,并在视觉上select它们)(这是可选的,你可以做一些像f"vww )然后我按s从select中删除引号。 
改变行情
 吻。 我删除引号,然后添加引号 。 例如,要用双引号replace单引号,我将执行以下步骤:1.删除单引号: vaqs ,2.添加新引号: vwQ 。 
我在我的.vimrc中使用nnoremap
单引号:
 nnoremap sq :silent! normal mpea'<Esc>bi'<Esc>`pl 
删除引号(双引号也适用):
 nnoremap qs :silent! normal mpeld bhd `ph<CR> 
规则要记住:'sq'=单引号。
下面是一些简单的映射,可以用来引用和取消引用一个单词:
 " '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> 
macros的方式
- 
按shift + b将光标移动到当前单词的前面 
- 
按q和qlogging到q寄存器中(我们使用“q”作为记住“引号”的快捷键)。 
- 
按我键入' (单引号) 
- 
按esc键,然后按e移至词尾 
- 
按a,然后再按一下'用引号围住单词。 
- 
最后按q将其logging到 q寄存器中。
如何使用它 :
- 将光标移动到所需的单词。
- 按@ q围住带引号的单词。
- 如果你想重复成另一个字,请按@ @ 。
 你可以用你喜欢的任何东西{一行,一个字,直到find某个字符等等}来改变step 4 。 把它放入vim variables和.vimrc来重复你的幸福。 
这个怎么样?
  :%s/\'/"/g