Vim editor kao IDE za web razvoj

Vim editor kao IDE za web razvoj

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12138
  • Gde živiš: Južni pol

Vim editor kao IDE za web razvoj



Napomena: Izdvojeno i izbačeno iz teme: Aplikacije za web razvoj.

Sadržaj


Web tutorijali
Video tutorijali
Puškice (cheat sheets)
Saveti i trikovi
Alternativne distribucije


Web tutorijali


Getting Started with Vim (2014)



Using Vim for Web Development (2014)



2 Years of Vim and PHP distilled (2012)



Efficent PHP debugging in Vim (2012)



Vim anti-patterns (2012)



Vim for Ruby on Rails (and a sexy theme!) (2012)



TextMate to Vim with training wheels (2011)



Vim for (PHP) programmers (2008)
“VIM for (PHP) Programmers” slides and resources (2007)



Using Vim as a Complete Ruby on Rails IDE (2007)




Nazad na sadržaj

Video tutorijali


Essential Vim Plugins for Web Development (youtube, 2014)



Top Vim Plugins for Web Development (Youtube, 2009)



Vim Powa: Can Your Editor do This? (Youtube, 2006)




Nazad na sadržaj


Puškice


Vim puškica za programere, autor: Michael Pohoresky

]

ViEmu Vi/Vim puškica



WASD Keyboards rasporedi tastature za Vim (querty, U.S.)






Nazad na sadržaj

Saveti i trikovi


Generate Ctags Files for C/C++ Source Files and All of Their Included Header Files (2012)


Nazad na sadržaj

Alternativne distribucije


spf13-vim - spf13-vim is a distribution of vim plugins and resources for Vim, GVim and MacVim. It is a completely cross platform distribution that stays true to the feel of vim while providing modern features like a plugin management system, autocomplete, tags and tons more.

Janus - This is a distribution of plug-ins and mappings for Vim, Gvim and MacVim. It is designed to provide minimal working environment using the most popular plug-ins and the most common mappings.

webvim - WebVim is a vim based distribution targeting JavaScript and Web development.

Cream - A modern configuration of the powerful and famous Vim, Cream is for Microsoft Windows, GNU/Linux, and FreeBSD.

bling.vim - A highly tuned vim distribution that will blow your socks off!


Nazad na sadržaj



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 25 Jan 2004
  • Poruke: 2782
  • Gde živiš: Niš

Odličan post Smile

Vim je vrlo slabo poznat ili korišćen kod nas. Čuo sam da na nekim fakultetima profesori kao odrade tu i tamo neku vežbu u Vimu, ali se brzo pređe preko njega kao 'nedovoljno ozbiljan alat za development'. Mislim da je to mahom zbog manjka fancy GUI-a, mada ipak ne znam kako je stvarno raditi u Vimu nad nekim većim codebase-om, jer sam imao prilike samo da ga isprobam.

Da li postoje pluginovi za code intelligence (intellisense)? Pod tim mislim najviše na pomoć pri refactoringu. Verujem da postoje static analysis (linteri) pluginovi, ali na više mesta sam pročitao da se ljudi oslanjaju na takve stvari, poput IntelliSense u Visual Studiu jer navodno Vim (i/ili Emacs) nemaju takvih stvari.

Drugo, mnogi takođe znaju da komentarišu kako njihov IDE (uzeću opet VS za primer, kao najpotpuniji IDE), ima podršku za automated testing, organizovanje projekata, razvoj UI elemenata. Što se toga tiče, ne znam odakle bih pošao ... da li od poslednjeg 'razvoj UI' koji je isključivo vezan za Windows (.NET runtime?) ili od toga zašto bi ljudi uopšte želeli monolitno razvojno okruženje? Recimo, ja svoj Linux smatram svojim IDE-om. Nije mi ni malo teško da alt-tabujem do terminala i pokrenem neki build process ili odradim commit. I u VS-u su sve to prozori Smile
... doduše moram da priznam da je deployment na Azure bio stvarno u 2 klika i to je super.

Sa druge strane, a verovatno i kao najvažnije, evo već po ko zna koji put želim da isprobam neki noviji programski jezik (npr. Elm ili Elixir), na nekom mini projektu, a to ne mogu iz Visual Studia. Takođe, šta se dešava ukoliko neko radi na nekoliko različitih projekata tokom jednog meseca i to u Pythonu, C# i Haskellu? Svaki put menja razvojno okruženje? IDE-ovi nikada neće biti u hodu sa razvojem novih platformi, pa prema tome je sigurno da ću koristiti neki univerzalni editor jer ću tako makar naučiti da u jednom programu budem produktivan, umesto skakanja sa PyCharma, preko VS-a, na Atom (jer pluginovi) Smile

