2010-02-18 31 views

risposta

101

come già suggerito, è possibile utilizzare autochdir, che cambierà la directory del file è stato aperto, l'altra opzione è

:cd mydirectory 

che cambierà la directory. Questo può essere un percorso assoluto o relativo, pertanto :cd .. salirà di un livello. Oppure puoi usare :cd %:h che cambierà anche nella directory in cui si trova il file corrente, ma senza impostare autochdir.

:cd 

cambierà la directory nella directory principale (o su Windows, stampa la directory corrente).

:cd - 

cambierà la directory nella directory precedente visitata.

+7

se usi più finestre, puoi anche usare: lcd per cambiare directory solo per la finestra corrente. – Useless

+1

@Inutile: interessante ... Non credo che lo desidererei mai, ma suppongo che sia una questione di gusti. Grazie per le informazioni. – falstro

+3

Sto cercando di capire che cosa significa%: h, qualche aiuto? – Michael

7

Prova ad aggiungere set autochdir al tuo .vimrc. Se vuoi cambiarlo solo una volta, usa :cd (o :cd! per forzarlo).

+1

l'aiuto dice che questo rompe alcuni plugin (non so quali) così ho preso la precauzione di aggiungere mappatura nel mio .vimrc: 'cnoremap cd. lcd%: p: h' e 'nnoremap, cd: cd%: p: h : pwd ' invece – ErichBSchulz

+0

usa anche '' ''c' key''' in netrw file explorer per accompagnarlo. – pimgeek

12

Inoltre, se si sta esplorando il filesystem con il file explorer di netrw, è possibile impostare la directory corrente premendo il tasto c.

+0

usa anche '' 'set autochdir''' per far sì che il' '' 'c' key''' abbia effetto in shell, così puoi usare '' '! Comando args' '' sotto dir cambiato – pimgeek

0

Con netrw: in aggiunta alla pressione del tasto c per impostare la directory corrente, puoi anche mettere:

let g:netrw_keepdir= 0 

nella vostra .vimrc; ciò significa che netrw manterrà la directory di navigazione uguale alla directory corrente.

+0

Questo sembra avere un comportamento equivalente come: lcd per ogni cambio di cartella netrw. Hai un'idea di come questa impostazione potrebbe essere equivalente a: cd invece (cambia dir per tutte le finestre)? Grazie! – mgouin

1

Non so cosa c'è di sbagliato in vim. Voglio la directory in cui avvio vim come corrente.

Ho seguito il suggerimento circa autochd sopra e l'ho impostato su noautcd nel mio .vimrc.

non l'ho ancora fatto, ma sono in procinto di avviare vim come questo d'ora in poi:

vim —cmd 'cd `pwd`' 

che renderà aderire alla directory corrente!

1

L'aggiunta di questo al mio .vimrc cambia automaticamente dir di lavoro di Vim al file corrente:

autocmd BufEnter * silent! :lcd%:p:h 
+0

'set autochdir' fa altrettanto :-) –

Problemi correlati