[英]Options for .vimrc from command-line arguments?
我有一個自定義.vimrc文件,我在許多不同的機器上使用它。
有些機器的功能不如其他機器,能夠加載.vimrc文件的“精簡”版本會很好。 但是,我想維護一個.vimrc以避免碎片。
理想情況下,我想從命令行向我的.vimrc傳遞參數。 如果選擇“minimal”選項,.vimrc將跳過加載資源最密集的插件。
有誰知道最好/最干凈的方法嗎?
謝謝!
編輯:我所說的較慢的機器是通過SSH的Raspberry Pi。 Vim本身並不慢,雖然我有幾個插件,包括NERDTree和Syntastic,需要花費大量時間來加載Pi的有限CPU。 通過取出我的“最小”配置的大多數插件,我將加載時間從3.5秒減少到0.5秒。
您可以使用--cmd
開關在加載任何VIMRC之前執行命令。
所以在你不那么強大的機器上,你可以將vim
別名為vim --cmd 'let weak=1'
,然后在$VIMRC
你可以說:
if exists('weak')
echo "poor machine"
endif
看看來源:
source /foo/bar/another_vimrc
你的'重'vimrc可以只提供基本的vimrc並添加你想要的東西。 對於項目/機器特定的縮寫,ctags等,這也非常方便。
這不會保留單個vimrc文件,但為了具有相同問題的其他人(如頁面頂部所述):
$ vim -u ~/.vim-min.vim
請注意,這將禁止加載系統vimrc文件(如果有)和您的個人vimrc文件。
:help -u
:help startup
(參見第二篇參考文獻的第3步。)
從上面的優秀答案,我得到了這個工作:
〜/ .vimrc:
if exists('FLAG') " 'FLAG' passed from ~/.bashrc 'vimm' alias
set textwidth=150 " (launches vim in expanded terminal window)
set lines=58
else
set textwidth=79
set lines=40
endif
〜/ .bashrc:
# Needed to combine following two lines for ~/.vimrc use:
# alias vimm='konsole --geometry 1900x1040+0+0 -e "bash -c \"vim\""; exit'
# vim --cmd 'let FLAG=1'
str="'let FLAG=1'"
alias vimm='konsole --geometry 1900x1040+0+0 -e "bash -c \"vim --cmd $str\""; exit'
現在,'vim'(正常使用)在正常大小的終端中啟動Vim,而'vimm'在更大的終端中啟動Vim(備用設置)。
'Konsole'是我在Arch Linux中使用的終端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.