vimscrimpt中的转义命令

时间:2012-11-10 09:15:20

标签: command vim

有人可以帮助我如何在vimscript中放置<esc>命令,以便从插入视觉模式(选择模式)切换到可视模式吗?

这是我的剧本:

  if a:type == "'<,'>" 
    normal! "\<esc>\<esc>"
    normal gvy
    let myvariable= @+
  endif

解释
我选择了一段文字。 (我现在在插入视觉模式(=选择模式))
我必须在可视模式中选择相同的文字 如果没有vimscript,我只需要在正常模式下按<esc>命令和命令gv两次,再次重新选择选择,这次我处于可视模式。 / p>

我尝试将<esc>命令放在上面的脚本中,但它不起作用。

2 个答案:

答案 0 :(得分:3)

调用:normal的语法完全错误。

normal! "\<Esc>\<Esc>"

将在正常模式下执行14个字符,它们都不是转义字符:normal不接受表达式。你必须使用

execute "normal! \e\e"

\<Esc>也可以,但\e输入速度更快。我认为没有理由在这里有两个正常的命令,所以

execute "normal! \e\egvy"

。但是我仍然想知道你做了什么来调用这个脚本?如果没有这些信息,上述内容可能会被证明是完全没用的。

PS:我完全同意@romainl使用简易模式,而且在简易模式下使用鼠标是完全错误的使用vim的方法。

答案 1 :(得分:2)

你首先在插入视觉模式中做什么?您是否在“简单”模式下使用GVim并使用鼠标?有更好的方式......

无论如何,您可以使用<Esc><Esc>代替<C-g>选择模式转到视觉模式。

如果没有更多关于目标的背景信息,我无法确定,但我认为您正在做一些不必要的复杂事情。