2009-06-28 8 views
9

wiem, że mogę dostać uzupełniania słów przez CTRL+N & CTRL+P i kodu ukończenia przez omnifunc z CTRL+XCTRL+O. Dodatkowo wypróbowałem Supertab (bardzo ładnie), ponieważ jestem przyzwyczajony do uzupełniania TAB. Że wszystko działało dobrze. Chciałbym zobaczyć możliwe mecze podczas pisania, więc spróbowałem także autocomplpop.vim, właśnie to robię.Word/Zakończenie Code w VIM

Co chciałbym osiągnąć chociaż byłoby połączenie obu razem z małą niespodzianką: Chciałbym zobaczyć sugestie pojawiają się podczas pisania (tak jak z autocompop), ale gdy używam TABSłowo powinno być rozszerzony tylko do największego wspólnego meczu:

foo bar testor booze test baz teter 
te<TAB> 

Po wpisaniu te w 2. kolejce, popup powinien zaproponować test, teter i testor.

Po naciśnięciu klawisza TAB nie powinno to nic robić, ponieważ nie ma więcej wspólnego obszaru niż te. Po wpisaniu dodatkowego numeru s i naciśnięciu klawisza TAB powinien on rozwinąć tes na test (ponieważ jest to najmniejszy wspólny obiekt) i testor po drugim TAB.

Edit: Staram się być bardziej jasne ...

  • te<TAB>
    • powinien robić nic, bo "my" nie wiem, czy to 'T' (TE t er) lub powinien być zgodny z "s" (te s t, tes).
  • tes<TAB>
    • należy poszerzyć do test (dlatego, że pracuje dla obu - test i TESTOR - i Teter nie jest już możliwe dopasowanie).
  • test<TAB>
    • należy poszerzyć do testor (możliwe tylko mecz).

Cóż, sugestie popup jest tylko premia, ale naprawdę chciałbym zobaczyć zachowanie TAB. Mam nadzieję, że nie dostanę tutaj ezoteryki i możesz mi pomóc z kilkoma sztuczkami skryptowymi lub wtyczkami, które pozwolą oswoić się z VIM.

+0

Czy" test "nie pasuje do" testu "? Tak traktuje bash ... (oprócz tego trzeciego przypadku, twoje przykłady odzwierciedlają zasady ukończenia basha ...) – Stobor

Odpowiedz

6
:set completeopt=longest,menu,preview 

może?

(nie jestem pewien, czy oświadczenie

„po naciśnięciu TAB, to powinien robić nic, bo nie ma już wątpliwości, niż te”

konfliktów z późniejszego oświadczenie

"do Testor po 2 tab."

Wydaje mi się, że nie ma więcej wspólnego niż "test" w tym miejscu ... Jeśli nie masz na myśli, że pierwsza zakładka przechodzi do najdłuższej wspólnej płaszczyzny, a kolejne zakładki przechodzą przez inne mecze, w takim przypadku "po tym, co mam powyżej ...)

+0

Jeśli używam ': set completopt = longest, menu, preview' i naciśnij tabulację po' te' do "testora". To nie jest to, co chciałbym osiągnąć. – Brutus

+0

Ktoś na superużytkowniku miał podobne pytanie (http://superuser.com/questions/117490/vim-autocompletion-making-xu-expand-to- longest-match) i powiedzieli, że SuperTab borykał się najdłużej. Czy próbowałeś wyłączyć supertab? – idbrii

+0

: set completopt = najdłuższy, menu jest tym, co chcesz. – qed