Jak ustawić katalog roboczy / bieżący w Vimie?

109

Więc kiedy chcę utworzyć nowy plik za pomocą polecenia: e, nie chcę określać całej ścieżki, tylko nową nazwę pliku. Czy da się to zrobić?

Fred
źródło

Odpowiedzi:

144

Jak już zasugerowano, możesz użyć autochdir, który przejdzie do katalogu otwartego pliku, druga opcja to

:cd mydirectory

co zmieni katalog. Może to być ścieżka bezwzględna lub względna, więc :cd ..przejdzie o jeden poziom w górę. Lub możesz użyć, :cd %:hktóry również zmieni katalog, w którym znajduje się bieżący plik, ale bez ustawiania autochdir.

:cd

zmieni katalog na twój katalog domowy (lub w Windows drukuje bieżący katalog).

:cd -

zmieni katalog na poprzedni odwiedzony katalog.

falstro
źródło
13
jeśli używasz wielu okien, możesz nawet użyć: lcd do zmiany katalogu tylko dla bieżącego okna.
Bezużyteczne
1
@Useless: interesujące ... Nie sądzę, żebym kiedykolwiek tego chciał, ale przypuszczam, że to kwestia gustu. Dzięki za informację.
falstro
3
Próbuję dowiedzieć się, co oznacza%: h, jakaś pomoc?
Michael
10
@Michael %tłumaczy na aktualną nazwę pliku, w tym ścieżkę, :dodaje modyfikator, hto head, czyli ścieżkę do ostatniego separatora ścieżki, czyli z wyłączeniem samej nazwy pliku.
falstro
@falstro, czy wiesz jak: polecenie cd można zastosować do wszystkich okien w tych samych uruchomionych instancjach Vima? Np. Podczas korzystania ze splitu: sp
mgouin
15

Również, jeśli przeglądasz system plików za pomocą eksploratora plików netrw, możesz ustawić bieżący katalog, naciskając klawisz c.

Dave Kirby
źródło
użyj także, set autochdiraby 'c' keyefekt zadziałał w powłoce, dzięki czemu możesz użyć !command args zmienionego dir.
pimgeek
9

Spróbuj dodać set autochdirdo swojego .vimrc. Jeśli chcesz to zmienić tylko raz, użyj :cd(lub :cd!wymuś).

John Feminella
źródło
1
pomoc mówi, że to psuje niektóre wtyczki (nie wiem, które), więc podjąłem środki ostrożności cnoremap cd. lcd %:p:hi nnoremap ,cd :cd %:p:h<CR>:pwd<CR>
dodałem
użyj również 'c' keyw eksploratorze plików netrw, aby temu towarzyszyć.
pimgeek
3

Nie wiem, co jest nie tak z vimem. Chcę, aby katalog, w którym uruchamiam vima, był bieżący.

Postępowałem zgodnie ze wskazówką dotyczącą autochd powyżej i ustawiłem ją na noautcd w moim .vimrc.

Jeszcze tego nie zrobiłem, ale od teraz mam zamiar uruchomić Vima w ten sposób:

vim —cmd 'cd `pwd`'

To sprawi, że pozostanie w bieżącym katalogu!

McUsr
źródło
2

Dzięki netrw:oprócz naciśnięcie cprzycisku, aby ustawić bieżący katalog, można również umieścić:

let g:netrw_keepdir= 0

w twoim .vimrc; oznacza to, że netrwkatalog przeglądania będzie taki sam jak katalog bieżący.

Chip Campbell
źródło
Wydaje się, że ma to równoważne zachowanie, jak: lcd dla każdej zmiany folderu netrw. Czy masz pomysł, jak to ustawienie może być odpowiednikiem: cd zamiast tego (zmień dir dla wszystkich okien)? Dzięki!
mgouin
1

Dodanie tego do mojego .vimrcautomatycznie zmienia katalog roboczy Vima na bieżący plik:

autocmd BufEnter * silent! :lcd%:p:h
Matthias Braun
źródło
3
set autochdirteż to robi :-)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功