Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:环绕插件到环绕视觉选择的自定义映射?_Vim_Vim Plugin_Dotfiles - Fatal编程技术网

Vim:环绕插件到环绕视觉选择的自定义映射?

Vim:环绕插件到环绕视觉选择的自定义映射?,vim,vim-plugin,dotfiles,Vim,Vim Plugin,Dotfiles,我打算环绕我的视觉选择,与崇高和其他编辑器一样 由于我已经安装了surround插件,因此viwS“确实使用“和类似的”来包围所选单词,等等 因此,以下是我的尝试: vnoremap ' S' vnoremap " S" vnoremap [ S[ vnoremap { S{ vnoremap ( S( 但奇怪的是,当我尝试使用它们时,它会删除整行并插入引号 我哪里做错了?如何更正?您使用的*noremap错误: 使用*noremap时,要求Vim使用S的原始含义 使用*map时,要求Vim使

我打算
环绕
我的视觉选择,与崇高和其他编辑器一样

由于我已经安装了
surround
插件,因此
viwS“
确实使用
和类似的
来包围所选单词,等等

因此,以下是我的尝试:

vnoremap ' S'
vnoremap " S"
vnoremap [ S[
vnoremap { S{
vnoremap ( S(
但奇怪的是,当我尝试使用它们时,它会删除整行并插入
引号


我哪里做错了?如何更正?

您使用的
*noremap
错误:

使用
*noremap
时,要求Vim使用
S
的原始含义

使用
*map
时,要求Vim使用
S
的当前含义

vnoremap
如果映射执行的命令被认为是本机命令,但您使用的是已由插件重新映射的命令,则可以。您应该使用
*map

此外,
vmap
涵盖了视觉和选择模式:您可能应该更精确地映射

所以

(编辑)

您的
问题恰恰相反:您使用的是
vmap
,因此您告诉Vim使用任何
当前使用的。因为

  • 您已将
    映射到要执行的
    S”
  • 映射的RHS中使用
  • 你可以使用
    vmap
  • 可执行
    S“+ygv
    ,但这不是您想要的。上面的规则很简单:遵循它们,一切都会好的。它们再次出现,措辞略有不同:

    • 如果要使用具有默认含义的命令,请使用
      *noremap

    • 如果要使用具有重新映射含义的命令,请使用
      *map


    S
    将清除整行并进入插入模式,但当我使用
    viwS“
    时,它会工作。我如何修复它?1问题,现在某个家庭
    正在视觉模式下触发
    S”
    。发生了什么?它没有,这里。可能是一个错误的映射?这是我的
    映射
    vmap”+ygv
    是的,如果你注意我写的内容,问题是显而易见的。请看我的编辑。你是对的。我把一些事情弄糊涂了。原因很明显——可能是我需要一些睡眠。谢谢你,伙计!
    xmap ' S'
    xmap " S"
    xmap [ S[
    xmap { S{
    xmap ( S(