我打算对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当您想使用具有重新映射含义的命令时使用。