Wiem, że mogę uzupełnić nazwy plików / ścieżki z bieżącego katalogu za pomocą ctrl + x, ctrl + f ( compl-filename
). Działa to świetnie w połączeniu z ustawionym autochdir, który zmienia aktualizuje bieżący katalog do katalogu aktywnego bufora.
Jednak zacząłem używać, airblade/vim-rooter
aby bieżący katalog był folderem „projektu”. Teraz uzupełnianie nazw plików zawsze zaczyna się od folderu projektu.
Pytanie: Czy istnieje sposób, aby uzupełnić nazwę pliku, używając katalogu aktywnego bufora zamiast bieżącego katalogu? Lub jakieś inne obejście?
autocompletion
Rafael Barbosa
źródło
źródło
path
również). Zależy to od zamierzonego zastosowania vim-rootera. W zależności od tego, czego od niego chcesz, możemy użyć innych wtyczek. Poza tym: używam youcompleteme, który uzupełnia ścieżki z katalogu bieżącego bufora, jeśli zaczniesz pisać./
. Zobacz reddit.com/r/vim/comments/216jdd/...Odpowiedzi:
Jak wspomniano @muru, nie ma opcji konfiguracji katalogu, z którego należy uzupełnić ścieżki i nazwy plików. Zawsze korzysta z katalogu roboczego okna.
Napisałem kilka funkcji i mapowań, aby w tym pomóc. Za kulisami
:lcd
tymczasowo zmieniają lokalny katalog roboczy (za pomocą ), a po zakończeniu przywracają poprzedni katalog roboczy.Słoń
Z nieznanych mi powodów, nazwałem ten mikro-plugin Elephant .
Oto kod (skopiowany z mojej konfiguracji Vima na GitHub ):
Jak tego użyć
Korzystanie z tych mapowań odbywa się w 3 krokach.
1. Wywołaj mapowanie
W trybie wstawiania lub w trybie wiersza poleceń uruchom mapowanie za pomocą
<C-R><C-E>
.2. Wybierz katalog
Wpisz pojedynczy znak, aby wybrać katalog główny, z którego chcesz uzupełnić. Powyższy kod zapewnia dwa rodzaje korzeni:
f
- Katalog, w którym znajduje się bieżący plik (bufor)p
- Katalog podstawowy projektu Git, do którego należy bieżący plik3. Wprowadź ścieżkę lub nazwę pliku
Zostaniesz poproszony o podanie ścieżki lub nazwy pliku względem określonego katalogu, z możliwością uzupełnienia. Naciśnij
Enter
po zakończeniu.Kilka notatek
<C-X><C-F>
robi; zamiast tego będziesz wpisywać ścieżkę lub nazwę pliku w wierszu polecenia (tam, gdzie:
idą polecenia). Po naciśnięciuEnter
ścieżka zostanie wstawiona do bufora.Enter
i zapominasz, że wciąż musisz nacisnąć,Enter
aby wydać dowolne polecenie, które właśnie wpisałeś.g:elephant_map
.źródło