To naprawdę frustrujące, gdy muszę edytować plik jako root i używać, sudo vim somefile.conf
a nie mogę używać żadnego z moich skrótów klawiszowych, ustawień i wtyczek.
Czy istnieje sposób, aby uzyskać wszystkie moje dostosowania, gdy muszę edytować jako root?
Używam wtyczki vim do swoich wtyczek.
vimrc
plugin-system
Robbie Wxyz
źródło
źródło
sudo vim file
lepiej napisać jakosudo -e file
(pod warunkiem, że ustawisz zmienną środowiskowąEDITOR=vim
).Odpowiedzi:
Zamiast otwierać vima jako root, możesz po prostu zapisać jako root, przekierowując na tee. Oto przykład:
Może to być przydatne do aliasu w twoim .vimrc, używam
:Sw
:źródło
I did a bunch of editing and then realized I should have used sudoedit
, ale w ogólnym przypadku sugerowałbym użyciesudo -e
/sudoedit
.Dwie rzeczy:
Użyj
$ sudo -e file
do edycji zafile
pomocą$EDITOR
. Dodaj,export EDITOR=/path/to/vim
jeśli$EDITOR
nie jest jeszcze ustawione.Wanilia to doskonały sposób na walkę z uzależnieniem od wtyczek.
źródło
sudo vim
. Edycja odbywa się tak, jak normalny użytkownik, a następnie sudo obsługuje aktualizację oryginalnego pliku.sudo
:-E
i-e
.-E
oznacza „środowisko preserver”, a to nie jest to, czego chcesz.-e
z kolei oznacza „nie uruchamiaj polecenia, ale edytuj plik za pomocą zdefiniowanej procedury”.Wygląda na to, że wszystko co musisz zrobić, to root dowiązania symbolicznego
~/.vimrc
i~/.vim/
do swojego.Po prostu uruchom jako root:
I to powinno wystarczyć!
(PS Właśnie to wymyśliłem i chciałem podzielić się z innymi noobami. Daj mi znać, jeśli jest lepszy sposób).
źródło
Jeśli wiesz z wyprzedzeniem, że musisz edytować plik jako root, korzystając z poleceń
sudoedit <file>
lubsudo -e <file>
otrzymasz konfigurację w specjalnym środowisku do robienia tego ze zwykłymi preferencjami edytora. Kopia pliku jest tworzona, a edytor jest uruchamiany w celu edycji (jako użytkownik). Po wyjściu plik jest kopiowany z powrotem do oryginalnej lokalizacji jako root.Jest to najbezpieczniejszy i zalecany sposób, ale w przypadku, gdy a) nie zdasz sobie sprawy z góry, musisz napisać jako root lub b) chcesz edytować i zapisywać przyrostowe zmiany w miejscu, będziesz potrzebować czegoś innego. W tym celu za pomocą rozwiązania
sudo tee
proponowane przez smpl jest zdecydowanie na dobrej drodze, ale istnieje kilka drobnych ulepszeń, które można wprowadzić w celu obsługi przypadków na krawędziach. Warto zwrócić uwagę na różnicę w obsłudze pytania o hasło sudo w interfejsie GUI vs. interfejsy konsoli.Łatwiejszym sposobem skonfigurowania tego jest użycie wtyczki vim-eunuch . Ma ten konkretny problem i kilka innych przydatnych rzeczy zwiniętych w poręczny pakiet. Użycie jest tak proste, jak dzwonienie
:SudoWrite
. Używam nawet nieco wygodniejszego mapowania dostępu:To powinno dać ci możliwość napisania dowolnego pliku jako root
:w!!
.źródło
Inną opcją jest uruchomienie
sudo -E vim somefile.conf
edycji, co pozwoli zachować środowisko, dlatego.vimrc
zostaną użyte twoje i wtyczki.źródło