2009-02-09 10 views
243

Quando sto aprendo un nuovo file in vim e uso il completamento della tabulazione, esso completa l'intero nome del file invece di eseguire la corrispondenza parziale come fa bash. Esiste un'opzione per rendere questo completamento del tab di nome file più simile a bash?Come faccio a fare in modo che vim esegua il completamento normale (bash like) per i nomi dei file?

+9

Tecnicamente parlando, sono abbastanza sicuro che "bash" non completa il tab. È leggenda che lo fa. –

+2

Stiamo parlando di personalizzare il comportamento della funzione^X^F? – BrunoJCM

risposta

353

io personalmente uso

set wildmode=longest,list,full 
set wildmenu 

Quando si digita il primo colpo scheda completerà, per quanto possibile, il secondo colpo scheda fornirà una lista, il terzo e le schede successive saranno scorrere le opzioni di completamento modo da poter completare il file senza ulteriori chiavi

bash come sarebbe solo

set wildmode=longest,list 

ma il pieno è molto utile

+4

Questa è una di quelle cose che ho sempre dimenticato come impostare quando ho bisogno di riavviare il mio vimrc da zero. Grazie! –

+2

Esattamente quello che stavo cercando! Grazie! –

+5

Vorrei poterlo revocare più di una volta ... Questa è una di quelle cose che mi ha infastidito per anni ma non ho mai trovato la soluzione. Grazie! – sanmiguel

4

sto supponendo che si sta utilizzando di completamento automatico in vim via Ctrl +n per la ricerca in buffer corrente. Quando si utilizza questo comando, si ottiene un elenco di soluzioni, è sufficiente ripetere il comando per passare all'elemento successivo nell'elenco. Lo stesso vale per tutti i comandi di completamento automatico. Mentre riempiono l'intera parola, puoi continuare a spostarti nell'elenco finché non arrivi a quello che desideri utilizzare.

Spero che questo sia utile.

Edit 1: Questo può essere un comando più utile: Ctrl +p. L'unica differenza è che Ctrl +p ricerca all'indietro nel buffer mentre Ctrl +n ricerca in avanti ... realisticamente, saranno entrambi fornire un elenco con gli stessi elementi, che può solo apparire in una diversa ordine.

2

Provare a usare: imposta jolly. A parte questo, non sono sicuro di cosa stai provando esattamente. Elaborare un po 'di più per favore. Oh, sì, e magari provare questo link: link

6

Se non si desidera impostare il wildmenu, si può premere Ctrl + L quando si desidera aprire un file. Ctrl + L completerà il nome del file come completamento bash.

+0

Ctrl-L non si comporta come il completamento automatico di bash. Non passa in rassegna tutte le opzioni possibili. – raine

+2

Il mio atto di battesimo si comporta così. '' completa la stringa corrente per quanto possibile in modo non ambiguo (come 'CTRL-L' in Vim) e' 'mostra un elenco di corrispondenze possibili (come' CTRL-D' in Vim). – glts

16

Il comportamento più vicino al completamento di Bash dovrebbe essere

set wildmode=longest:full,full 

Con pochi carattere digitato, scheda premendo una volta vi darà tutte le partite disponibili in wildmenu. Questo è diverso dalla risposta di Michael che apre una finestra di tipo quickfix sotto la riga di comando.

Quindi è possibile continuare a digitare il resto dei caratteri o premere nuovamente la scheda per completare automaticamente con la prima corrispondenza e circondare.

5

A parte il wildmode/wildmenu suggerito, vim offre anche la possibilità di mostrare tutte le possibili completamenti utilizzando Ctrl +d. Questo potrebbe essere utile per alcuni utenti che si imbattono in questa domanda durante la ricerca di diverse opzioni di autocompletamento in vim come ho fatto io.

Problemi correlati