Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Haridas - Vim kao vaš IDE

Vim kao vaš IDE

Da bi pratio ovaj članak, čitalac treba da ima bar osnovnu ideju o tome kako da koristi Vim i njegove komandne modove. Ili, ako ste novi sa Vimom, možete da pročitate moj prvi blog da znate kako sam došao u Vim i njegove suštinske razlike sa ostalim urednicima.

Evo ja pokušavam da objasnim kako da učinim Vim produktivnijim dodavanjem neke dodatne funkcije VIM dodataka. Posle ovog podešavanja Vim će imati većinu funkcija koje nudi savremena IDE. Ja sam python programer, tako da je ovo Vim podešavanje malo usmereno na Python stranu. Ali ja uključujem opšte dodatke samo da bi ih učinio pogodnim za većinu programskih jezika.

Podešavanja instalacije i konfiguracije su opisana na kraju, ako želite da ih vidite idite ovde Setup Vim from Scratch.

Osnovni Vim ili Vi instalacija dolazi sa većinom GNU / Linux mašina su više nego dovoljni za dobra produktivna dela. I Vim ima ima plugin strukturu, tako da možemo da produžimo vim kroz dodatke. Dodatne komponente dodatno poboljšaju produktivnost i smanjuju mnogo ključnih udara.

GNU / Linux-ova konzola ili terminal baziran na Vimu ima neko ograničenje da pokaže dobre fontove i boje. Dakle, morate da instalirate GTK verziju Vima (Gvim). Gvim vam daje sve lepe funkcije za vaš Vim. Samo pogledajte moje Konsole i GTK Vim snimke.

Vim na KDE Konsole

vim-on-console

Gvim

Gvim image
UPDATE (16/June/2013):-

Nakon korišćenja GVIM-a neko vreme ,vratio sam se u Konsole jer je
pogodnije za mene . Ali jedan problem sa terminalom je da samo podržava samo 256 boja .
Ali, ne treba da brinete zapravo to je više nego dovoljno . Na komandnom modu na vim staze
Ova komanda će da omogući 256 boja - " : set t_Co = 256 " .  
Ova specijalna postavka nije potrebna za podrazumevane teme , ali ako hoćemo da
koristimo nove teme sa više boja i fonta onda te teme ne mogu ispravno raditi na terminal modu . Tako da ćete sa ovim podešavanjima biti sigurni da će to raditi i da će graciozno degradirati karakteristike .
Moja .vimrc se ažurira sa ovim promenama , tako da ćete ga dobiti sa github.

Ovde je spisak dodataka koje sam podesio na svom Vimu. On obuhvata i temu dobre boje. Sva ova vim podešavanja su tamo na mom Github projektu. Pred kraj sam opisao kako da iskoristite moj github projekat da dobijete sve ove funkcije na vašem Vimu. Pre toga prvo razumite funkcionalnosti i koristite slučajeve različitih dodataka, a onda možemo da idemo na instalacioni korak.


Teme


Uzgred

U mom .vimrc fajlu ja sam onemogućio korišćenje arrow keys-a u Vim komandnom modu. To me je primoralo da naučim vim klasične hjkl (arrow keys), to je stvarno radilo za mene. Sada ne tražim ključnu ploču strelica više čak ni u Vimovom režimu uređivanja...

Ukoliko želite da promenite ovo ponašanje, jednostavno uklonite sekcije ispod sa mog .vimrc fajla.

/images/vimrc1.jpg

Slično tome, možete jednostavno da prođete kroz moj .vimrc fajl da vidite druge opcije, pokušao sam da dokumentujem svoj .vimrc fajl što je više moguće. Možete da se igrate sa njim da bi ga učinili pogodnijim za sebe.

1...MinibuferExplorer (File Tabs)

Ovo su kao tabovi na drugim IDE. Možemo videti otvorene datoteke na vimu pomoću ovog dodatka. Podrazumevano, moramo da koristimo :ls da vidimo otvorene bafere. Dakle, ovaj plugin čini veoma zgodnim da vidite otvorene datoteke kao tabove..

Vim ima malo drugačiji koncept o Tabs u poređenju sa drugim IDE. Vim ima podršku za kartice po difoltu. Ta kartica se razlikuje od normalnog IDE Tab-a. Zapravo razlika je u tome što su Vim kartice kolekcija otvorenih bafera (ili datoteka). Dakle, možemo da ih smatramo grupom naslova u drugom IDE kontekstu.

Ali većinu vremena zahtevamo samo jednu vim karticu i set otvorenih bafera (fajlova). MinibuferExplorer će vam pomoći da vidite te otvorene bafere kao virtuelne kartice. Pogledajte snimak ekrana ispod.

