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 %:hche 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 autochdirper rendere l' 'c' keyeffetto nella shell, in modo da poterlo usare !command args sotto dir modificata.
Prova ad aggiungere set autochdiral tuo .vimrc. Se vuoi cambiarlo solo questa volta, usa :cd(o :cd!per forzarlo).
cnoremap cd. lcd %:p:he nnoremap ,cd :cd %:p:h<CR>:pwd<CR>invece
'c' keyin 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 netrwmanterrà la directory di navigazione uguale alla directory corrente.
Aggiungendolo al mio .vimrccambia automaticamente la directory di lavoro di Vim nel file corrente:
autocmd BufEnter * silent! :lcd%:p:h
set autochdirfa anche questo :-)