Je dois éditer des fichiers placés sur un serveur auquel je pourrais accéder via ssh.
Je préférerais éditer ces fichiers de manière personnalisée vim
sur mon poste de travail (je n’ai pas le droit de modifier les vim
paramètres sur le serveur distant). Parfois, j'aimerais éditer un fichier avec sublime text
un autre éditeur graphique.
Bien sûr, je peux télécharger ces fichiers, les éditer localement et les réimporter sur le serveur. Y a-t-il une solution plus élégante?
deb
basées et qui ne l'ont donc pasapt-get
. (Dans ce cas,yum
ouzypper
pourraient être présents.) Ils ont également besoin de root sur la machine locale, qui peut être disponible ou non. (Cela ne veut pas dire que c'est une mauvaise solution, mais elle est accompagnée d'un préalable important.)osxfuse
etsshfs
. Ceux-ci peuvent être installés avec homebrew (brew install sshfs
etbrew cask install osxfuse
, ou à partir de paquets obtenus à partir de osxfuse.github.ioVous pouvez le faire via
scp
comme ceci:Notez les deux barres obliques
//
entre serveur et chemin, nécessaires pour résoudre correctement le chemin absolu. (La première barre oblique est syntaxique, tandis que la deuxième barre spécifie le répertoire racine de l'utilisateur distant, comme d'habitude. Pour commencer au répertoire de base, vous le feriez[:port]/~/path/to/file.txt
.)[:port]
Est facultatif.Ceci est géré par le plugin standard netrw.vim de vim . Plusieurs autres protocoles sont pris en charge.
la source
E382: Cannot write, 'buftype' option is set
:set buftype=""
dans vim.~/.ssh/config
et résoudra les hôtes distants avecvim scp://[host]/path
.:e scp://...
En fonction de ce que vous voulez dire lorsque vous dites que vous ne possédez pas les droits pour modifier les paramètres de Vim, il peut y avoir un moyen d'utiliser Vim sur le serveur comme vous le souhaitez. Si vous ne pouvez pas changer d'utilisateur
.vimrc
(parce que vous vous connectez en tant qu'utilisateur partagé, par exemple) mais que vous pouvez toujours créer des fichiers, créez-le en tant que fichier appelé,Loom.vimrc
puis appelez Vim à l'aide du-u
commutateur:vim -u ~/Loom.vimrc file_to_edit
Vous pouvez même ensuite utiliser un alias:
alias vim='vim -u ~/Loom.vimrc'
vous permettra d'utiliser Vim de la manière habituelle et chargera votre.vimrc
fichier personnalisé . Cet alias ne persistera pas après votre déconnexion, vous n'avez donc pas à craindre que quiconque utilise accidentellement votre Vim personnalisé.la source
En fonction du nombre de fichiers et du type de fichiers que vous comptez éditer, il ne s'agit peut-être pas exactement de ce que vous souhaitez faire ici, mais je pense que cela mérite d'être mentionné. Si vous devez modifier des fichiers sur un serveur distant, mais souhaitez utiliser tout ce que vous avez sur votre propre poste de travail, vous voudrez peut-être commencer à penser à utiliser un système de contrôle des révisions dans vos machines. De cette façon, vous pouvez modifier vos copies locales sur votre propre ordinateur à l'aide du logiciel de votre choix, valider les modifications, puis simplement mettre à jour les copies locales sur l'ordinateur de destination. Outre la modification des fichiers avec le logiciel avec lequel vous vous sentez à l'aise, vous avez la valeur supplémentaire de disposer d'un historique des modifications apportées à chaque fichier, ce qui est toujours satisfaisant.
Voici une liste de logiciels de contrôle de révision , juste au cas où.
la source
git
, les pousser vers quelque chose commegithub
et extraire les modifications degithub
votre machine locale pour y apporter des modifications?Pour développer M. Potts, répondez: Vous pouvez également faire ce qui précède, puis mettez quelque chose de ce genre dans .bash_profile (ou ce que votre shell utilise):
où Loom est votre ID utilisateur d' origine sous lequel vous vous connectez.
Si vous vous connectez en tant que compte partagé (et non en tant que compte individuel, poursuivez immédiatement, alors Von Neuman peut avoir pitié de votre âme, car vous êtes perdu.
J'aurais mis cela dans un commentaire, mais je ne pouvais pas du tout formater le code.
la source
Si vous avez déjà une session vim, utilisez
:silent e scp://user@myserver[:port]//path/to/file.txt
Le
:silent
devant supprimera lePress Enter to Continue
messageet
e scp://user@myserver[:port]//path/to/file.txt
est laEx
commande de mode pour éditer le fichier remnote.Testé
BitVise SSHD
sous Windows 10 et utilisant VIM sous Ubuntu 16.04la source
Press Enter to Continue
pour le chargement initial, mais pas pour les suivants:w