/images/minibufexplorer.jpg

Možete da koristite CTRL + h/j/k/l ili CTRL + w za navigaciju oko različitih razdvojenih prozora i mini buffer Explorer-a. Da biste otvorili skriveni bafer na vertikalnom podeljenom prozoru, samo idite na MinibuferExplorer i izaberite bafer datoteke (možete da koristite normalne hj tastere da horizontalno pređete na MiniBufferExplorer) a zatim pritisnite v. ili pritisnite s da biste otvorili bafer ili datoteku na horizontalnom podeljenom prozoru.

Nazad na teme

3. Syntastic (Kontrolor Sintakse)

Još jedan vrlo koristan dodatak za sve programske jezike. Ovaj dodatak će vam pomoći da zadržite sintaksu programa tačnom - kao što je auto correct u drugim IDE. Ovaj paket je jedan opšti, tako da ga možemo vrlo lako proširiti podrškom za nove jezike. Po defaultu podržava više programskih jezika. Dakle, ovaj plugin je pod moranje za Vim.

Na primer, ako uređujete RST fajl (Svi moji blog postovi su reStructured formatu teksta) i napravili ste neke greške u sintaksi u njemu, a onda ga sačuvali, posle operacije čuvanja Syntastic Plugin će proveravati da li ima sintaksnih grešaka na vašoj datoteci automatski i pokazati lokaciju greške i njegov razlog veoma uredno.

Bacite pogled na deo RST datoteke na ovom blog postu. Napravio sam grešku u sintaksi u Image Tag-u,

/images/syntastic.jpg

Slično Synstastic će vam pomoći da pratite standardne metode kodiranja definisane različitim programskim zajednicama. Na primer, kod Pajton ima PEP8 standard, pa dok sam pisao piton kod, ako ga nismo pratili, Synstastic će vam pokazati greške. Posle nekog vremena bi naučili PEP8 standard bez ikakvog dodatnog rada :).

Nazad na teme

4. Snipmate (kod šabloni)

Jednostavan način da se izbegne kucanje nekog ponavljajućeg niza kodova. Na primer, u Python-u, mi inicijalizujemo klasu preko typingclass po ključnoj reči, imenu, itd .. Umesto sve te drame, možemo samo da popunimo podrazumevani skup klasne strukture iz snipmate-a kucanjem cl <tab>. Isprobajte njega otvaranjem python test fajla.

Snimpate dodatak pruža mnogo takvih prečica za različite programske jezike. Takođe možemo da definišemo svoje isečke. Za veb programere bi to bilo vrlo lako, ako imamo isečke za <table>, <div> tag dopune. Podrazumevano Snipmate ima podršku za različite HTML oznake. Proverite snippets folder(~/.vim/bundle/snippets/) da biste videli sve dostupne isečke za određeni jezik ili za označavanje.

Više primera;

vim test.py
#!/bin/python
cl

Nakon kucanja cl pritisnite tab i vidite magiju pune klasne strukture. Slično možete da definišete sopstvene isečke. Na primer, za for <tab> da se proširi za izjava o vašem jeziku.

Nazad na teme

5. Fugitive (Git)

Ovaj plugin je za upravljanje git spremištem unutar samog Vima. Obezbeđuje set kratkih komandi, koje se direktno mogu koristiti u Vim komandnom modu da se vide i rade operacije u vezi GIT-a. Ne moramo da idemo van uređivačke okoline da upravljamo onim stvarima.

Takođe, ima veoma lep git diff prikaz unutar vima samog, to je jako lepo da koristite.

Da biste videli sve dostupne git komande iz ovog dodatka kucati: :G<tab>, pod uslovom da je trenutna putanja pod gitom.

Nazad na teme

6. NerdTree (File Browser)

Ovo će prikazati strukturu vašeg direktorijuma projekta u obliku stabla. Pruža mnogo prečica za navigaciju kroz izvorno stablu lako. To je još jedan zajednički dodatak za IDE. Proverite ispod slike da vidite kako to izgleda.

Prečice -mapirao sam sledeće ključeve u .vimrc fajlu da pokažem i sakrijem Nerdtree kad god je potrebno.. Možete ponovo mapirati to po sopstvenom izboru.

/images/nerd_tree.jpg

Za otvaranje i zatvaranje Nerdtree pritisnite CTRL + n. Takođe, možete da vidite druge dostupne komande za ovaj plugin kucanjem ESC + :NERD <tab>

Nazad na teme

7. NerdCommenter (Komentarišući)

