EDYCJA: Sugeruj ładnie symetryczne odwzorowania dla przypadku podziału pionowego, ponieważ Vim domyślnie ma dwa odwzorowania dla przypadku podziału poziomego.
Istnieje kilka sposobów edytowania „pliku pod kursorem” i chociaż na pewno możesz gfzmienić mapowanie, aby edytować na nowej stronie, jak wspomina @ Alexander-myshov, oznacza to, że masz dwa sposoby na edycję go na nowej stronie, ale nie ma możliwości edytuj go w bieżącym oknie, co czasem możesz chcieć zrobić. Nie jest trudno korzystać ze standardowych mapowań, ale jeśli chcesz zmienić mapowanie jednego z nich gf, sugeruję zmianę mapowań, aby nie stracić żadnego z nich.
Niektóre sposoby edytowania nazwy pliku pod kursorem to
- gf - Edytuj istniejący plik pod kursorem w tym samym oknie
- C-Wf - Edytuj istniejący plik pod kursorem w podzielonym oknie
- C-WC-F - Edytuj istniejący plik pod kursorem w podzielonym oknie
- C-Wgf - Edytuj istniejący plik pod kursorem na nowej karcie
Nie ma standardowego mapowania do edycji istniejącego pliku pod kursorem w podziale pionowym, ale można to osiągnąć, najpierw dzieląc okno w pionie, a następnie edytując plik pod kursorem w bieżącym oknie.
- C-Wv+ gf- Edytuj istniejący plik pod kursorem w pionowo podzielonym oknie
Jak widać powyżej, istnieją dwa domyślne odwzorowania do edycji pliku pod kursorem w podziale poziomym. Możesz zatem zmienić mapowanie jednego z powyższych na keystring powyżej, rozszerzając grupę map, tak aby obejmowała również przypadek podziału pionowego. Można powiązać czegokolwiek, oczywiście, ale to wydaje się zakończyć symetrię ładnie: nnoremap <C-W><C-F> <C-W>vgf
. Teraz masz
- gf - Edytuj istniejący plik pod kursorem w tym samym oknie
- C-Wf - Edytuj istniejący plik pod kursorem w podzielonym oknie
- C-WC-F - Edytuj istniejący plik pod kursorem w pionowo podzielonym oknie
- C-Wgf - Edytuj istniejący plik pod kursorem na nowej karcie
Możesz także przejść do określonej linii w pliku, jeśli po nazwie pliku pod kursorem znajduje się numer linii. Jeśli masz
filename:10
możesz edytować plik i przesunąć kursor do linii 10 za pomocą gF. Odpowiednik ten obowiązuje w C-WFprzypadku podziału i C-WgFstrony karty. Uzupełnienie symetrii dla podziału pionowego nie jest tutaj tak proste, ale sugerowałbym, że C-WC-S-Fmapa uzyskana z nnoremap <C-W><C-S-F> <C-W>vgF
, naśladując Flub Shift+ fz domyślnych map jako kandydata.
:
Jest przykładem, można użyć dowolny znak, który nie jest postacią nazwa pliku (zobacz :h 'isfname'
).
Wszystkie te polecenia pochodzą z sosem jabłkowym, np
- rozwiń symbole wieloznaczne
- Szukaj więcej miejsc niż w bieżącym katalogu, zgodnie z twoją
'path'
opcją
- dodając rozszerzenie pliku do nazwy pliku, zgodnie z twoją
'suffixesadd'
opcją
- w przeciwnym razie zmodyfikuj podaną nazwę pliku, aby znaleźć dopasowanie, zgodnie z Twoją
'includeexpr'
opcją
Przeczytaj więcej na :help gf
i tematy pomocy dla tych różnych opcji.
Jeśli nazwa pliku pod kursorem nazywa plik, który nie istnieje, możesz lepiej użyć standardowych poleceń edycji <cfile>
, na przykład
:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage
i przy pomocy tych oczywiście możesz użyć rzeczy takich jak :spl+10 filename
przesunięcie kursora do określonej linii lub :tabe+/cologne filename
przesunięcie kursora do pierwszego wystąpienia wzoru.
'hidden'
opcji (set hidden
) pozwala odejść od niezapisanych buforów. Dla mnie był to ogromny wzrost wydajności i był niezbędny, aby przestać tak bardzo polegać na podziałach i kartach.