将vim光标移动到函数后面

3

我同时使用supertab和snipmate插件。假设我正在使用snipmate创建if语句结构。一旦我在if语句内添加完语句,如何快速将光标移动到if语句后面呢?例如:

if [ $a = "b" ]; then
  bla;
fi

如果我的光标位于分号上且我处于插入模式,那么我需要采取最少的操作来将光标移动到“fi”下一行。如果我按Tab键,Supertab会打开一个自动完成窗口。
谢谢。

如果您的代码像那样在一行上,<ctrl-o>A 就可以了,如果您在文件末尾,则使用 <ctrl-o>G;但由于这些不是名词性情况,我不会将其留作答案。 - Randy Morris
我的错误。实际上,代码跨越多行。 - user14437
4个回答

4
如果您正在使用snipMate,我建议修改适用于您文件类型的代码段。例如,您提供的示例看起来像是一个shell脚本代码段。在这种情况下,我会修改YOUR-VIM-CONFIGURATION-FOLDER/snippets/sh.snippets,使用以下定义(在代码段末尾添加一个额外的TAB变量):
snippet if
  if [ ${1:condition} ]; then
    ${2:#statements}
  fi
  ${3}

snipMate将允许您使用TAB和SHIFT-TAB键在if块的条件、语句和结束之间来回移动。


2

我不确定插件(我不使用它们,但在常规的vim中):

<Esc>
/fi$
o

大部分时间,$符号可能是多余的。


1

只需按下C-o o


0

我会按下 Esc o 来开始在下一行插入模式。但也许你可以重新配置 snipmate,以便你可以按下其他键而不是 tab 来完成片段?

如果你还没有映射它,down 箭头键也应该将光标移动到下一行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接