Ovaj dodatak je samo da se komentariše multilinijski kod blokovi zajedno . U normalnom vimu ne postoji takva stvar(Update), tako da ako želimo da komentarišemo više linija moramo da prođemo kroz svaku liniju.

Ovaj plugin to čini zgodnim, tako da samo treba da izaberete blok koda pomoću miša ili tastature (Vim vizuelni režim) i otkucajte sledeće komande da ga komentarišete ili otkomentarišete.

Komentarišite ceo izabrani blok kod: <leader>cc,

Smenjujte komentarisano stanje:<leader>c<space>

Update: Pogledajte komentare ovog posta, postoji način da komentariše iz više linija u samom podrazumevanom Vimu, ali to nije zavisno od programskog jezika .

Nazad na teme

8. Rope

Rope je specijalni dodatak za Python projektnu navigaciju. Većina IDE imaju sličnu funkciju da vidite definiciju funkcije ili klase tako što ćete kliknuti na nju ili preko nekih prečica sa tastature.

Podrazumevano, ako se otvori Python projekat u Vimu neće imati podršku za ovu funkciju. Kada pokušavate da koristite ovu funkciju prvi put, konopac će zatražiti da kreirate Ropeproject pod trenutnim direktorijumo. I imajte specifične konfiguracije za Rope projekat u ./.ropeproject folderu po tekućem direktorijumu.

Plugin nam pomaže da lakše kreiramo podešavanja, posle toga možemo koristiti ovaj dodatak da bismo videli definiciju svih funkcija ili klasa dolazeći pod putem rope projekta.

U mom Vim sam mapirao <leader>j za :RopeGotoDefinition. Na primer

import os
import sys

Držite kursor na vrhu operativnog sistema i pritisnite j ili vrstu: RopeGotoDefinition, Vim će vas odvesti u operativni sistem datoteka iz sistemske putanje. Slično možemo ići na definicije pitona jednog entiteta dolazeći pod putem rope podešavanja. Možete da ažurirate podešavanja za uže za ovaj projekat python-a iz ./.ropeproject/config.py datoteke.

Ovaj dodatak je takođe potreban za savremenu IDE listu funkcija :)

Nazad na teme

9. Tagbar (Class Browser)

Ovaj dodatak je sličan NerdTree, ali umesto listing direktorijuma strukture projekta je spisak objekata i funkcije unutar imena datoteke. Kao klase browser u drugim IDE.

/images/tagbar.jpg

Mapirao sam <leader>l da otvorim tagbar i istu kombinaciju da je zatvori.

Nazad na teme

10. Jednostavni parovi

Ovo je jednostavan dodatak za auto complete jednog citata, dvostrukog citata, zagrade. Ovo je veoma zgodno za čuvanje nekoliko key press-ova.

Nazad na teme

Drugi

Ovaj odeljak je razgovor u vezi već postojećih odličnih opcija izgraditi unutra sa vimom. Možete me smatrati početnikom u ovoj oblasti :) Ako ste u potrazi za učenjem naprednijih detalja vim editora, ne treba da tražite na Google-u, možete ga pronaći u okviru njegove same dokumentacije.

Da vidite svu dokumentaciju kucajte ESC + :help. Dokumentacija je veoma velika, pa Vim obezbeđuje pretraživačku opciju kroz celu svoju dokumentaciju. Da biste videli dokumentaciju o temi, kucajte ESC + :help <topic>

Na primer,

da biste videli o dokumentaciji skokova, kucajte: jumps , kucajte : ESC + :help jumps

Napisao sam gore primer, jer je to još jedna zanimljiva karakteristika potrebna za moderne IDE . Stvar je u tome što je već napravljena sa Vimom.

  1. Jump List

    Našao sam slučajno ovu funkciju. To je za skakanje u različite fajlove i u isto vreme ima opciju za skakanje nazad kroz sve fajlove na koje smo naišli.

    Da bi razumeli ovu funkciju - Ako smo koristili plugin da vidimo definiciju funkcije koje nisu u trenutnoj datoteci, ono će otvoriti novi bafer u Vimu i odvesti vas do tog fajla. Šta ako želimo da se vratimo na isto mesto ili na prethodni fajl.? Ovo zahteva skok nazad operaciju. Pritisnite CTRL + o, da možete da vidite magiju. Pritisnite tastere CTRL + <tab> da idete napred opet.

    Postoji mnogo više stvari oko jumplist, Vim interno čuva spisak naših lokacija u različitim datotekama. Možete videti to kucanjem: skokovi :jumps. Različite instance Vima će deliti istu listu skokova.

    Slično tome, mnoge stvari su tamo da se uče. Ovaj drugi deo se neće završiti ovde :) Ali za sada sam ovde gotov.

