Multe IDE completează automat numele funcțiilor, variabilele, numele metodelor etc., ca tipuri de utilizatori. Cele mai bune completează numele bazate atât pe biblioteca încorporată a limbii, cât și pe ceea ce a fost deja definit în alte fișiere ale aceluiași program.
De exemplu, în timp ce scriu următoarele Program Python:
hungy = True def eatFood(food): pass if hungry: eatF
linia eatF
ar afișa automat eatFood()
ca opțiune de completare automată disponibilă.
Are Vim această capacitate? Dacă da, cum îl pot activa?
Răspuns
Există multe arome diferite de completare automată în vim. O modalitate ar putea fi utilizarea SuperTab . Aceasta oferă o modalitate de a utiliza completarea filelor mai mult sau mai puțin în orice moment. Acest lucru vă va permite să apăsați pe Tab după ce ați „tastat parțial cuvântul pentru a obține o listă de finalizare. De exemplu, tastați eatF
urmat de Tab pentru a extinde la eatFood.
Vă rugăm să rețineți : aceste imagini leagă toate exemplele de gifuri în acțiune.
Vim are alte opțiuni excelente. Ar trebui să citiți :h ins-completion
pentru a vedea varietatea opțiunilor de completare încorporate. Folosind vim „s Ctrl–X Ctrl – O , combinat cu un plugin care conține python, cum ar fi jedi , poate da o aromă completă. Jedi poate fi configurat pentru a oferi documentație despre omni-completare (asta face Ctrl–X Ctrl – O ). Apoi, documentația pentru candidații de finalizare va apărea într-o fereastră divizată.
Folosind pluginuri similare, dar opțiuni diferite conduc la tot felul de comportamente. Este posibil, de exemplu, să nu trebuiască să solicitați completarea automată (dacă „căutați acest lucru”). În schimb, după ce tastați un număr de litere (de exemplu, 2 sau 3) dintr-un cuvânt, un plugin poate încercați să oferiți în mod inteligent completări posibile într-un meniu.
Deci, răspunsul scurt este un da! Dar procesul de configurare poate fi un pic complicat. Cred că este un pas în lunga scară de masterizare a vim.
Comentarii
- Am ‘ le-am încercat pe toate și revin mereu la SuperTab, este ‘ cel mai puțin intruziv.
- De asemenea, îmi place foarte mult pluginul YouCompleteMe, întrucât sugerează așa cum tastați și puteți alege sau ignora sugestii. Da, vizual este greu de ignorat, dar este foarte neintruziv în fluxul meu de lucru, deoarece requi Res mai puține lovituri de cheie.
- Am ‘ am schimbat animațiile pentru a fi ” la clic pe „, în sensul că sunt legate de animațiile gif.
- Nu pot ‘ să vă folosesc YouCompleteMe pe computerul meu de lucru deoarece nu ‘ nu aveți root pentru a instala dependențele, SuperTab este de departe următoarea cea mai bună alegere.
- @mixedmath În cazul meu superTab nu are ‘ nu funcționează.
Răspuns
O astfel de funcționalitate – adică, căutarea fișierului curent ( și toate fișierele deschise) pentru completarea automată, ar trebui să fie activate implicit cu Ctrl+P
:
Puteți merge la n sugestie ext cu Ctrl+N
, p sugestie revioasă cu Ctrl+P
și selectați-l tastând orice literă (care va fi adăugată imediat după sugestie).
Comentarii
Răspuns
Vim are suport pentru finalizarea nativă . Puteți citi despre diferitele completări pe care le acceptă Vim la :h ins-completion
.
În general, pentru toate scopurile pe care le-am găsit, completările ins sunt suficiente pentru placerea mea , cu toate acestea, există unele pluginuri de completare care adaugă mai multă valoare dincolo de ceea ce oferă ins-completări. NeoComplete , YCM (YouCompleteMe) sunt câteva pentru același lucru. Sunt mai avansați în sensul că încearcă să combine diferite tipuri de completări cu mai multă precizie și au, de asemenea, mecanisme avansate de stocare în cache, astfel încât tind să fie mai rapide. YCM merge chiar și în măsura în care funcționează cu compilatoare / utilitare externe pentru a oferi IntelliSense mai bun.
Răspuns
Da, scripturi de completare automată căci vim există. Cea mai bună alegere depinde de limbajul de programare. Deoarece codul dvs. de exemplu este Python, vă sugerăm să aruncați o privire la Jedi . Construiește pe deasupra că există Tu mă completezi , care are și suport pentru alte limbi, dar uneori este văzut ca fiind prea mare. Pentru alte limbi, puteți naviga prin setul lung pe scripturi vim .
Răspuns
În modul inserare, tastați primele două caractere ale unui cuvânt, apoi apăsați:
Ctrl-N to insert the next matching word; or Ctrl-P to insert the previous matching word.
Acest lucru este deosebit de util atunci când introduceți numele variabilelor dintr-un program.
Opțiunea „completă” controlează unde sunt căutate cuvintele cheie (include fișiere, fișiere de etichete, tampoane și multe altele).
Opțiunea „completeopt” controlează modul în care apare finalizarea (de exemplu, dacă este afișat un meniu).
^P
este un IMHO mai natural. În caz contrar, vă mulțumim pentru editare (sper că am dat clic pe butonul din dreapta și ați obținut +2).world,word,wood
și nu invers).Deci,^P
este ultima finalizare utilizată, care este foarte utilă (rareori merg mai departe de 3 articole din listă, chiar și într-un fișier lung).inoremap <C-Space> <C-N>