C'est vraiment frustrant quand j'ai besoin de modifier un fichier en tant que root et d'utiliser sudo vim somefile.conf
et que je ne peux utiliser aucun de mes raccourcis clavier, paramètres et plugins.
Existe-t-il un moyen d'obtenir toutes mes personnalisations lorsque je dois modifier en tant que root?
J'utilise vim-plug pour mes plugins.
vimrc
plugin-system
Robbie Wxyz
la source
la source
sudo vim file
est mieux écrit commesudo -e file
(à condition que vous définissiez la variable d'environnementEDITOR=vim
).Réponses:
Plutôt que d'ouvrir vim en tant que root, vous pouvez simplement enregistrer en tant que root en redirigeant vers tee. Voici un exemple:
Cela peut être utile comme alias dans votre .vimrc, j'utilise
:Sw
:la source
I did a bunch of editing and then realized I should have used sudoedit
, mais pour le cas général, je suggère d'utilisersudo -e
/sudoedit
.Deux choses:
Utilisez
$ sudo -e file
pour éditerfile
avec$EDITOR
. Ajouterexport EDITOR=/path/to/vim
si$EDITOR
n'est pas déjà défini.Going vanilla est un excellent moyen de lutter contre la dépendance à vos plugins.
la source
sudo vim
fait. L'édition se produit en tant qu'utilisateur normal, puis sudo gère la mise à jour du fichier d'origine.sudo
:-E
et-e
.-E
signifie "environnement de préservation", et ce n'est pas celui que vous souhaitez.-e
, à son tour, signifie "ne pas exécuter une commande, mais éditer un fichier avec une procédure définie".Il semble que tout ce que vous avez à faire est de créer un lien symbolique entre la racine
~/.vimrc
et la~/.vim/
vôtre.Exécutez simplement en tant que root:
Et ça devrait le faire!
(PS, j'ai compris cela tout à l'heure et je voulais partager avec d'autres noobs. S'il vous plaît laissez-moi savoir s'il y a une meilleure façon.)
la source
Si vous savez à l'avance que vous devez modifier un fichier en tant que root, utilisez les commandes
sudoedit <file>
ousudo -e <file>
vous obtiendrez une configuration dans un environnement spécial pour le faire avec vos préférences d'édition habituelles. Une copie du fichier est faite et votre éditeur est lancé pour le modifier (en tant qu'utilisateur). Lorsque vous quittez, le fichier est recopié à son emplacement d'origine en tant que root.C'est la manière la plus sûre et recommandée, mais dans le cas où a) vous ne vous rendez pas compte à l'avance, vous devrez écrire en tant que root ou b) vouloir éditer et enregistrer les modifications incrémentielles en place, vous aurez besoin d'autre chose. À cette fin, la solution
sudo tee
proposée par smpl est définitivement sur la bonne voie, mais il existe quelques améliorations mineures qui peuvent être apportées pour gérer les cas de bord. Notamment, la différence dans la gestion de l'invite de mot de passe sudo dans une interface graphique par rapport aux interfaces de console mérite une certaine attention.Un moyen plus simple de configurer cela est d'utiliser le plugin vim-eunuch . Il a ce problème particulier et quelques autres choses pratiques regroupées dans un package pratique. L'utilisation est aussi simple que d'appeler
:SudoWrite
. J'utilise même un mappage d'accès légèrement plus pratique:Cela devrait vous permettre d'écrire un fichier en tant que root en utilisant
:w!!
.la source
Une autre option consiste à exécuter
sudo -E vim somefile.conf
pour modifier, ce qui préservera votre environnement, donc vos.vimrc
plugins et seront utilisés.la source