2016-02-09 16 views
8

Diciamo che sono nella mia home directory. Apro un file che è presente in una profonda struttura di directory nidificato:VIM: Come aprire un altro file dalla stessa posizione di un file già aperto

vim /some/really/long/path/file.txt 

Ora, all'interno di vim, voglio iniziare una spaccatura verticale con un altro file da quella stessa posizione lunga (ma io non voglio cambiare la directory corrente su quel percorso, voglio ancora essere nella home directory).

Un laico (come me) farà qualcosa di simile:

:vsp /some/really/long/path/file2.txt 

Ma io voglio sapere da tutto quello che Vim geni là fuori, c'è un modo più semplice per fare questo?

Nella stessa nota, se avessi più file già aperti che si trovano in percorsi diversi, VIM può assegnare automaticamente una sorta di variabili interne a tutte le posizioni? E poi quando voglio avviare un nuovo VSP o SP con uno dei file da una di quelle posizioni, semplicemente uso quelle variabili interne?

+0

Se ti aspetti di aprire i file dalla stessa posizione, puoi fare: cd/long/percorso/su/i/file/vuoi/poi basta andare: e file1,: e file2 ecc. –

+0

Sì, lo sono consapevole del comando cd. Mi stavo chiedendo se VIM mantiene un elenco accessibile di posizioni di file già aperti, che posso scorrere senza fare "cd" o digitando il percorso completo ogni volta. – shikhanshu

risposta

12

Prova questo:

:vs %:p:h/otherfile 

come %:p:h ti dà il percorso del file corrente . Vedere :help %:p per ulteriori informazioni.

+0

Contrassegnare questa risposta come risposta, poiché spiega esattamente cosa sta succedendo con quel%: p: h thingy :) – shikhanshu

3

Modifica un altro file nella stessa directory:

:vs %<Tab><C-w><C-w><C-w>file2<Tab> 

con una mappatura:

nnoremap <key> :vs <C-R>=expand('%:p:h')<CR> 
+0

Questo è perfetto.Dopo aver postato la mia domanda, ho trovato la stessa risposta anche su vim.wikia.com. http://vim.wikia.com/wiki/Easy_edit_of_files_in_the_same_directory – shikhanshu

0

Se ti piace più navigazione che digitare i comandi, un'opzione utile potrebbe essere l'uso del comando Esplora, che apre una finestra con i file di elenco nella directory del file nel buffer corrente. Quindi puoi navigare con i cursori e premere v quando hai il file che vuoi aprire in una divisione verticale.

Un modo conveniente è quello di mappare la Esplora comando, così:

" open embedded file system navigator 
map <leader>\ :Explore<cr> 

Press <capo> \ e passare al file, quindi premere v.

Con alcune versioni di vim, l'Esplora finestra rimane aperta dopo aver premuto v - in tal caso, se si vuole evitare oneri supplementari per chiudere la Esplora finestra, è possibile fare in primo luogo la spaccatura verticale con : vsp, invocare : Expore e aprire il file desiderato premendo Immettere.

Problemi correlati