Onko mahdollista käyttää VIM-automaattitoimintojen nimiä, muuttujia jne., Kun sitä käytetään ohjelmointiin?

Monet IDE: t täydentävät funktioiden, muuttujien, menetelmien nimet jne. automaattisesti käyttäjän tyyppeinä. Parhaimmat täydentävät nimiä sekä kielen sisäänrakennetun kirjaston että sen perusteella, mikä on jo määritelty saman ohjelman muissa tiedostoissa.

Esimerkiksi kun kirjoitan seuraavia Python-ohjelma:

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

rivi eatF näyttäisi automaattisesti eatFood() käytettävissä olevana automaattisen täydennyksen vaihtoehtona.

Onko Vimillä tämä ominaisuus? Jos näin on, kuinka voin ottaa sen käyttöön?

Vastaa

Vimissä on monia erilaisia automaattisen täydennyksen makuja. Yksi tapa voi olla käyttää SuperTab-välilehteä . Tämä tarjoaa tavan käyttää välilehtien täydennystä enemmän tai vähemmän milloin tahansa. Tämän avulla voit painaa Sarkain , kun olet kirjoittanut sanan osittain saadaksesi täydennysluettelon. Esimerkiksi kirjoittamalla eatF ja sen jälkeen Sarkain laajentaaksesi kohtaan eatFood.

Huomaa : nämä kuvat linkittävät kaikki esimerkkigifeihin toiminnassa.

mg src = ”https://i.stack.imgur.com/dVuOT.png” alt = ”supertabomplutions” title = ”Napsauta nähdäksesi gif”>

Vimillä on erinomaiset muut vaihtoehdot. Sinun tulisi lukea :h ins-completion nähdäksesi erilaisia sisäänrakennettuja täydennysvaihtoehtoja. Vim ”s CtrlX Ctrl O ja pythonia käyttävä laajennus, kuten jedi , voi antaa täydellisen maun. Jedit voidaan konfiguroida antamaan dokumentaatio omni-täydennyksestä (tämän tekee CtrlX Ctrl O ). Sitten valmistumisen ehdokkaiden dokumentaatio ilmestyy jaettuun ikkunaan.

mg src = ”https://i.stack.imgur.com/etSIu.png” alt = ”ctrlxctrlo complete” title = ”Napsauta nähdäksesi gif”>

Samankaltaisten laajennusten, mutta eri vaihtoehtojen käyttö johtaa kaikenlaiseen käyttäytymiseen. Esimerkiksi on mahdollista, että sinun ei tarvitse pyytää automaattista täydennystä (jos sitä etsit). Sen sijaan, kun olet kirjoittanut jonkin verran sanan kirjaimia (esimerkiksi 2 tai 3) sanaa, laajennus voi yritä tarjota älykkäästi mahdollisia täydennyksiä valikossa.

mg src = ”https://i.stack.imgur.com/gtNK0.png” alt = ” kirjoita kuvan kuvaus tähän ”title =” Napsauta nähdäksesi gif ”>

Lyhyt vastaus on siis kyllä! Mutta määritysprosessi voi olla hieman monimutkainen. Ajattelen sitä askeleena vim-masteroinnin pitkässä portaikossa.

Kommentit

  • Olen ’ kokeillut niitä kaikkia ja palaan aina SuperTabiin, se ’ on vähiten häiritsevä.
  • Pidän myös todella YouCompleteMe-laajennuksesta, koska se ehdottaa kirjoittajan tyyppiä ja voit joko valita ehdotuksen tai jättää sen huomiotta. Kyllä, visuaalisesti sitä on vaikea sivuuttaa, mutta se on hyvin häiritsevä työnkulussa, koska se Requi res vähemmän avainviivoja.
  • Olen ’ muuttanut animaatiot ” napsauttamalla ” siinä mielessä, että ne on linkitetty gif-animaatioihin.
  • En voi ’ käyttää YouCompleteMe-tietokonetta työni tietokoneessani, koska Don ’ ei ole juuria riippuvuuksien asentamiseen, SuperTab on ylivoimaisesti seuraava paras valinta.
  • @mixedmath Minun tapauksessani superTab ei ’ t toimivat.

Vastaa

Tällainen toiminnallisuus – eli nykyisen tiedoston haku ( ja kaikki avoimet tiedostot) automaattista täydennystä varten, tulee olla oletusarvoisesti käytössä Ctrl+P:

kuvakaappaus käytössä olevasta automaattisesta täydennyksestä

Voit siirtyä n ext -ehdotukseen kohdassa Ctrl+N, p voimakas ehdotus Ctrl+P ja valitse se kirjoittamalla mikä tahansa kirjain (joka liitetään heti ehdotuksen jälkeen).

Kommentit

  • Toimittajalle (Jasper): Haluan todennäköisemmin kirjoittaa uudelleen jotain, jonka olen kirjoittanut viime aikoina, en jotain, jonka ’ ll kirjoitan tulevaisuudessa tai joka on tiedosto. Siksi ^P on luonnollisempi IMHO. Muuten kiitos muokkauksesta (toivottavasti napsautin oikeaa painiketta ja sait +2).
  • Jep, sain nämä kuvitteelliset internetpisteet 🙂 Ajattelin aina, että ehdotusluettelo lajitellaan aakkosjärjestykseen. ..
  • @Jasper esiintymisjärjestys se on (ainakin minulle varmasti katso myös yllä: world,word,wood eikä päinvastoin).Joten ^P on viimeinen käytetty valmistuminen, joka on erittäin kätevä (menen harvoin yli 3 kohdetta luettelossa, jopa pitkässä tiedostossa).
  • protip : inoremap <C-Space> <C-N>

vastaus

Vimillä on tuki täydennykselle natiivisti . Voit lukea erilaisista täydennyksistä, joita Vim tukee, osoitteesta :h ins-completion.

Yleensä kaikkiin löydettyihin tarkoituksiin täydennykset ovat tarpeeksi mieleisekseen on kuitenkin joitain valmistumislaajennuksia, jotka tuottavat enemmän arvoa kuin mitä täydennykset tarjoavat. NeoComplete , YCM (YouCompleteMe) ovat muutamia samoja. He ovat edistyneempiä siinä mielessä, että he yrittävät yhdistää erityyppisiä suorituksia tarkemmin, ja heillä on myös edistyneitä välimuistimekanismeja, joten ne ovat yleensä nopeampi. YCM työskentelee jopa siinä määrin, että se työskentelee ulkoisten kääntäjien / apuohjelmien kanssa tarjotakseen paremman IntelliSense-palvelun.

Answer

Kyllä, automaattiset komentosarjat sillä VIM on olemassa. ”Paras” valinta riippuu ohjelmointikielestäsi. Koska esimerkkikoodisi on Python, suosittelen katsomaan Jedit . Rakenna sen päälle. Täydennät minut on olemassa, mikä tukee myös muita kieliä, mutta joskus sitä pidetään liian suurena. Muille kielille voit selata pitkää sarjaa vim-skripteissä .

Vastaa

Kirjoita lisäystilassa sanan pari ensimmäistä merkkiä ja paina sitten:

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

Tämä on erityisen hyödyllistä syötettäessä sanaa muuttujien nimet ohjelmassa.

”Täydellinen” -vaihtoehto määrittää, mistä avainsanoja haetaan (sisältää tiedostoja, tunnistetiedostoja, puskureita ja muuta).

”Täydellinen” -vaihtoehto ohjaa, miten valmistuminen tapahtuu (esimerkiksi näytetäänkö valikko).

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *