Lehetséges-e vim automatikus kiegészítés funkciónevek, változók stb., Ha programozásra használják?

Sok IDE automatikusan kitölti a függvényneveket, változókat, metódusneveket stb. A legjobbak kiegészítik a neveket mind a nyelv beépített könyvtárának, mind pedig annak alapján, amit ugyanazon program más fájljaiban már meghatároztak.

Például, amikor a következőket gépelem be: Python program:

hungy = True def eatFood(food): pass if hungry: eatF 

a eatF sor automatikusan megmutatja a eatFood() elérhető automatikus kiegészítésként.

A Vim rendelkezik ezzel a képességgel? Ha igen, hogyan tudom engedélyezni?

Válasz

Az autocomplete sokféle ízű a vim-ben. Ennek egyik módja lehet a SuperTab használata. Ez lehetőséget nyújt a fülek kitöltésének többé-kevésbé bármikor használatára. Ez lehetővé tenné a Tab lenyomását, miután részben beírta a szót a teljes listához. Például írja be a eatF, majd a Tab a következőre történő kibontáshoz: eatFood.

Felhívjuk figyelmét, hogy : ezek a képek valamilyen cselekvő gif-re mutatnak.

mg src = “https://i.stack.imgur.com/dVuOT.png” alt = “supertab Complions” title = “Kattintson a gif megtekintéséhez”>

A Vimnek kiváló egyéb lehetőségei vannak. Olvassa el a következőt: :h ins-completion a beépített befejezési lehetőségek sokfélesége. A vim “s CtrlX Ctrl O használata a egy python-tudatos plugin, például a jedi teljes ízt adhat. A Jedi beállítható úgy, hogy dokumentációt adjon a teljes kiegészítésről (ezt CtrlX Ctrl O teszi ). Ezután a befejező jelöltek dokumentációja egy megosztott ablakban jelenik meg.

mg src = “https://i.stack.imgur.com/etSIu.png” alt = “ctrlxctrlo befejezése” title = “Kattintson a gif megtekintéséhez”>

Hasonló pluginek, de különböző opciók használata mindenféle viselkedéshez vezet. Lehetséges például, hogy nem kell kérnie az automatikus kiegészítést (ha ezt követi). Ehelyett, miután beírt egy bizonyos számú betűt (mondjuk 2 vagy 3) egy szót, egy plugin képes próbáljon intelligensen felajánlani egy menüben lehetséges kiegészítéseket.

mg src = “https://i.stack.imgur.com/gtNK0.png” alt = ” írja ide a kép leírását “title =” Kattintson a gif megtekintéséhez “>

Tehát a rövid válasz egy igen! De a konfigurációs folyamat kissé bonyolult lehet. Úgy gondolom, hogy ez egy lépés a vim elsajátításának hosszú lépcsőjén.

Megjegyzések

  • Én ‘ mindegyiket kipróbáltam, és mindig visszatérek a SuperTab-hoz, ez ‘ a legkevésbé tolakodó.
  • Nekem is nagyon tetszik a YouCompleteMe beépülő modul, mivel ez írja be a gépelést, és választhat vagy figyelmen kívül hagyhat javaslatokat. Igen, vizuálisan nehéz figyelmen kívül hagyni, de a munkafolyamatomban nagyon nem tolakodó, mert requi res kevesebb billentyűleütés.
  • Én ‘ az animációkat ” -re változtattam a , abban az értelemben, hogy a gif-animációkhoz vannak kapcsolva.
  • ‘ Nem használhatom a YouCompleteMe-t a munkám számítógépén, mert Don ‘ nincs gyökér a függőségek telepítéséhez, a SuperTab messze a következő legjobb választás.
  • @mixedmath Esetemben a superTab nem ‘ nem működik.

Válasz

Ilyen funkcionalitás – azaz az aktuális fájl keresése ( és az összes megnyitott fájlt) az automatikus kitöltéshez alapértelmezés szerint engedélyezni kell a Ctrl+P paranccsal:

képernyőkép a használatban lévő automatikus kiegészítésről

A n ext javaslatra a , a p heves javaslat Ctrl+P és válassza ki bármely betű beírásával (amely közvetlenül a javaslat után lesz csatolva).

Megjegyzések

  • A szerkesztőhöz (Jasper): Nagyobb valószínűséggel szeretnék újra olyat írni, amelyet nemrég írtam, nem pedig olyat, amit ‘ írok a jövőben, vagy ami a fájl. Ezért a ^P természetesebb IMHO. Különben köszönöm a szerkesztést (remélem, hogy rákattintottam a jobb gombra, és megkapta a +2-et).
  • Igen, megkaptam azokat a képzeletbeli internetes pontokat 🙂 Mindig azt gondoltam, hogy a javaslatok listája ábécé szerint lesz rendezve. ..
  • @Jasper megjelenési sorrendje ez (legalábbis számomra biztosan lásd fent is: world,word,wood és nem fordítva).Tehát a ^P az utolsó használt befejezés, ami nagyon hasznos (ritkán lépek tovább a listán 3 elemnél, még egy hosszú fájlban is).
  • protip : inoremap <C-Space> <C-N>

Válasz

A Vim natív módon támogatja a befejezést . A Vim által támogatott különféle kiegészítésekről a :h ins-completion címen olvashat.

Általánosságban elmondható, hogy minden általam talált célra elegendőek a betöltések. vannak azonban olyan befejezési beépülő modulok, amelyek több értéket képviselnek, mint amit a kiegészítések kínálnak. A NeoComplete , YCM (YouCompleteMe) ugyanaz. Haladóbbak abban az értelemben, hogy megpróbálják pontosabban kombinálni a különböző típusú kiegészítéseket, emellett fejlett gyorsítótárazó mechanizmusaik is vannak, így általában gyorsabbak. Az YCM még a külső fordítókkal / segédprogramokkal is együttműködik, hogy jobb IntelliSense-t biztosítson.

Válasz

Igen, automatikus befejező szkriptek mert vim léteznek. A “legjobb” választás a programozási nyelvtől függ. Mivel a példakódod Python, javaslom, hogy nézd meg a Jediket . Építs rá. Ehhez létezik Te teljesítesz , amely más nyelveket is támogat, de néha túl nagynak tartják. Más nyelvek esetén a vim szkripteken a hosszú készletet böngészheti.

Válasz

Beszúrási módban írja be a szó első pár karakterét, majd nyomja meg a gombot:

Ctrl-N to insert the next matching word; or Ctrl-P to insert the previous matching word. 

Ez különösen akkor hasznos, ha változók neve egy programban.

A “teljes” opció vezérli a kulcsszavak keresését (fájlokat, címkefájlokat, puffereket és egyebeket tartalmaz).

A “teljes opció” opció szabályozza, hogy a befejezés hogyan történik (például, hogy megjelenik-e egy menü).

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük