Vim dosyası süper kullanıcı olarak yazılsın mı?


10

Bu benim başıma sıkça gelen bir kullanılabilirlik problemidir:

Vim ile salt okunur bir sistem dosyasını açıyorum, hatta düzenliyorum, çünkü yeterince dikkatli değilim veya sistemdeki vim kötü yapılandırılmış. Değişikliklerim tamamlandıktan sonra, bunları geçici bir dosyaya yazmak veya kaybetmek zorunda kaldım, çünkü: w! çalışmaz.

Geçerli arabelleği süper kullanıcı olarak yazmanıza izin veren bir vim komutu (: W !!!) var mı? (Vim doğal olarak sudo veya su şifrenizi soracaktır)



1
SO kesinlikle bir dupe, ancak iki SU sorusu sudoeditkomutla çözülen ayrı bir sorunu ele alıyor . Bu soru daha çok ilk etapta yazmayı unutmaya ve editöre başladıktan sonra yükseltmeye odaklanmıştır.
heavyd

Yanıtlar:


15
:w !sudo tee % >/dev/null`

Açıklama: ile !programları yürütebilirsiniz. : W ile ön ek ekleyerek, dosyanın içeriği (vim'de bulunanlar, orijinal dosya değil, daha kesin olarak: buffer) standart girdi komutuna verilir. %, dosya adıyla değiştirilir >/dev/nullve içeriğin tekrar ekrana yazdırılmasını önler (olağan davranışı budur tee).

Daha da kısa bir yol buldum. ddboş şeyi kaydedebilmeniz için stdout'a yazdırmaz.

:w !sudo dd of=%

​‍

Aynı, :rverilen komutun çıktısını ekleyen içindir, böylece örneğin geçerli tarihi kullanarak:r !date


Çok teşekkürler, hayatımı daha iyi hale getirdin! (Brian da)
zimbatm

Az önce ikinci bir yöntem ekledim.
Marian

Gerçekten temiz!
Anthony Giorgio

undofiles ile çalışmaz
Christian Brabandt

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.