Come impostare la directory di lavoro / corrente in Vim?


109

Quindi, quando voglio creare un nuovo file usando il comando: e non voglio specificare l'intero percorso, ma solo il nuovo nome del file. Può essere fatto?

Risposte:


144

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.


13
se stai usando più finestre, puoi anche usare: lcd per cambiare directory solo per la finestra corrente.
Inutile

1
@ Inutile: interessante ... non credo che lo vorrei mai, ma suppongo sia una questione di gusti. Grazie per le informazioni.
falstro

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

10
@Michael si %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.
falstro

@falstro, sai come fare: il comando cd può essere applicato a tutte le finestre all'interno delle stesse istanze in esecuzione di vim? Es: quando si utilizza lo split: sp
mgouin

15

Inoltre, se stai esplorando il filesystem con il file explorer di netrw, puoi impostare la directory corrente premendo il tasto c.


usare anche set autochdirper rendere l' 'c' keyeffetto nella shell, in modo da poterlo usare !command args sotto dir modificata.
pimgeek

9

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


1
la guida dice che questo interrompe alcuni plugin (non so quali) quindi ho preso la precauzione di aggiungere la mappatura nel mio .vimrc: cnoremap cd. lcd %:p:he nnoremap ,cd :cd %:p:h<CR>:pwd<CR>invece
ErichBSchulz

utilizzare anche 'c' keyin netrw file explorer per accompagnare questo.
pimgeek

3

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!


2

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.


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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.