Bitte stimmen Sie mich dafür nicht ab. Ich empfehle nicht, diese Antwort zu implementieren, aber es ist die Antwort, nach der der rkthkr fragt.
rkthkr sagte:
Aber es wäre schön, wenn vim neu gestartet und als root ausgeführt würde
Der Weg dies zu tun ist mit :!sudo vim %
Wie ich zu ipozgaj erwähnte, wird ein% als Argument (sogar ein Unterargument) durch den Pfad zum aktuellen Puffer ersetzt. (Möglicherweise werden Sie zur Eingabe Ihres Kennworts aufgefordert.) Sie erhalten einen neuen vim-Prozess, dessen Eigentümer root ist und der ein untergeordneter Prozess des ursprünglichen vim-Prozesses ist. Klingt doof, oder? So sieht es in ps aus:
~# ps afo pid,ppid,user,stat,comm
PID PPID USER STAT COMMAND
16187 30478 rbronosky Ss bash
16510 16187 rbronosky R+ \_ ps
30482 30478 rbronosky Ss bash
16244 30482 rbronosky S+ \_ vim
16318 16244 root S+ \_ vim
Wenn Sie über Schreibberechtigungen für das Verzeichnis verfügen, in dem sich die Datei befindet, und Sie Änderungen daran vorgenommen haben, werden Sie möglicherweise gewarnt, dass eine Auslagerungsdatei beendet wird. Wenn Sie sich für [R] ecover entscheiden, werden die meisten * Änderungen berücksichtigt, die vom übergeordneten vim-Prozess vorgenommen wurden. (* Ich denke, dass das Swap-Update zeitlich festgelegt ist oder einen Delta-Schwellenwert hat. Ich habe bereits zu viel Zeit darauf verwendet und bin nicht darum bemüht, dies zu untersuchen.) Wenn Sie vim beenden, seien Sie nicht beunruhigt, wenn Sie es sind noch in vim ... du hast einen 2. vim-prozess eröffnet. Merken?
Nun, wenn das alles gesagt ist ... würde ich das so gut wie nie tun. Vielleicht, wenn ich nicht genug oder viel zu viel Kaffee getrunken habe und festgestellt habe, dass ich als Root mehrere weitere Dateien bearbeiten muss ... könnte ich das versuchen. In 14 Jahren, in denen ich Systeme verwaltet habe, habe ich das nie getan. Aber bis Sie mit meiner bevorzugten Lösung (die genau so ist, wie sie von dbr angeboten wird) unzufrieden waren, hatte ich noch nie darüber nachgedacht.