2012-09-10 55 views

回答

6

您可以使用縮寫,這是專門爲此設計的。

:abbr spb sprintf(buff,"%s", __func__); 
:abbr uart putrsUART(buff); 

使用:help abbr爲血淋淋的細節。請注意,您需要在vim的縮寫形式之後鍵入另一個字符才能識別它們。這是自然而然的,因爲您將輸入ENTER作爲下一個字符。也可以使用縮寫輸入多行。只需使用<CR>您想要換行的地方。

+0

+1這絕對是一個更適合縮寫的任務。 –

0

嘗試使用snip-Mate插入常用的密碼小數點。 http://www.vim.org/scripts/script.php?script_id=2540


錯誤答案,對不起:

試試這個在你的vimrc:

map <c-w> :sprintf(buff,"%s",func)<cr> 

這意味着映射CTRL-W。

+0

謝謝,我在我的〜/ .vimrc文件中添加了上面的行。並開始一個新的終端會話。我打開一個文件tmp.c並按下Ctrl-W鍵,它顯示我下面的錯誤代碼。 「E492:不是編輯命令:sprintf(buff,」%s「,__func__)」。 – beparas

+0

對不起,我誤解了你的問題。我更新了我的答案。 – Christian

2

下面是普通模式,讓你打\sp一個簡單的映射(除非你重新映射的領導者,在這種情況下,用它來代替\),以便插入sprintf的聲明。

map <Leader>sp isprintf(buff,"%s", __func__);<Esc> 

話雖這麼說,我覺得縮寫是去這裏的路

1

如前所述,縮寫(我將限制插入模式(:iabbr),因爲你可能不會需要他們在命令行中)最適合簡單的擴展;您也可以僅爲某些文件類型定義它們(通過:iabbr <buffer> ...)。

您的__func__看起來像一個模板參數,您需要每次調整。你不能通過縮寫來做到這一點,但是有各種各樣的插件(許多靈感來自於TextMate編輯器的功能),它們提供帶有參數擴展和幾個高級功能的模板插入。退房之一snipMate,xptemplateUltiSnips