Forum » Programiranje » To vim or not to vim - v RESNIH firmah
To vim or not to vim - v RESNIH firmah
7982884e ::
Sicer pa roko na srce, IDE ti ne nudi ničesar resnega, kar ti ne bi tudi vim s plugini. Lintanje, autocompletion, fuzzysearch, edino kak debugger za .net manjka, kolikor vem. Ostalo je vse ali nesmiseln bloatware ali pa navadne bergle.
refactoring? navigacija po call sitih itd.? dober IDE "pozna" codebase tudi semanticno, tezko bo nek plugin to delal.
BigWhale ::
V kaksni zabavni industriji (kjer so tudi veliki denarji, razvojni cikli pa precej hitrejsi), imam sicer manj izkusenj. Ampak tudi tam dvomim, da resujejo ad-hoc stvari, kjer imajo na razpolago zgolj "vim".
Z vimom se resuje probleme v produkciji spletne strani Fuflja d. o. o..... Pa se tam nas je malo sram, ce mormo to kdaj narest.
Jaz sem recimo delal na Upravi za Javna Placila, kjer je bil sistem postavljen na HP-UX serverjih in aplikacija razvita v Cju in Cobolu, je blo treba kdaj uporabiti vi (vim-a ni blo :D)? Med testiranjem ja. Za razvoj ga pa nisem potreboval, ceprav so nekateri se vedno besno vztrajali na njem. Brez nekih pametnih razlogov.
Mimogrede, a ste vedl, da lahko ven iz VIMa pridete tut z ":!/bin/bash"?
Prosim, ce nehas ljudem otezevati zivljenja... :))))
Zgodovina sprememb…
- spremenil: BigWhale ()
mihor ::
refactoring?
Takole. :)
navigacija po call sitih itd.?
No, CTAGS obstaja že lep čas in ni omejen zgolj na vim.
Zgodovina sprememb…
- spremenilo: mihor ()
Invictus ::
Vsak freak vi/vim si danes v normalnem IDE lahko vklopi VIM Mode .
Če MS ga je implementiral v Visual Code Editorju...
Če MS ga je implementiral v Visual Code Editorju...
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
Smurf ::
Vim je brezčasen. ;) Navadil sem se nanj, seveda. Kaj pa je zate sodoben IDE? Visual Studio/Code? Imam in uporabljam VsVim/vscodevim. IntelliJ? Imam in uporabljam Vim Emulator. Eclipse? Imaš viable, vrapper, ni da ni. Ne vem, kateri večji IDE še ostane sploh? Sicer pa roko na srce, IDE ti ne nudi ničesar resnega, kar ti ne bi tudi vim s plugini. Lintanje, autocompletion, fuzzysearch, edino kak debugger za .net manjka, kolikor vem. Ostalo je vse ali nesmiseln bloatware ali pa navadne bergle.
Ja za VS in IntelliJ bi rekel, da sta sodobna IDEja. Naceloma VIM manjkajo vse funkcije, kjer more IDE razumeti kodo, in ne biti zgolj urejevalnik besedila. Se pravi refactoring, iskalnik kje se uporablja funkcije/parametri, kaksen pameten search, zaklucevanje kode, itd. Po mojem mnenju je VIM tudi najmanj intuitiven (da ga bos obvladal rabis vec casa kot pri alternativah).
Itak sem osebno mnenja, da je bolj pomemben tvoj workflow in da ga razumeš v nulo, namesto da samo klikaš po IDE-ju in ne veš točno, kaj se dogaja v ozadju. :) Vse, kar pa res rabim od nekega IDE-ja, je dober text editing (vim to ima) in dostop do konzole (vim to ima). To je to.
Ampak vsakemu svoje.
Kaksen je pa primer "da ves kaj se dogaja v ozadju"? Recimo pri refactoringu bos naredil redkeje napako pri ostalih IDEjih kot pa pri VIMu. Dvomim, da je uporabljanje kateregakoli IDEja zgolj kot "text editor" najbolj optimalen nacin.
mihor ::
Ja za VS in IntelliJ bi rekel, da sta sodobna IDEja. Naceloma VIM manjkajo vse funkcije, kjer more IDE razumeti kodo, in ne biti zgolj urejevalnik besedila. Se pravi refactoring, iskalnik kje se uporablja funkcije/parametri, kaksen pameten search, zaklucevanje kode, itd. Po mojem mnenju je VIM tudi najmanj intuitiven (da ga bos obvladal rabis vec casa kot pri alternativah).
No, vim kot tak je pač text editor. Za moje pojme najboljši. In ima sistem pluginov in toolov, ki nadomestijo "razumevanje" kode. Pri tem ni odveč poudarit, da te tak sistem vsaj malenkost nagoni razumet ozadje delovanja teh featurejev, recimo da ctags preprosto sparsa kodo in jo poindexira. To dela tudi vs, in to sproti, na kar nimaš vpliva, ctags pa sprožiš, kadar želiš.
Če smo pikolovski niti vs zares ne razume kode v vseh primerih. Imam realen problem na jobu, ko intellisense pač ne dela za določeno knjižnico, ker imamo iz legacy razlogov naloženo tako 32 kot 64 bitno različico in potem vs bebec tega preprosto ne zmore dojet in je cel kup kode rdeče. :)
Mimogrede, zaključevanje kode je za moje pojme bergla in mi je v napoto, ko kodiram, tako da si to "pomoč" izklopim. Ko si enkrat izkušen v kodiranju, ti ni noben problem imet v glavi tistih par nezaključenih oklepajev, za kakšne malo večje štrene pa ti itak pomaga avtomatsko indentiranje. :)
Kaksen je pa primer "da ves kaj se dogaja v ozadju"? Recimo pri refactoringu bos naredil redkeje napako pri ostalih IDEjih kot pa pri VIMu. Dvomim, da je uporabljanje kateregakoli IDEja zgolj kot "text editor" najbolj optimalen nacin.
Recimo zgoraj naveden primer ctags. V vs na klicu neke metode stisneš F12 in te že kar vrže na definicijo. V vimu pa moraš najprej vedet, kaj sploh želiš (se pravi želim skočit na definicijo metode). Potem moraš vedet, da ni neke magične palčke za to, ampak da rabiš tool, recimo ctags. Ctags poindexira vso kodo, ki mu jo podaš, in zgenerira .tags datoteko, v kateri so vse definicije. Že to te samo po sebi nauči, kako zadeva deluje. Prav tako vidiš, da ta klic ctags traja nek čas in ti je jasno, zakaj je vs tako počasen IDE, saj to indeksiranje (in še mnogo podobnih zadev) dela, kadar se mu zljubi. Pri vimu imaš povsem svobodno odločitev, kdaj ga boš klical.
Ali pa recimo git. V vs imaš že integrirano podporo in samo klikaš. Če delaš v vimu, lahko lepo kličeš command line ukaze, s katerimi posledično spoznaš delovanje gita.
Mimogrede, kje misliš, da bi prej naredil napako pri refaktoriranju v vim napram ide? Sploh, če te vim sproti nauči, kaj se dejansko naredi pri avtomatskem refaktoriranju? V vs samo poklikaš v resharperju and you're none the wiser. :)
Zgodovina sprememb…
- spremenilo: mihor ()
Smurf ::
No, vim kot tak je pač text editor. Za moje pojme najboljši.
Se strinjam, vim je (dober) text editor.
In ima sistem pluginov in toolov, ki nadomestijo "razumevanje" kode. Pri tem ni odveč poudarit, da te tak sistem vsaj malenkost nagoni razumet ozadje delovanja teh featurejev, recimo da ctags preprosto sparsa kodo in jo poindexira. To dela tudi vs, in to sproti, na kar nimaš vpliva, ctags pa sprožiš, kadar želiš.
In ravno zato ker je text editor, sepa kot ide. Recimo v tem primeru ne vidim hude prednosti zakaj bi indeksiral na zeljo, namesto sproti. Kolikor sm bral reviewe na internetu o ctagu (osebno ga nisem uporabljal), naj bi bil tudi precej preprost v primerjavi z intellisense/vs tooli.
Če smo pikolovski niti vs zares ne razume kode v vseh primerih. Imam realen problem na jobu, ko intellisense pač ne dela za določeno knjižnico, ker imamo iz legacy razlogov naloženo tako 32 kot 64 bitno različico in potem vs bebec tega preprosto ne zmore dojet in je cel kup kode rdeče. :)
Sure, noben IDE ni perfekten. Meni ga tudi uspe hitreje sesuti kot kaksen vim.
Mimogrede, zaključevanje kode je za moje pojme bergla in mi je v napoto, ko kodiram, tako da si to "pomoč" izklopim. Ko si enkrat izkušen v kodiranju, ti ni noben problem imet v glavi tistih par nezaključenih oklepajev, za kakšne malo večje štrene pa ti itak pomaga avtomatsko indentiranje. :)
Ne vidim kaksna bi bila lahko slabost, ce ti program sam zaklucuje. Pac pomaga ti, da si hitrejsi. Edini minus, ki ga vidim, da je mogoce v nasprotju s tvojo prakso. Ampak pomoje v idealnem svetu prilagodis svoje prakso tako, da uporabljas orodje cimbolj efektivno.
Recimo zgoraj naveden primer ctags. V vs na klicu neke metode stisneš F12 in te že kar vrže na definicijo. V vimu pa moraš najprej vedet, kaj sploh želiš (se pravi želim skočit na definicijo metode). Potem moraš vedet, da ni neke magične palčke za to, ampak da rabiš tool, recimo ctags. Ctags poindexira vso kodo, ki mu jo podaš, in zgenerira .tags datoteko, v kateri so vse definicije. Že to te samo po sebi nauči, kako zadeva deluje. Prav tako vidiš, da ta klic ctags traja nek čas in ti je jasno, zakaj je vs tako počasen IDE, saj to indeksiranje (in še mnogo podobnih zadev) dela, kadar se mu zljubi. Pri vimu imaš povsem svobodno odločitev, kdaj ga boš klical.
Se pravi pri VIMu je zadeva bolj zahtevna. A ni to potem minus? Ok te nauci kako deluje logika indeksiranja. Ampak to ti ne prinese nobenih plusov pri kvaliteti kodi ali hitrosti programiranja. Namesto tega si lahko tudi preberes kaksen clanek, na to temo.
Ali pa recimo git. V vs imaš že integrirano podporo in samo klikaš. Če delaš v vimu, lahko lepo kličeš command line ukaze, s katerimi posledično spoznaš delovanje gita.
Spet ne vidim minusa, vecino casa rabis le poklikati. Za tiste redke primere pa lahko uporabis tudi plugin za VS in uporabis command line ukaz.
Mimogrede, kje misliš, da bi prej naredil napako pri refaktoriranju v vim napram ide? Sploh, če te vim sproti nauči, kaj se dejansko naredi pri avtomatskem refaktoriranju? V vs samo poklikaš v resharperju and you're none the wiser. :)
Definitivno pri VIM. Pri VS ti bo lepo izpisalo kaj zelis popraviti in pokljukas, saj ne klikas na slepo.
Ne vem no. Meni se tale splosen argument "VIM je precej kompliciran za uporabu, zato se ga moras zelo dobro nauciti, in zato ne bos delal napak", neprepricljiv.
hruske ::
@pegasus - ne da VIM dela toliko IO. Na sistemu, ki ima počasen IO ali je IO obremenjen, VIM zmrzne za par sekund, ko shraniš fajl, ker naredi fsync. Lepo od njega, ampak mene včasih to tepe, ker preveč rad shranjujem.
Kalkulator nove omrežnine 2024 - https://omreznina.karlas.si/Kalkulator
hruske ::
Ne vidim kaksna bi bila lahko slabost, ce ti program sam zaklucuje. Pac pomaga ti, da si hitrejsi. Edini minus, ki ga vidim, da je mogoce v nasprotju s tvojo prakso. Ampak pomoje v idealnem svetu prilagodis svoje prakso tako, da uporabljas orodje cimbolj efektivno.
Meni se to stalno dogaja v PyCharmu. Tisti tečen problem je da želiš narest nekaj, potem pa editor "pametno" scimpra nekaj drugega. Tipično hočem zamenjat vrstni red vrstic, kjer imam statement čez več vrstic. Editor preveč "razume" kodo in mi premakne cel statement gor. Nisem tega želel.
Vsaj nekaj koristnega od tega posta - če drugačno kombinacijo tipk stisnem, dela točno to kar želim. Predvsem je vprašanje a je res treba znat toliko enih bližnjic na pamet. :D
Kalkulator nove omrežnine 2024 - https://omreznina.karlas.si/Kalkulator
Zgodovina sprememb…
- spremenilo: hruske ()
Smurf ::
Vsaj nekaj koristnega od tega posta - če drugačno kombinacijo tipk stisnem, dela točno to kar želim. Predvsem je vprašanje a je res treba znat toliko enih bližnjic na pamet. :D
Samo verjetno je ta del neresljiv. Vec kot imas bombonckov, ki ti optimizirajo hitrost, vec bliznjic rabis. Oz. druga pot je da poskusa IDE ugotoviti kaj hoces (kar pa prinese to, da lahko kdaj zgresi).
mihor ::
Se pravi pri VIMu je zadeva bolj zahtevna. A ni to potem minus? Ok te nauci kako deluje logika indeksiranja. Ampak to ti ne prinese nobenih plusov pri kvaliteti kodi ali hitrosti programiranja. Namesto tega si lahko tudi preberes kaksen clanek, na to temo.
Glej zadnji citat spodaj.
Spet ne vidim minusa, vecino casa rabis le poklikati. Za tiste redke primere pa lahko uporabis tudi plugin za VS in uporabis command line ukaz.
Saj niti ne rabiš plugina, lahko lepo v konzoli vse urediš. Ampak dobro, to je že git debata. :)
Ne vem no. Meni se tale splosen argument "VIM je precej kompliciran za uporabu, zato se ga moras zelo dobro nauciti, in zato ne bos delal napak", neprepricljiv.
Pa saj vim ni res nek bavbav glede kompliciranosti. Edino, kar ga loči od ostalih toolov glede kompliciranosti, je, da ima drugačno filozofijo editiranja in da je bil v osnovi namenjen za uporabo s tipkovnico. Kar je oboje super.
Kar je pri tem "komplicirano", je to, da moraš pač naštudirat workflow in si primerno nastavit vse toole, kar pa je pri IDE že integrirano (hence the name). V svoji srži je to namreč debata o unix filozofiji. In jaz sem s celim srcem njen zagovornik. :) Se me ne da prepričat, da je nek napihnjen ide boljši od posameznih, izpiljenih programov, ki so vsak top-shit za svoj namen. Lahko je ta ide povsem zadovoljiv za svoj namen. Lahko je celo zelo primeren za neko specifično delovno okolje. Nikoli pa ne bo tako fleksibilen in hiter kot vim z ekosistemom pluginov/toolov.
hruske ::
Vsaj nekaj koristnega od tega posta - če drugačno kombinacijo tipk stisnem, dela točno to kar želim. Predvsem je vprašanje a je res treba znat toliko enih bližnjic na pamet. :D
Samo verjetno je ta del neresljiv. Vec kot imas bombonckov, ki ti optimizirajo hitrost, vec bliznjic rabis. Oz. druga pot je da poskusa IDE ugotoviti kaj hoces (kar pa prinese to, da lahko kdaj zgresi).
Ja, in točno ta problem ti vim oz. vi še bolj reši - praktično na vseh UNIX-like sistemih ga najdeš. Še busybox ma implementacijo.
Kalkulator nove omrežnine 2024 - https://omreznina.karlas.si/Kalkulator
7982884e ::
refactoring?
Takole. :)
navigacija po call sitih itd.?
No, CTAGS obstaja že lep čas in ni omejen zgolj na vim.
eden prvih komentarjev:
Refactoring is WAY more than pattern matching, that's why IDE's are needed to automate this in a safely manner.
kot sem napisal, ce IDE ne pozna semanticne strukture - za katero je tudi potreben tipiziran jezik - potem je kakrsnokoli refaktoriranje, ki sega drugod po codebasu, tvegano.
isto z navigacijo; dvomim da mi zna nek plugin delat to kar zna kak IntelliJ v Javi, ker preprosto nima dovolj informacij in ker je to dobesedno eno izmed jedr konkurencne prednosti IDEjev kot je IntelliJ
c3p0 ::
Vim kritizirajo ponavadi tisti, ki jim je nekdo razložil kako se doda tekst in kako se nato pride ven iz vima. Tu pa se znanje že konča.
Prisegajo na nano ali pico, iz stare garde se najde še kak joe-aš in pa emacs users, ti so pa iz drugega planeta in se ne smejo mešat z normalno publiko.
Prisegajo na nano ali pico, iz stare garde se najde še kak joe-aš in pa emacs users, ti so pa iz drugega planeta in se ne smejo mešat z normalno publiko.
Invictus ::
Koliko je pa še Emacs popularen?
Sam sem to v zadnje uporabljal sredi 90tih .
Sam sem to v zadnje uporabljal sredi 90tih .
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Vim kot cpp IDEOddelek: Programiranje | 3051 (2331) | Mavrik |
» | Kako pa vi programirate?Oddelek: Programiranje | 2585 (1459) | jype |
» | C++ IDE on WindowsOddelek: Programiranje | 7492 (6584) | noraguta |
» | Programerski softwareOddelek: Programiranje | 3669 (2794) | Qushaak |
» | V katerem editorju programirate?Oddelek: Programiranje | 4956 (3730) | terryww |