P.S. @bocke znam da je malo offtopic, ali jesi li probao možda Spacemacs? http://spacemacs.org/



offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12138
  • Gde živiš: Južni pol

Napisano: 08 Okt 2016 17:10

Postoje dodaci za sve. Very Happy Osnovna konfiguracija ima veliki broj opcija koje su korisne za developere, ali najveća moć Vima je u velikom broju dodataka. Najbolje je naći neku od skorašnjih lista i polako po njoj. Smile

Iako je skoro izašao Vim 8 koji donosi neke novine koje bi mogle da dovedu do poboljšanja integracije spoljnih alata za proveru i testiranje. Iako već postoji mali milion dodataka za ovu svrhu, ali sada bi trebalo da budu bolje integrisani.

Inače sve osim za razvoj UI postoje ili ugrađene opcije ili dodaci. Dostupan je i za Linuks (i druge Juniksoide) Windows i Mac OS X (dva glavna Macolika porta - VimR i MacVim).

Nisam probao Spacemacs, ali sam čuo za njega. Ako se ne varam to je jednostavnija konfiguracija za Emacs/XEmacs? Tako nešto je Cream za Vim. Nije ažuriran nekoliko godina, ali bi trebao da šljaka bez problema i sa novijim verzijama.

Još nešto za šta sam čuo, ali nisam probao je Neovim - fork Vima koji pokušava da bude "moderniji" Vim. Šta to konkretno znači ne znam, ali kome klasični Vim deluje pomalo arhaično, možda mu Neovim bude više odgovarao.

Inače, odgovaram malo na preskokce i na brzinu, pošto žurim da nešto završim. Nadam se da nisam zbrljao odgovor zbog toga i da je čitljiv. Smile

Dopuna: 09 Okt 2016 11:14

Nikad nisam razumeo po čemu je intellisense poseban. Postojale su gomile tih keyword completion sistema i pre nego što ga je Visual Studio koristio. Ne, ozbiljno. Ima li neku posebnu opciju? Viđao sam da ljudi govore da neki IDE nema intellisense, iako je isto imao keyword completion.

Što se tiče Vima, postoje dodaci za keyword completion, ali ne znam da li su baš slični "intellisenseu", šta god to značilo.

Ali Vim ima zaista mnogo opcija, od ugrađenih opcija korisnih za developere do naprednog uređivanja teksta na mnogo fleksibilniji način od klasičnih tekst editora ili čak komandi za formatiranje teksta (centriranje, pretvaranje malih u velika slova i obrnuto). Vim može "skočiti" na bilo koju lokaciju u dokumentu kratkim komandama od 2-3 slova. Svaka komanda se može ponoviti n puta ako se stavi n ispred nje. Na primer: 5d briše pet karaktera. Takođe je moguće brisati čitave redove ili čak i kolone. Što se tiče ugrađenih opcija za developere, recimo: u mogućnosti je da skoči na lokalnu ili globalnu definiciju funkcije ili varijable, ili da otvori man stranu za funkciju pod kursorom, može pokrenuti kompajler i pokazati sve greške, ima podršku za ctags, itd.

Što se tiče integracije sa debuggerom, snipeta ala Texmate, keyword completion, to je moguće postići pomoću dodataka. Napr, respektivno: ConqueGDB, vim-snipmate ili ultisnips, YouCompleteMe ili OmniCppComplete.

Ali ko radi na Windowsu i navikao je na Visual Studio, Vim se može koristiti umesto ugrađenog editora. Mislim da uz Vim na Windowsu dolazi i VisVim dodatak za Visual Studio. Uz Vim takođe dolazi i dodatak za Netbeans.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3324
  • Gde živiš: 127.0.0.1

IS je svestan (ili bi bar trebalo da bude) celog projekta (ako je ucitan) pa ce ponuditi metodu iz klase iako sama klasa nije otvorena u editoru, dok ce KC ponuditi samo nativne metode, promenljive i metode/f-je iz trenutnog scope-a.

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12138
  • Gde živiš: Južni pol

Rastafarii ::IS je svestan (ili bi bar trebalo da bude) celog projekta (ako je ucitan) pa ce ponuditi metodu iz klase iako sama klasa nije otvorena u editoru, dok ce KC ponuditi samo nativne metode, promenljive i metode/f-je iz trenutnog scope-a.

Aha. Čak i originalni vi (80-te) je uz pomoć tagova mogao da skače na definicije iz spoljnih dokumenata. Doduše nije imao code completition ili označavanje sintakse.

