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ć?

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.


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.


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ś).


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!


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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.