Polecenie trybu normalnego gf
przechodzi do pliku ze ścieżką, w której aktualnie znajduje się kursor.
Ale robi to w bieżącym oknie, zastępując bieżący tekst. Oznacza to, że musisz wyraźnie przejść wstecz, aby później przejść wstecz, i że potencjalnie musisz zapisać zmiany w bieżącym buforze.
Jestem pewien, że jest to możliwe zamiast otwarcia pliku pod kursorem w nowym widoku tabulacji?
key-bindings
tabbed-user-interface
multiple-files
file-operations
Volker Siegel
źródło
źródło
'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.Odpowiedzi:
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
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.
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 maszMożesz także przejść do określonej linii w pliku, jeśli po nazwie pliku pod kursorem znajduje się numer linii. Jeśli masz
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
'path'
opcją'suffixesadd'
opcją'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ładi 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.źródło
Po prostu użyj do tego powiązań:
otwieranie w nowym oknie (podział):
otwieranie w nowej karcie:
sprawdź również:
:help CTRL-W_gf
źródło
gf
na coś innego. Nawetnnoremap gf :echo "hello"<CR>
nadal otwiera plik pod kursorem w nowym buforze (i tak, sourced vimrc).