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.