VI中調用自定義函數(如Do_CsTag)後,屏幕字符消失/白屏

關鍵字:.vimrc, call Do_CsTag(),silent! execute "!ctags -R --c-types=+p" 

如果你在vimrc文件中某個函數裏(如Do_CsTag()函數)使用了:

silent execute

或者 silent! execute

則在vim中調用Do_CsTag()函數後,屏幕像被clear了一樣所有字符都消失了,打開的代碼也不見了。上下移動光標或許也刷出一些原來的代碼,退出再進vim則又正常了。

問題出在silent函數上,你可以嘗試去掉silent和silent!,則解決字符消失的問題。但新問題是每個excute命令後都要你按鍵確認,如果你的函數中調用了N次excute,這簡直讓人瘋掉。

還有一種用call system(' your commands ')來替代silent! execute " your commands "的方案,不過據說使用system命令會禁掉屏幕的scrapped(廢棄?)功能,因而不推薦採納。


推薦的解決辦法是在調用Do_CsTag()或你的函數後在vim 中執行:

: redraw!

消失的字符又回來了。

當然,更好的辦法是把這個命令插到出問題的那個函數體的最後一句的位置上:

execute "redraw!"

發佈了16 篇原創文章 · 獲贊 8 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章