我的Ruby摺疊表達式導致自動完成(<C-n>
/<C-p>
)顯着減慢,這是一個巨大的痛苦。當我切換到手動摺疊時,自動完成變爲即時。Vim:如何用一個使用舊命令的新命令覆蓋命令?
要解決這個問題,我希望摺疊是「按需」,即它只在我做zx
或zX
時計算摺疊。該計劃:
- 集Ruby代碼默認摺疊方法
manual
- 當打開一個Ruby文件,本地地圖
zx
切換摺疊方法expr
和運行zx
,然後切換摺疊方法回到manual
- 重複#2
zX
的問題是,當我重寫zx
,我怎麼叫「老」 zx
?
完美的答案肯特,這是我最後的工作液(ftplugin/ruby.vim
):
if &filetype == 'ruby'
setlocal foldmethod=manual
nn <buffer> <silent> zx :set foldmethod=expr<CR>:norm! zx<CR>:set foldmethod=manual<CR>
nn <buffer> <silent> zX :set foldmethod=expr<CR>:norm! zX<CR>:set foldmethod=manual<CR>
end
我不知道我理解你的權利......但你可以調用':norm! zx'來繞過你的映射。 – Kent
我想到的一個方法是使用':norm! zx'。但我會等待,因爲別人可能會有更有趣的解決方案。無論如何,考慮到如果你走這條路線,當你輸入你的ruby緩衝區時,你可以使用自動命令來創建地圖,所以其他人將使用「原始」的「zx」。另外,您是否正在掃描包含的文件?這通常會導致一些緩慢 – sidyll
對不起@Kent我想我寫在同一時間 – sidyll