0

我打算对surround我的视觉选择,与sublime和其他编辑器一样。

由于我已经surround安装了插件,因此确实用和 类似地viwS"围绕选定的单词等"'

因此以下是我的尝试:

vnoremap ' S'
vnoremap " S"
vnoremap [ S[
vnoremap { S{
vnoremap ( S(

但神秘的是它会删除整行并quote在我尝试使用它们时插入。

我哪里错了?如何纠正它?

4

1 回答 1

1

您使用*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>

  1. 你已经映射"到做S"
  2. 您在映射"的 RHS 中使用,<C-c>
  3. 你用vmap它……</li>

<C-c>S"+ygv不是你想要的。上面的规则很简单:遵循它们,一切都会好起来的。他们又来了,措辞略有不同:

  • *noremap当您想使用具有默认含义的命令时使用。

  • *map当您想使用具有重新映射含义的命令时使用。

于 2013-12-15T16:19:57.923 回答