2013-08-18 72 views
1

我有一個:cabbr雲:如何在函數中執行:cabbr?

:cabbr fil v/<c-r><c-w>/d 

,我希望在一個函數來執行它(光標已經正確定位)。

我該如何繼續?

預先感謝

+0

我不認爲一個命令行縮寫將在一個函數中工作。你可以在函數中使用'exec'v///d''或使用'expand('')'這是相同的'' – FDinoff

+3

爲什麼不只是在你的函數中執行':g /直接命令?它是獨立的'ab'設置,並使您的腳本更通用 – Kent

+0

@FDinoff:我曾嘗試過,但沒有奏效。更確切地說,我有,例如包含Foo的6行和包含Bar的4行;光標,在該功能的那個階段位於Bar上;因此v/Bar/d應該給我4行。但是,實際上,它刪除了所有的行,我不明白爲什麼。感謝您的幫助 – ThG

回答

2
​​

(在這種情況下^M被按壓<c-v><cr>。)

現在:call Foo()將輸出foo

編輯:正如人們在評論中指出的,feedkeys(':abc ^M')也可以用feedkeys(":abc\<cr>")來代替。

+0

@ThG對此答案的任何反饋? – mhinz

+1

對不起,我出去了很短的時間。我嘗試了你的答案,並稍微改變了它:1)我保持我的:cabbr,因爲它是和2)插入我的函數:調用飼料鍵(「:fil \ 」),它的工作。感謝您將我帶入解決方案。這就是我接受你的答案的原因。非常感謝你 – ThG

+0

很酷,很高興它現在正在工作。 :) – mhinz