Dakle, objašnjenje vim funkcije je sada gotovo, hajde da pogledamo kako da podesimo vim da ima sve ove gore navedene funkcije i učinimo Vim spremnim da se produži sa novim dodacima.

Nazad na teme

Setup Vima od nule

Svi potrebni paketi su tu u mom vim github projektu. Stavio sam sve te postavke i dodatke na standardni način. Dakle, možete da produžite ili ih uklonite ako je ikada potrebno.

Pre nego što to uradite, molimo Vas da napravite rezervne kopije vaših trenutnih vim postavki sa vašeg home direktorijuma.

Možemo početi instalaciju tako što ćemo izabrati Git spremište,

$git clone git://github.com/haridas/Dotfiles.git

$cd Dotfiles

zadržao sam sve potrebne dodatke kao Git submodules. Tako ćemo dobiti nove izmene iz plugin projekata ažuriranjem submodule projekta. Dok klonira moj glavni repo, neće preuzimati submodules ili spoljašnje projekte GIT-plugina. Ali mi imamo sva podešavanja i puteve u svojim projektima GIT-a. Tako da lako možemo da donesemo trenutni stabilni kod sa svih spoljašnjih projekata. Da biste to uradili, kucajte ispod komandi unutar vašeg Dotfiles foldera.

$pwd
<path to gitproject>/Dotfiles

$git submodule init
$git submodule update

Sada imate sve potrebne fajlove da se počne sa Vimom, sledeća stvar je da povežem svoje fajlove GIT-a kao vašim vim fajlovima. Da biste to uradili kreirajte meku vezu od Vim sistemskih datoteka, a onda im ukažite na moje datoteke Git spremišta. Evo koraka.

$cd
$ln -s <path-to>Dotfiles/vim-files/vim .vim
$ln -s <path-to>Dotfiles/vim-files/vim/vimrc .vimrc

To je to, sada otvorite vim, možete da vidite sve funkcije opisane su na raspolaganju, osim komandne t. Jer zahteva kompilaciju. Kompilacijski korak je veoma jednostavan. Pratite me,

$ cd <path-to>Dotfiles/vim-files/vim/bundle/command-t/ruby/command-t
$ ruby extconf.rb
$ make

sastav će uspeti samo ako imate gcc instaliran, a vaš Vim ima ruby podršku. Da biste proverili ruby podršku, otvorite vim i kucajte,

:ruby 1

Ako ne postoji greška onda imate ruby podršku sa vimom. Najnovija verzija Vima ima podršku za velike dinamičke jezike kao što su Python, Ruby i drugi. Tako da ne zadaje bol u glavi.

Ako podrška dinamičnog jezika nije tamo sa Vimom, onda morate da instalirate kompletan vim sa vašim package menadžerom.

Ako koristite na Debianu baziran sistem možete pratiti ovu komandu. Druge platforme takođe imaju istu opciju pomoću svog alata paket menadžera.

$apt-cache search python | grep vim
$apt-cache search ruby | grep vim

Iz liste instalirajte bilo koji od GUI zasnovanih paketa.

Nazad na teme

Neke Vim prečice

In normal mode
==============

:23,30m200  -- Move a section of code to another line.

df, (reverse dF,)   -- Delete all characters till , on the current line.

I  -- Go to beginning of the line as insert mode.

$   -- In command mode, go to end of the line.

gg  -- Go to beginning of the file

G  -- Go to end of the file.

CTRL + o, CTRL + i  -- Jumps back and forward, very useful.

CTRL + h/j/k/l  -- Move the selection to different split windows and
MinibuferExplorer.

CTRL + F    -- Page down scroll.

CTRL + B    -- Page back scroll.

Povratak na teme

Sadržaj teme

Svi ovi teški radovi za postavljanje vašeg vima bi bilo korisni za vas samo kada shvatite činjenicu da će vam Vim osnovna editovanja uštedeti mnogo vremena i povećati produktivnost. Za to vam ne traži ranije iznete plugin karakteristike. Dodatne komponente će smanjiti samo nekoliko pritisaka na tastere putem čega ćemo dobiti neka poboljšanja produktivnosti. Ali to vas neće odvatiti od drugih urednika u Vimu. Vim podrazumevane karakteristike su više nego dovoljne da vas privuku da koristite VIM. Nadam se da ste shvatili moj osećaj. :)

Uživajte u VIM hakerisanju.

Published (Last edited): 17-06-2013 , source: http://haridas.in/vim-as-your-ide.html