vim script exec粘贴未匹配的文本
老实说,这个头衔不好。考虑以下5条线:vim script exec粘贴未匹配的文本,vim,Vim,老实说,这个头衔不好。考虑以下5条线: function Example() let @@ = "-_-" execute "normal! ]P" call cursor(line('.'), col('.')-1) endfunction 调用此函数时,我希望得到-\u-作为输出,光标应向左移动,这意味着它位于第三个字符处,因此如果我按一个键,例如I,我将得到-\ui- 现实中发生的事情是完全不同的(并且在某种程度上是有趣的) 第一次调用它的输出是-,之后是-
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字符列('.')
Example()
执行命令时,你会得到什么?它是否发生在没有缩进的行上,因此]P
与P
相同?顺便说一句,您可以使用:normal!]P
而不是:执行“normal!]P
。是的,即使一次执行一个命令,我也会得到相同的效果。