Za Vim postoje dodaci koji koriste sličan metod (tagove). Recimo, gore pomenuti OmniCppComplete. Ctags koji dolazi uz Vim podržava: Ant, Asm, Asp, Awk, Basic, BETA, C, C++, C#, Cobol, Dos Batch, Eiffel, Erlang, Flex, Fortran, HTML, Java, JavaScript, Lisp, Lua, Make, MatLab, OCaml, Pascal, Perl, PHP, Python, REXX, Ruby, Scheme, Bash, SLang, SML, SQL, Tcl, Tex, Vera, Verilog, VHDL, Vim script i YACC.

YouCompleteMe je pisan u Pythonu i koristi malo drugačiji metod. Nisam ga probao pa ne znam kako tačno funkcioniše.

Inače, što se tiče instalacije dodataka, Vim ima i menadžere dodataka (plugin manager) koji olakšavaju upravljanje dodacima. Lično koristim: Vundle. Drugi popularan menadžer dodataka je Pathogen.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3324
  • Gde živiš: 127.0.0.1

Definicije su opet jedno, a IS drugo. Npr, krenem da kucam sledece:

<?php
$dummy = new DummyClass();
$dummy->exam...


i tu ponudi metodu iz klase DummyClass koja pocinje sa "exam". Ovako nekako:



Dakle - nisam ja otkucao celu metodu pa kliknuo na nju da vidim definiciju, vec mi je IS ponudio sve metode (i iz klase i nasledjene) koje pocinju onim sto sam otkucao.

Dobar IS cak cita i tagove iz komentara - primer je metoda getComponentsQuery koja u komentaru ima tag @deprecated.

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12138
  • Gde živiš: Južni pol

Napisano: 09 Okt 2016 21:55

Svakako, ali ti si u prvom postu pomenuo samo scope. Rekoh da je to opcija koju ima čak i softver iz 80-ih. Ništa specifično.

Što se tiče kompletiranja svih metoda tokom kucanja, to ima gotovo svaka implementacija code completition. Uključujući i gore pomenute:

OmniCppCompletion:
https://www.youtube.com/watch?v=MQy2rVOf-z0

ili YouCompleteMe:


A postoje i drugi pluginovi.

Inače, Vim i sam ima opcije za autokompletiranje, ali one funkcionišu malo drugačije od načina na koji su korisnici VS navikli. Recimo, ima o tome više ovde: Vim 101: Completion Compendium.

Dopuna: 09 Okt 2016 23:23

Jedan od problema sa Vim-om je da ima toliko opcija da čovek svako malo otkrije nešto novo. S jedne strane je to zanimljivo jer ga stalno otkrivaš. S druge strane je malo iritantno jer ispadne da x ili y dodatak možda nije ni potreban jer je slična opcija već ugrađena. Dokumentacija je ogromna. Preko 100 hipertekst dokumenata. Tako da većina ljudi počinje sa nekim od brzih tutorijala, zatim u zavisnosti od vremena i strpljenja, proširuje kroz pretraživanje, recimo, Vim Tips wikija. Postoji i nekoliko knjiga, od kojih su neke besplatne, ali za to je potrebno vreme i koncentracija. A i knjige obično zaostaju nekoliko verzija.

Recimo, jedna od stvari koju sam danas otkrio je da Vim 8 (koji je izašao pre koju nedelju) ima ugrađeni menadžer dodataka. Ne znam još uvek kako funkcioniše i kako se koristi, ali baciću pogled u narednim danima. I opcije za autokompletiranje mi nisu bile poznate. Uvek sam koristio dodatke za to. Ispade, da određena implementacija već postoji od verzije 7.0 (2006).

Ko je trenutno na forumu
 

Ukupno su 744 korisnika na forumu :: 73 registrovanih, 5 sakrivenih i 666 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 11neco11, aca018, airsuba, aleksandar_ng, alkatraz080, amstel, Arhiv, Bahuss, Bane san, bios1, boracbl1389, bozomotika, CrazyDiablo, Cvijo_ue, CyberWarrior, damirZR, dane007, Dannyboy, DARKMEN22, DENIRO2, doom83, dragonserbia, Dzoni Stek, exluppis, flash12, goran.vvv, Gvozdena reč, gvozdenavolja, Iwo Jima, Jovo93, Korapg, Lithia, louderick, matorigile, Mercury, Mikulino, milijarder, MilosKop, monomah, NIx Car, Novi2, ostoja, Outis, Pakito93, piston79, play4fun, powSrb, prle122, proka89, rovac, Sass Drake, sekretar, sevenino, SlobaBgd, SOVO515, Srbin do koske, Srki94, stegonosa, svarun, tomigun, TwinHeadedEagle, vasa.93, victoria, VJ, Vlada1389, vranjanac29, Vzor50, Wiesel092, WS2, xzedx, zlatko81, zoidbergs, zoranzota