Yritän käyttää Vimiä yhä enemmän, kun pystyn. Yksi suurimmista otteistani Vimin ja Aptanan kaltaisen IDE: n välillä on kyky tehdä automaattinen sisennys .
Onko koodilla automaattinen muotoilukeino (HTML, CSS, PHP), joten se on oikein sisennetty?
Jos näin on, kuinka asennat tämän VIM: ään? ymmärrä laajennuksia paljon. Yritin tarkistaa tätä säiettä ja se hämmentää minua enemmän: Kuinka muuttaa VIM: n automaattisen sisennyksen käyttäytymistä?
Kommentit
- Voisitteko selventää mitä kieltä yritätte tehdä sisennykseen? Odotan, että jos sitä ’ tukee jo vim, sen pitäisi olla jo automaattinen, ilman lisätoimia. Jos ei, sinun pitäisi pystyä hankkimaan laajennus.
 - mieluiten HTML / css ja php
 
Vastaa
Koko tiedoston sisennys automaattisesti:
gg =G 
Selitetty:
-  
gg– siirry tiedoston alkuun -  
G– siirry tiedoston loppuun -  
=– luetelmakohta 
kommentit
- Voisitko hajottaa sen? Mikä on g tyypillisesti itsessään? ja = G?
 - @Chris näkee muokkauksen
 - Hieno vihje, en koskaan tiennyt tätä. Se tekee kuitenkin roskaa bashilla.
 -  Kuinka 
gg=Gsuoritetaan komentotulkista avaamatta tiedostoa? - @takeshin selitä se paljon tarkemmin, onko meidän kirjoitettava se tiedostoon vai suoritetaanko se terminaalissa
 
vastaus
En tiedä olemassa olevan koodin automaattista muotoilua, mutta jos kirjoitat koodia ja tarvitset automaattista sisennystä:
-  
:set autoindent(tai:set ai) ottaa automaattisen sisennyksen käyttöön - Ctrl – d poistamaan sisennyksen (AKA outdent) koodisi
 - Sarkain tai välilyönnit sisennykseen – käytän henkilökohtaisesti sarkainta
 -  
:set tabwidth=4(tai:set tw=4) ohjaa, kuinka monta välilyöntiä välilehden tulisi sisentää koodi -  
>>-komento sisentää nykyisen rivin. Jos lisäät sen etuliitteeseen luku, sano4>>, niin se sisennyttää 4 riviä nykyisestä rivistä alkaen. -  Samoin 
<<-komento poistaa rivin sisennyksen 
Toivon, että tämä antaa sinulle hyvän alun.
Kommentit
-  Sisällytä olemassa oleva koodi automaattisesti käyttämällä 
={motion}normaalitilassa – esim.=Gsisentää kaikki koodit nykyiseltä riviltä tiedoston loppuun.==sisentää nykyisen rivin. -  varmista myös, että luetelmakohdelaajennuksia ladataan (esim. 
:filetype indent on) - set tw = 4 asettaa TEXTWIDTH-arvoksi 4
 
Vastaa
 Automaattinen sisennys *.sh 
 Lisää vain seuraavat rivit kohtaan ~/.vimrc 
filetype indent on set smartindent autocmd BufRead,BufWritePre *.sh normal gg=G 
Kommentit
- Koskeeko tämä vain muokkausta vimillä tai kaikilla muokkaustyökaluilla?
 -  
~./vimrckoskee vain VIM-editoria. 
Vastaa
Tämä laajennus helpottaa koodin muotoilua . Se integroi ulkoiset muotoilijat ja sisältää vim-luetelmakohdan toiminnot.
https://github.com/Chiel92/vim-autoformat
Huomaa myös muotoilun ja sisennyksen välinen ero. Sisentäminen korjaa vain välilyönnin ennen jokaista riviä, kun taas muotoilu käsittelee myös muita asioita, kuten välilyöntejä operaattoreiden ympärillä jne.
Vastaa
 Luo / muokkaa ~/.vimrc -tiedostoa ja lisää seuraava rivi: 
set autoindent 
Kommentit
- Tämä ei lisää mitään olemassa oleviin vastauksiin …
 -  @jasonwryan Oikeastaan Hai Vu ’ vastauksessa mainitaan 
:set autoindent, joka sallii automaattisen sisennyksen vain nykyiselle tiedostolle. Lisää se kohtaan.vimrc-tiedosto sallii automaattisen sisennyksen pysyvästi. - Rahul ’ -vastaus on jo maininnut kommenttisi, joten ajattele ennen julkaisua
 
Vastaus
 vimin automaattinen muotoilu / sisennys toimii melko hyvin. Laita tämä rivi ensin ~/.vimrc -kansioon: 
filetype plugin indent on 
 Avaa sitten tiedosto vimissä ja kirjoita gg=G 
 (gg siirtää kohdistimen ensimmäiselle riville. = suorittaa sisennyskomento. G käskee sisennyskomentoa suorittamaan täältä viimeiselle riville.) 
 Jos automaattinen muotoilu näyttää todella huonolta, kuten jokainen rivi on vain jätetty sisennykseen, suorita :scriptnames ja tarkista, onko .../indent/html.vim (tai mikä tahansa käyttämäsi kieli) on luettelossa. Jos ei, varmista, että ~/.vimrc on oikein. Tai jos suoritit :filetype plugin indent on vim-komentoriviltä, sinun on avattava tiedosto uudelleen :e 
Vastaus
Jos haluat tehdä bash-komentosarjan uudelleen, ehdotettu gg = G-ratkaisu ei toimi hyvin VIM: ssä riippumatta siitä, asetatko komentosarjan shell-tyyppiseksi. Sen sijaan tämä toimii;
 shfmt -i 2 -ci script.sh 
Tunnistaa kaikki rivit 2 välilyönnillä ja korjata muuten muotoilu.
Vastaa
Bashissa teen tämän:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}") declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3 
tämä eliminoi kommentit ja lisää komentosarjan ”bash way” uudelleen. se ei toimi, jos komentosarja sisältää HEREDOCS-tiedostoja, mutta jos teet tämän:
source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}") declare -f Zibri|head --lines=-1|tail --lines=+3 
se toimii minkä tahansa käsikirjoituksen kanssa, mutta koko komentosarja sisennetään 4 välilyönnillä. voit vapaasti muokata, mutta mainitse nimeni komentosarjassa ja lähetä se! : D
kommentit
-  Uskon, että kysymyksestä voi puuttua asia; Uskon, että OP halusi sisäviivata joukkoa viivoja, mutta se halusi automaattisen sisennyksen VIM: ssä useilla kielillä. Sivumainoksena saatat pystyä saavuttamaan tämän hieman suoremmin 
sed-toiminnolla, jos haluat:cat script_to_be_reindented.sh | sed 's#^# #g'(er, no, SO-merkintä korvaa välilyönnit sarkaimella, mutta saat asian) -  Kaikki tämä vastaus on lisätä välilyöntejä rivin eteen ja nollata kaikki kohdistukset. Sama (lukuun ottamatta merkintöjä) voidaan tehdä 
sed -i 's|^[ \t]\+| |' script.sh(eli 4 välilyöntiä| |sisällä, mutta tämä verkkosivusto suodattaa useita välilyöntejä yhdeksi) .