Mon ami m'a montré il y a quelques jours un truc sympa sur Emacs où il pouvait simplement ouvrir un fichier sur un serveur distant et j'ai instantanément pensé "il devrait y avoir un moyen de le faire dans vim aussi" et c'était vrai.
Je peux juste m'en servir :e scp://user@server//filepath
, pas de problème;). Cependant, il pouvait simplement taper le nom du serveur, puis obtenir l'achèvement des chemins de fichier et des noms (avec onglet), ce que je n'ai pas pu faire. Est-ce que quelqu'un sait si cela peut être fait dans vim?
autocompletion
filesystem
m.ajallooeian
la source
la source
Réponses:
Oui , mais actuellement (2015) n'est pas prêt à l'emploi, car le gestionnaire de fichiers intégré de vim ne prend pas en charge nativement la navigation à distance. .
Mise à jour Q3 @ 2016:
Il existe plusieurs solutions, avec différents degrés de confort / compatibilité / effort. Tous ensemble, ils constituent une solution intéressante, mais ils peuvent également être utilisés individuellement:
Configurer un niveau utilisateur
afuse
/sshfs
démon dans vos fichiers d'initialisation shellAvec quelques lignes de script provenant par exemple
.profile
, vous pouvez configurer un monteur automatique à la demande dans un répertoire, par exemple~/scp/
. Détails de cette intégration dans un article sur Unix et Linux SE . Il s'agit de l'option la plus confortable, les fichiers distants "apparaissent" en local, mais nécessitentafuse
etsshfs
doivent être disponibles pour vous.Configuration de l'achèvement de la ligne de commande du shell pour les chemins de fichiers distants
Le paquet de fonctions de complétion pour bash a quelques fonctions conçues pour
ssh
etscp
complétées. Avec une fonction wrappervim()
, qui modifie les chemins distants dansvim
la forme attendue, ils peuvent être utilisés pour fournir des fichiers distants complétés par TABvim
. Les lacunes mineures de cette approche y sont également détaillées. Pour des situations sans fusion. Doitbash-completion
être installé, ou équivalent et adaptations pour d'autres coques.Si vous ne pouvez pas modifier votre environnement ou
.vimrc
-uniquement: Dans le gestionnaire de fichiers vim, vous pouvez utiliser les touches // ?pour rechercher en avant / en arrière, et vous pouvez mapper TABsur l'une d'entre elles. C'est plus puissant qu'il n'y paraît pour vous naviguer rapidement dans le système de fichiers. Description ci-dessous.Solution de base (pour vim standard avec NetRW):
$HOME
:,vim scp://files/
ou/
:vim scp://files///
/
ou$HOME
).Pour modifier la télécommande
/etc/network/interfaces
avec NetRW sur/
:/etENTERENTER/netwENTERENTER/intENTERt
Vous pouvez toujours utiliser
?
pour rechercher vers le haut, sans envelopper par le haut.Encore mieux , pour presque imiter TAB -Completion ajouter
.vimrc
:autocmd filetype netrw noremap <buffer> <TAB> /
let g:netrw_liststyle=3
<C-E>
, si vous le souhaitez (je l'utilise).incsearch
,ignorecase
etsmartcase
pour NetRW, ou tous les tampons.Comparé à la complétion de tabulation "conventionnelle", ce qui précède est différent, mais très confortable.
Remarque: Tout ce qui précède suppose que les connexions sans mot de passe basées sur le certificat ssh
~/.ssh/config
avec l'utilisateur, le port, la compression, JumpHost (ProxyCommand sont configurées de telle sorte que seuls le nom d'hôte / les alias sont nécessaires.Cela a également été discuté précédemment hors site ici et ici
la source