Completamento nome file per file remoti


16

Il mio amico mi ha mostrato un bel trucco su Emacs qualche giorno fa in cui poteva semplicemente aprire un file su un server remoto e ho immediatamente pensato "dovrebbe esserci un modo per farlo anche in vim" ed era vero.

Posso solo usarlo :e scp://user@server//filepathper farlo, nessun problema;). Tuttavia, potrebbe semplicemente digitare il nome del server e quindi ottenere il completamento per i percorsi e i nomi dei file (con scheda), cosa che non sono stato in grado di fare. Qualcuno sa se questo può essere fatto in vim?


1
Avrei pensato che ctrlp potesse supportarlo ... ma a quanto pare è una richiesta di funzionalità .
Muru,

Risposte:


6

, ma attualmente (2015) non è pronto all'uso, perché il file manager integrato di vim non supporta la navigazione remota in modo nativo. .

Aggiornamento Q3 @ 2016:

Esistono diversi modi per aggirare, con vari gradi di comfort / compatibilità / sforzo. Tutti insieme si sommano a una bella soluzione, ma possono anche essere usati singolarmente:

Se non riesci a modificare il tuo ambiente o .vimrc-solo: nel file manager di vim puoi usare i tasti // ?per cercare avanti / indietro e puoi mappare TABa uno di essi. Questo è più potente di quanto sembri per spostarti rapidamente all'interno del file system. Descrizione sotto.

Soluzione alternativa (per vim standard con NetRW):

  • Non puntare su un file remoto
  • Punta a una directory "in alto", ad es . $HOME: vim scp://files/, oppure /:vim scp://files///
  • Il plug-in NetRW si apre nella cartella di livello superiore desiderata ( /o $HOME).
  • In NetRW, puoi navigare con pochi sorprendentemente pochi tasti:
  • Per modificare il telecomando /etc/network/interfacescon NetRW su /:

    /etENTERENTER/netwENTERENTER/intENTERt

Puoi sempre usare ?per cercare indietro, senza spostarti dall'alto.

Ancora meglio , per quasi imitare TAB -Completion aggiungere .vimrc:

  • Mappa TABsu / in NetRW:autocmd filetype netrw noremap <buffer> <TAB> /
  • Configurare NetRW per TreeView: let g:netrw_liststyle=3
  • Aggiungi un interruttore per un VExplore remoto per<C-E> , se lo desideri (lo uso).
  • Raccomando anche incsearch, ignorecasee smartcaseper NetRW, o tutti i buffer.

Rispetto al completamento della scheda "convenzionale", quanto sopra è diverso, ma molto comodo.

Nota: tutto quanto sopra presuppone connessioni senza password basate su certificato ssh ~/.ssh/configcon Utente, Porta, Compressione, JumpHost (ProxyCommand è configurato in modo tale che sono necessari solo nome host / alias.

Anche questo è stato discusso in precedenza fuori sede qui e qui


1
Puoi espandere il trucco riassumendo il link? Un semplice link non è molto utile se il sito si interrompe o muore.
muru,

Penso che questa sia più o meno la mia "soluzione" finale, fino a quando NetRW non può farlo in modo nativo. Mi occuperò ancora dei problemi noti rimanenti, ma mi aspetto di trovare (o essere indicato) bug, correzioni e miglioramenti più sottili. Saranno indirizzati / incorporati. Grazie per aver commentato.
Alex Stragies,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.