2012-08-08 22 views
0

我一直在嘗試這個現在約一個小時,我似乎無法得到它的工作!哈哈VIM標籤,然後轉到線,如果線不爲空

這是我有:

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的狗我希望能夠打Tab鍵寫完了要當:地址和我想讓它決定我所在的路線是否有:在它上面,如果它超過4個字符的意思是我有一個地址輸入,如果不是,那就留在那裏。如果有超過4個goto line 5是主題行。

一旦完成那裏我想複製該如果爲主題行,以確保如果我在主題行轉到第9行寫郵件。所以我可以把我的方式降低哈哈。

對於我的生活它不會工作。當然,我不把它連接到標籤呢,我只是<Esc>荷蘭國際集團出來,然後:

:call Tabber() 

但是,這應該工作。 :S

謝謝! :)

+0

可能重複[VIM檢查,如果第二行是TO和空(http://stackoverflow.com/questions/11871748/vim-check-if-second -line-to-and-empty) – Conner 2012-08-08 23:19:48

+0

實際上不是,這就是它的起源,功能工作很棒,而且在我的VimRC中還有其他地方。這是一個全新的功能,我試圖去爲另一個使用而工作,但是因爲我從中獲得了我的代碼,所以與這個原創相關。 – jfreak53 2012-08-08 23:23:05

+0

有什麼不適用於它? – Conner 2012-08-08 23:26:58

回答

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> 
+0

現在工作!什麼讓我不工作?!唯一不起作用的是插入模式下的,我想我可以使用另一個組合鍵。 – jfreak53 2012-08-08 23:34:48

+0

在插入模式下最好使用''鍵。見':help '。 – Conner 2012-08-08 23:37:20

+0

您可能會檢查':imap '來查看是否有其他東西映射到它。就我而言,snipMate插件正在佔領它。 – Conner 2012-08-08 23:45:24

相關問題