我打算对surround
我的视觉选择,与sublime和其他编辑器一样。
由于我已经surround
安装了插件,因此确实用和 类似地viwS"
围绕选定的单词等"
'
因此以下是我的尝试:
vnoremap ' S'
vnoremap " S"
vnoremap [ S[
vnoremap { S{
vnoremap ( S(
但神秘的是它会删除整行并quote
在我尝试使用它们时插入。
我哪里错了?如何纠正它?
我打算对surround
我的视觉选择,与sublime和其他编辑器一样。
由于我已经surround
安装了插件,因此确实用和 类似地viwS"
围绕选定的单词等"
'
因此以下是我的尝试:
vnoremap ' S'
vnoremap " S"
vnoremap [ S[
vnoremap { S{
vnoremap ( S(
但神秘的是它会删除整行并quote
在我尝试使用它们时插入。
我哪里错了?如何纠正它?
您使用*noremap
错误:
当你使用时*noremap
,你要求 Vim使用S
.
使用时*map
,您要求 Vim 使用.的当前含义S
。
vnoremap
如果您的映射执行的命令应该是本机命令,但您使用的命令已经由插件重新映射,则可以。你应该使用*map
, 代替。
此外,vmap
涵盖视觉和选择模式:您可能应该在映射中更加精确。
所以……</p>
xmap ' S'
xmap " S"
xmap [ S[
xmap { S{
xmap ( S(
(编辑)
你的问题<C-c>
正好相反:你正在使用vmap
,所以你告诉 Vim 使用当前所做的任何事情"
。因为……</p>
"
到做S"
,"
的 RHS 中使用,<C-c>
vmap
它……</li>
按<C-c>
这S"+ygv
不是你想要的。上面的规则很简单:遵循它们,一切都会好起来的。他们又来了,措辞略有不同:
*noremap
当您想使用具有默认含义的命令时使用。
*map
当您想使用具有重新映射含义的命令时使用。