Risposte:
Come già suggerito, puoi usare autochdir, che passerà alla directory del file che hai aperto, l'altra opzione è
:cd mydirectory
che cambierà la directory. Questo può essere un percorso assoluto o relativo, quindi :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 home (o su Windows, stamperà la directory corrente).
:cd -
cambierà la directory nella directory precedente che hai visitato.
%
traduce nel nome del file corrente incluso il percorso, :
aggiunge un modificatore, h
è head, cioè il percorso fino all'ultimo separatore di percorso, che esclude il nome del file stesso.
Inoltre, se stai esplorando il filesystem con il file explorer di netrw, puoi impostare la directory corrente premendo il tasto c.
set autochdir
per rendere l' 'c' key
effetto nella shell, in modo da poterlo usare !command args
sotto dir modificata.
Prova ad aggiungere set autochdir
al tuo .vimrc
. Se vuoi cambiarlo solo questa volta, usa :cd
(o :cd!
per forzarlo).
cnoremap cd. lcd %:p:h
e nnoremap ,cd :cd %:p:h<CR>:pwd<CR>
invece
'c' key
in netrw file explorer per accompagnare questo.
Non so cosa ci sia di sbagliato in vim. Voglio la directory in cui avvio vim come current.
Ho seguito il suggerimento su autochd sopra e l'ho impostato su noautcd nel mio .vimrc.
Non l'ho ancora fatto, ma d'ora in poi sto per avviare vim in questo modo:
vim —cmd 'cd `pwd`'
In questo modo rimarrà fedele alla directory corrente!
Con netrw:
in aggiunta a premere il ctasto per impostare la directory corrente, si può anche mettere:
let g:netrw_keepdir= 0
nel tuo .vimrc
; questo significa che netrw
manterrà la directory di navigazione uguale alla directory corrente.
Aggiungendolo al mio .vimrc
cambia automaticamente la directory di lavoro di Vim nel file corrente:
autocmd BufEnter * silent! :lcd%:p:h
set autochdir
fa anche questo :-)