Mange IDEer fullfører automatisk funksjonsnavn, variabler, metodenavn, etc. når brukeren skriver inn. De beste fullfører navnene basert på både språkets innebygde bibliotek og det som allerede er definert i andre filer i det samme programmet.
For eksempel når jeg skriver inn følgende Python-program:
hungy = True def eatFood(food): pass if hungry: eatF
linjen eatF
vil automatisk vise eatFood()
som et tilgjengelig alternativ for automatisk fullføring.
Har Vim denne muligheten? I så fall hvordan kan jeg aktivere det?
Svar
Det er mange forskjellige smaker av autofullføring i vim. En måte kan være å bruke SuperTab . Dette gir en måte å bruke fullføring av faner på mer eller mindre når som helst. Dette vil gjøre det mulig for deg å trykke Tab etter at du «delvis har skrevet ordet for å få en fullstendig liste. Skriv for eksempel eatF
etterfulgt av Tab for å utvide til eatFood.
Vær oppmerksom på : alle disse bildene lenker til eksempler på gifs i aksjon.
Vim har utmerkede andre alternativer. Du bør lese :h ins-completion
for å se mangfoldet av innebygde fullføringsalternativer. Bruke vim «s Ctrl–X Ctrl – O , kombinert med et python-bevisst plugin som jedi kan gi en kompletterende smak. Jedi kan konfigureres til å gi dokumentasjon på omni-fullføring (dette er hva Ctrl–X Ctrl – O gjør ). Deretter vises dokumentasjon for fullføringskandidatene i et delt vindu.
Ved å bruke lignende plugins, men forskjellige alternativer fører til all slags oppførsel. Det er for eksempel mulig å ikke trenge å be om autofullføring (hvis det er det du er ute etter). I stedet, etter at du har skrevet inn et antall bokstaver (si 2 eller 3) av et ord, kan et plugin prøv å tilby mulige utførelser på en intelligent måte i en meny.
Så det korte svaret er et ja! Men konfigurasjonsprosessen kan være litt komplisert. Jeg tenker på det som et skritt i den lange trappen for å mestre vim.
Kommentarer
- Jeg ‘ har prøvd dem alle, og jeg kommer alltid tilbake til SuperTab, det er ‘ som er minst påtrengende.
- Jeg liker også YouCompleteMe-pluginet, da det antyder som du skriver, og du kan enten velge eller ignorere forslag. Ja, visuelt er det vanskelig å ignorere det, men det er veldig lite påtrengende i arbeidsflyten min fordi den requi res færre tastetrykk.
- Jeg ‘ har endret animasjonene til å være » ved å klikke «, i den forstand at de er koblet til gif-animasjonene.
- Jeg kan ‘ ikke bruke YouCompleteMe på arbeidsdatamaskinen min fordi jeg don ‘ t har rot til å installere avhengighetene, SuperTab er det klart beste valget.
- @mixedmath I mitt tilfelle er SuperTab ikke ‘ fungerer ikke.
Svar
Slik funksjonalitet – dvs. å søke i den nåværende filen ( og alle åpne filer) for automatisk fullføring, bør være aktivert som standard med Ctrl+P
:
Du kan gå til n ext-forslaget med Ctrl+N
, p falske forslag med Ctrl+P
og velg den ved å skrive en bokstav (som blir lagt til rett etter forslaget).
Kommentarer
Svar
Vim har støtte for ferdigstillelse naturlig . Du kan lese om de forskjellige kompletteringene som Vim støtter på :h ins-completion
.
Generelt sett, for alle formål jeg har funnet, er innfyllinger nok for min smak , men det er noen kompletterings plugins som gir mer verdi utover hva ins-completions tilbyr. NeoComplete , YCM (YouCompleteMe) er noen få for det samme. De er mer avanserte i den forstand at de prøver å kombinere forskjellige typer fullføringer mer nøyaktig, og de har også avanserte cachemekanismer, så de pleier å være raskere. YCM går til og med i den grad å jobbe med eksterne kompilatorer / verktøy for å gi bedre IntelliSense.
Svar
Ja, skripter for automatisk ferdigstillelse for vim eksisterer. Det «beste» valget avhenger av programmeringsspråket ditt. Ettersom eksempelkoden din er Python, foreslår jeg at du tar en titt på Jedi . Bygg på toppen av at Du fullfører meg eksisterer, som også har støtte for andre språk, men noen ganger blir sett på som for stor. For andre språk kan du bla gjennom det lange settet på vim-skript .
Svar
I innsettingsmodus skriver du inn de første par tegnene i et ord, og trykker deretter på:
Ctrl-N to insert the next matching word; or Ctrl-P to insert the previous matching word.
Dette er spesielt nyttig når du skriver inn navn på variabler i et program.
Alternativet «komplett» kontrollerer hvor det blir søkt etter nøkkelordene (inkluderer filer, taggfiler, buffere og mer).
Alternativet «completeopt» styrer hvordan fullføringen skjer (for eksempel om en meny vises).
^P
mer naturlig IMHO. Ellers takk for redigeringen (jeg håper jeg klikket på høyre knapp og du fikk +2).world,word,wood
og ikke omvendt).Så^P
er den siste brukte fullføringen, noe som er veldig nyttig (jeg går sjelden lenger enn 3 elementer i listen, selv i en lang fil).inoremap <C-Space> <C-N>