Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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 script exec粘贴未匹配的文本_Vim - Fatal编程技术网

vim script exec粘贴未匹配的文本

vim script exec粘贴未匹配的文本,vim,Vim,老实说,这个头衔不好。考虑以下5条线: function Example() let @@ = "-_-" execute "normal! ]P" call cursor(line('.'), col('.')-1) endfunction 调用此函数时,我希望得到-\u-作为输出,光标应向左移动,这意味着它位于第三个字符处,因此如果我按一个键,例如I,我将得到-\ui- 现实中发生的事情是完全不同的(并且在某种程度上是有趣的) 第一次调用它的输出是-,之后是-

老实说,这个头衔不好。考虑以下5条线:

function Example()
    let @@ =  "-_-"
    execute  "normal! ]P"
    call cursor(line('.'), col('.')-1) 
endfunction
调用此函数时,我希望得到
-\u-
作为输出,光标应向左移动,这意味着它位于第三个字符处,因此如果我按一个键,例如I,我将得到
-\ui-

现实中发生的事情是完全不同的(并且在某种程度上是有趣的) 第一次调用它的输出是
-
,之后是
-

我假设“光标”移动光标下单词的位置。 基本上:为什么会这样?我怎样才能得到想要的效果

非常重要的编辑: 显然问题不在插件中。当我选择:

call Example()
它工作完美无瑕。问题是它应该是由一把钥匙触发的。我目前已将其绑定为:

inoremap ' <C-O>: call Example()<CR> 
inoremap”:调用示例()
所以现在我认为映射中的某些内容被破坏了…

  • 我无法再现你奇怪的行为。正如预期的那样,我在重复调用时得到了
    --------
    。我再次怀疑有插件在起作用。尝试使用
    vim-N-u NONE
    。由于这是一种浆糊,所以几乎没有什么可以影响这个功能。您可以尝试通过
    :noautocmd call Example()
    解决问题,但我更愿意尝试找到这种令人不安的奇怪现象的根本原因
  • “-”不是一个完整的行,因此
    ]P
    (使用调整的缩进粘贴)在这里无效。你也可以使用
    P
  • 要向左移动光标,请使用
    :normal!h
    。从
    列('.')
    的减法仅适用于单字节ASCII字符

感谢您的建议,我将尝试找出是哪个插件导致了这种情况。我会把这个再打开一点。说真的,我很感谢您的帮助,我不会在很长时间内发现插件可能会导致部分问题。在普通编辑过程中,您没有注意到任何异常情况吗?对于你描述的奇怪行为,很难相信这不会影响正常编辑(或者你没有注意到,因为你已经习惯了)。我可能已经习惯了。我决定在vim中构建一些小东西来更好地学习它,然后我开始注意到它。我认为我安装的软件包附带了一组导致这个问题的插件(我已经从前面的问题中找到了导致选择问题的插件)。我会调查一下,可能会删除插件。你用的是哪个Linux发行版?我从未见过如此大规模的开箱定制。我希望你不要使用像spf13或Janus这样的“分发”?!这些都是众所周知的所有不全面的东西。我已经更新了新的和有价值的信息的第一篇文章。另一方面,我运行的是ubuntu,包是vim GNOME,当你一次执行一个命令而不是从
Example()
执行命令时,你会得到什么?它是否发生在没有缩进的行上,因此
]P
P
相同?顺便说一句,您可以使用
:normal!]P
而不是
:执行“normal!]P
。是的,即使一次执行一个命令,我也会得到相同的效果。