Varsayılanım yerine kullanmak vim -u filenameiçin kullanabilirim . (Kullanıcı bağlamları geçiş yaparken ben bu yöntemi kullanıyorum ) kullanmak için benim bile süper kullanıcı olarak çalışan gerçi.filename.vimrcsu .vimrc
Nasıl aynı elde edebilirsiniz da varsayılan olarak klasör için ~/.vimben Vim işaret böylece komut satırından alternatif bir klasöre?
Neyi başarmak istiyorum
Tamam, user joe( HOME=/home/joe) ve user root( HOME=/root) öğelerini varsayalım . Kullanıcının buna benzeyen joebir takma adı kümesi vardır vim(ancak başlangıçta $HOMEbu dinamiği oluşturmak için değişken kullanılarak ayarlanır ):
alias vim='vim -p -N -n -i NONE -u "/home/joe/.vimrc"'
Sonra kullanıcı joesatırları boyunca sudo su -(ama büyü ile) bir şey yapar , .bashrcve /home/joeyüklenecek diğer güzellikler ile sonuçlanır root. Kullanıcı root, vimyukarıda gösterildiği gibi artık tam olarak aynı takma ada sahip .
Sorun, bunun .vimrcçeşitli sistemlerde ve çeşitli senaryolarda kullanılmasıdır. Genellikle Joe'nun hesabı çağrılır joe, ancak bazen bunun gibi local.joeveya başka bir şey olabilir ve bunun için farklı bir değer elde edilir $HOME. Bu nedenle, ~/.vimklasöre giden mutlak bir yolu kodlamak iyi bir fikir gibi görünmüyor. Bununla birlikte, yukarıdaki senaryomuzda kullanıcının varsayılan olarak loaded ( ) yoluyla var olması beklenen rootbir klasörü /root/.vimyoktur ..vimrc/home/joe/.vimrc
Başlamak istediğim - tercihen komut satırında - Vim'in aşağıdaki gibi /home/joe/.vimbaşlatıldığında alttan eklentileri vs kullanmasını sağlamaktır root( aliasgösterildiği gibi ayarlandığı varsayılırsa - diğer durumlar göz ardı edilebilir). VimScript üzerinden dinamik bir yöntem varsa, lütfen işaretçiler sağlayın. Ama $HOMEbence değişkenlerin 22 yakalanmasına yol açacağını düşünüyorum.
ln. 'mv ~ / .vim ~ / .vim-whatever && ln -s ~ / .vim-whatever ~ / .vim` sonra aynısını yapın.vimrc. Kolayca bir şekilde veya diğerine geçebilmeniz için tüm bunları bazı bash takma adları ile sarın