Wiele IDE automatycznie uzupełnia nazwy funkcji, zmienne, nazwy metod itp. jako typ użytkownika. Najlepsze z nich uzupełniają nazwy zarówno na podstawie wbudowanej biblioteki języka, jak i tego, co zostało już zdefiniowane w innych plikach tego samego programu.
Na przykład, kiedy piszę Program w Pythonie:
hungy = True def eatFood(food): pass if hungry: eatF 
 wiersz eatF automatycznie pokazywał eatFood() jako dostępna opcja autouzupełniania. 
Czy Vim ma taką możliwość? Jeśli tak, jak mogę to włączyć?
Odpowiedź
 W vimie jest wiele różnych odmian autouzupełniania. Jednym ze sposobów może być użycie  SuperTab . Zapewnia to sposób używania uzupełniania tabulatorami mniej więcej w dowolnym momencie. Umożliwiłoby to naciśnięcie klawisza  Tab  po częściowym wpisaniu słowa w celu uzyskania listy uzupełnień. Na przykład wpisanie eatF, a następnie  Tab , aby rozwinąć do eatFood. 
Uwaga : wszystkie te zdjęcia odsyłają do przykładowych gifów w akcji.
 Vim ma doskonałe inne opcje. Przeczytaj :h ins-completion, aby zobaczyć różnorodność wbudowanych opcji uzupełniania. Używanie vim „s Ctrl–X  Ctrl  –  O  w połączeniu z wtyczka obsługująca język Python, taka jak  jedi , może nadać uzupełnienie. Jedi można skonfigurować tak, aby udostępniał dokumentację o uzupełnianiu omni (to robi Ctrl–X  Ctrl  –  O  ). Następnie dokumentacja dla kandydatów do ukończenia pojawiłaby się w podzielonym oknie. 
Używanie podobnych wtyczek, ale różne opcje prowadzą do różnego rodzaju zachowań. Możliwe jest na przykład, że nie trzeba będzie pytać o autouzupełnianie (jeśli właśnie tego oczekujesz). Zamiast tego po wpisaniu pewnej liczby liter (powiedzmy 2 lub 3) słowa, wtyczka może spróbuj inteligentnie zaoferować możliwe uzupełnienia w menu.
Krótka odpowiedź brzmi: tak! Ale proces konfiguracji może być nieco skomplikowany. Myślę o tym jako o kroku na długiej drodze do opanowania vima.
Komentarze
- ' wypróbowałem je wszystkie i zawsze wracam do SuperTab, jest to ' najmniej uciążliwe.
 - Bardzo podoba mi się również wtyczka YouCompleteMe, ponieważ sugeruje ona w trakcie pisania i możesz wybrać lub zignorować sugestie. Tak, wizualnie trudno to zignorować, ale jest bardzo dyskretna w moim przepływie pracy, wymagane Zmniejsz liczbę naciśnięć klawiszy.
 - Ja ' zmieniłem animacje na ” po kliknięciu „, w tym sensie, że są one połączone z animacjami gif.
 - Nie mogę ' korzystać z YouCompleteMe na moim komputerze w pracy, ponieważ nie ' nie mam roota do zainstalowania zależności, SuperTab jest zdecydowanie najlepszym wyborem.
 - @mixedmath W moim przypadku superTab nie ' t działa.
 
Odpowiedź
 Taka funkcjonalność – tj. przeszukiwanie bieżącego pliku ( i wszystkich otwartych plików) dla automatycznego uzupełniania, powinno być domyślnie włączone z Ctrl+P: 
 
 
 Możesz przejść do  n  sugestii rozszerzenia za pomocą Ctrl+N,  p  rewelacyjna sugestia z Ctrl+P i wybierz go, wpisując dowolną literę (która zostanie dodana zaraz po sugestii). 
Komentarze
Odpowiedź
 Vim obsługuje uzupełnianie natywnie . Możesz przeczytać o różnych różnych uzupełnieniach, które Vim obsługuje w :h ins-completion. 
Ogólnie, do wszystkich celów, które znalazłem, wystarczające są uzupełnienia według moich upodobań jednak istnieją pewne wtyczki uzupełniania, które dodają więcej wartości niż to, co oferuje wstawianie uzupełnień. NeoComplete , YCM (YouCompleteMe) to kilka za to samo. Są bardziej zaawansowani w tym sensie, że starają się dokładniej łączyć różne typy uzupełnień, a także mają zaawansowane mechanizmy buforowania, dzięki czemu są szybsze. YCM współpracuje nawet z zewnętrznymi kompilatorami / narzędziami, aby zapewnić lepszą technologię IntelliSense.
Odpowiedź
Tak, skrypty automatycznego uzupełniania dla vim istnieje. „Najlepszy” wybór zależy od języka programowania. Jako przykładowy kod to Python, proponuję przyjrzeć się Jedi . Oprócz tego istnieje You complete me , który obsługuje również inne języki, ale czasami jest postrzegany jako zbyt duży. W przypadku innych języków możesz przeglądać długi zestaw skryptów vima .
Odpowiedź
W trybie wstawiania wpisz kilka pierwszych znaków słowa, a następnie naciśnij:
Ctrl-N to insert the next matching word; or Ctrl-P to insert the previous matching word. 
Jest to szczególnie przydatne przy wpisywaniu nazwy zmiennych w programie.
Opcja „Complete” kontroluje, gdzie wyszukiwane są słowa kluczowe (pliki włączające, pliki znaczników, bufory i inne).
Opcja „completeeopt” steruje sposobem zakończenia (na przykład wyświetlaniem menu).
^Pjest bardziej naturalnym IMHO. W przeciwnym razie dzięki za edycję (mam nadzieję, że kliknąłem właściwy przycisk i dostałeś +2).world,word,wood, a nie na odwrót).Tak więc^Pjest ostatnim używanym uzupełnieniem, co jest bardzo przydatne (rzadko sięgam dalej niż 3 pozycje na liście, nawet w długim pliku).inoremap <C-Space> <C-N>