2016-12-16 82 views
0

我想在vim中重寫'w',所以它會調用外部程序並過濾緩衝區而不是寫入文件。互聯網上有很好的例子說明如何做到這一點。我嘗試了一個vim.wikia.com,但vim總是抱怨E488: Trailing characters。這是我的vimrc命令:用cabbrev覆蓋內置命令

cabbrev w <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'W' : 'w')<CR> 

我對vim腳本不是很熟悉。我嘗試從線路末端刪除<CR>,但沒有運氣。

UPDATE

因爲我想定製化地運行VIM我與-u標誌運行它。我注意到,使用該標誌時,vim的行爲與使用該標誌相比有所不同

對於-u標誌,擴展縮寫是需要作爲代碼進行評估的內容。 enter image description here

如果沒有標誌,英文縮寫是什麼意圖是(這裏我輸入從vim的提示cabbrev規則) enter image description here

+0

我不能重現此錯誤的cabbrev語法。當我運行它,然後嘗試運行':w'時,它會被重新映射到'W',這會導致完全不相關的錯誤。你有沒有試過這個'.vimrc'?你究竟想要完成什麼? – DJMcMayhem

+0

試圖從vim本身輸入命令。我仍然得到'E488:尾隨字符'。 –

回答

0

關於-u標誌vim的手冊頁這樣說:

-u {vimrc}使用 初始化文件{vimrc}中的命令。所有其他初始化 都被跳過。用它來編輯一種特殊類型的文件。通過給出名稱「NONE」,它也可以用於跳過所有的 初始化。有關更多 的詳細信息,請參閱vim中的「:幫助初始化」。

顯然,當該標誌用於初始化從 VIM的/ etc /不執行的vimrc還有我發現這個選項:

set nocompatible 

vim的幫助下約兼容選項:

該選項的作用是使Vim更加兼容VI,或者使得Vim以更有用的方式運行。這是一種特殊的 選項,因爲當它被設置或重置時,其他選項也會變爲 作爲副作用。小心:設置或重置此選項可能會產生許多意想不到的效果:映射以另一種方式解釋, 撤消行爲有所不同,等等。如果您在vimrc 文件中設置了此選項,則應該首先將其置於開始位置。

...

的vimrc的gvimrc文件中找到,而Vim啓動, 這個選項關閉,而一直沒 修改的選項都設置爲Vim默認。實際上,這意味着 表示當文件存在時,Vim將使用默認值Vim ,否則將使用Vi的默認值。 (注意:這不是 發生在系統範圍的vimrc或gvimrc文件中,,也不是 和-u參數)的文件。

set nocompatible使得從問題的工作