如果行不为空,则VIM Tab然后转到行

时间:2012-08-08 22:58:35

标签: function vim if-statement mutt

我现在已经尝试了大约一个小时,我似乎根本无法让它工作!哈哈

这就是我所拥有的:

function! Tabber()
let l2=getline(".")
if l2[:2] == 'To:'
    if len(l2) > 4
        exe "silent! normal 5Gi"
    else
        exe "silent! normal 2Gi"
    endif
endif
startinsert
endfunction

基本上当我在VIM中写一封电子邮件用于mutt时,我希望能够在写完To:地址时点击Tab键,并且我希望它能够决定我所在的行是否具有To:on it ,如果它超过4个字符意味着我输入了一个地址,如果不是那么就留在那里。如果主题行有超过4个转到第5行。

一旦完成,我想要复制那个如果是主题行,以确保我是否在主题行转到第9行写电子邮件。所以我可以选择哈哈。

对于我的生活,这是行不通的。当然我还没有将它连接到标签,我只是<Esc>然后:

:call Tabber()

但这应该有效。 :S

谢谢! :)

1 个答案:

答案 0 :(得分:1)

你的功能对我有用,所以我不确定为什么你在没有更多信息的情况下遇到麻烦。我确实修改了它以符合您的规格:

function! Tabber()
   let line=getline(".")
   if line[:2] == 'To:'
      if len(line) > 4 | 5 | endif
   elseif line[:7] == 'Subject:'
      if len(line) > 9 | 9 | endif
   endif
   startinsert!
endfunction
inoremap <Tab> <Esc>:call Tabber()<cr>