Vim'i kullanıcı olarak kök ayrıcalıklarıyla başlat


10

Özel Vim dosyalarım ~/.vimve ayarlarım var ~/.vimrc. Ancak, bazen içinde /etcve benzeri bazı dosyaları düzenlemek zorundayım .
Vim'i böyle başlatırsam:

$ sudo vim /etc/rc.conf

Vim varsayılanını kullandığından yapılandırmamı kaybediyorum. Peki: Vim'i kullanıcı ayarlarımı (ana dizinimde bulunan) kaybetmeden dosyaları düzenlemek için kök ayrıcalıklarıyla nasıl çalıştırabilirim?
Denedim:

$ su username -c "vim /usr/lib/python2.7/setuptools/dist.py"

ama Bash bana veriyor Permission denied. Ancak, yukarıdaki komut örneğin: için çalışır /etc/acpi/handler.sh. Neden?

Not: kullanıcı adı kök değildir.

Yanıtlar:


15

Yerine sudo vim /etc/rc.confkullanımı sudoedit /etc/rc.confveya sudo -e /etc/rc.conf. EDITOR ortam değişkenini vim olarak ayarlamanız gerekebilir. Bu, vim'in kendisini, normal yapılandırmanızı kullanarak, çıktığınızda geri kopyalayacağı dosyanın bir kopyasında normal kullanıcı olarak çalıştıracaktır.


Güzel çözüm! Bunu da kontrol edeceğim.
rubik

Denedim sudoedit /etc/rc.confve sudo -e /etc/rc.confvim açar, ancak ~ / .vimrc yüklenmiyor. Neyi yanlış yapıyorum?
aparat

@apparat export EDITOR=vimÖnce deneyin - vivim olsa bile vimrc yüklüyor mu bilmiyorum çalıştırmak çalışıyor olabilir .
Random832

Bence bu en iyi cevap. İkinize de teşekkürler.
rubik

@ Random832 export EDITOR=vimçalıştı. Vi'nin sistemime yüklenmediğini ve sadece vim için bir sembolik olduğunu düşündüm. Teşekkürler
Apparat

6

-uVim'e hangi rc dosyasının yükleneceğini söylemek için kullanabilirsiniz . Örneğin

sudo vim -u ~user/.vimrc /etc/rc.conf

her yazmanız gerektiğinde sıkıcı olduğunu yazıyorsanız, bir takma ad yapın:

alias sudovim='sudo vim -u ~user/.vimrc'

vim -uEklentilerin veya rc dosyalarının $ HOME'a göre başka dosyalar yüklerse başarısız olmasına neden olabileceğini unutmayın . $ HOME artık kullanıcının değil root'un ana dizinidir. Bu, örneğin kökün ana dizinindeki sembolik bağlantılar veya sabit kodlama mutlak yolları ile çözülebilir.


Bu harika, teşekkürler. Böyle çözüldü: alias svim="HOME=/home/user && sudo vim -u $HOME/.vimrc".
rubik

1

sudo vim -S /home/user/.vimrc /etc/rc.conf

Bu şuna eşittir:

sudo vim /etc/rc.conf + :source /home/user/.vimrc

ve takma ad da olabilir:

alias svim='sudo vim -S /home/user/.vimrc'

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.