簡體   English   中英

從命令行參數中選擇.vimrc?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM