30 éves a Vim!

Címkék

HB!

:wq

Hozzászólások

"...és akkor most ezt itt... hupsz... *diszkrét pánik* :!q  Namégeccer."

Igazából mentés nélkül kilépni ZQ-val egyszerűbb. A vim támogatja, a vi, nvi, elvis nem. A ZZ-t viszont mindegyik tudja, ami a :wq parancsnak felel meg. Én hozzáadtam a vim/neovim konfigomhoz a ZA-t is, amit :qa parancsra drótoztam, ami lényegében ugyanazt csinálja, mint a :wq, de nem csak az aktuális buffert, fület menti, hanem az összes megnyitott és megváltozott dokumentumot, úgy lép ki. Az Esc-ért se kell kinyúlnom, mert állandóra át van konfigurálva a Caps Lock helyére.

Az fzf mellett a legjobb, leghasznosabb szoftver evör ez a vim, és nem is a featureset miatt, hanem az interakciós filozófia miatt. Én minden más szoftvert is ilyen modálisan, meg vim billentyűkkel irányítok, Zathura, Vifm, Alacritty, neomutt, Bash/readline, calcurse, htop-vim/htim, imv/sxiv, mpv, less-t használó scriptjeim, tiling WM (sxhkd, bspwm, dwm, SwayWM, i3wm), stb.. Még Firefoxban is Tridactyl plugin megy, ami megint csak vim-es irányítást tesz lehetővé. Az is igaz, hogy a legtöbb felsorolt progi nem teljesen vim-kompatibilis, még a sima vi billentyűinek is csak egy részét ismerik, meg nem mindegyik modális, de az is elég nagy segítség, hjkl, g, gg, G, szóköz, bwe, ?/ keresés, nN, stb., q, Q, ZQ, ZZ, szóval az alapokat általában mindegyik támogatja kisebb eltérésekkel, ha nem, akkor meg általában bekonfigurálhatók a hiányzó billentyűk (pl. mpv, readline).

Az eredeti vi-t viszont nem annyira szeretem. Túl korlátos, nem működik a gg, ZQ, nem töröl a backspace, hülyén néz ki a sorszámozás, nem támogat kijelölésmódot, rendes vim után nagyon kényelmetlen, hogy egy csomó minden hiányzik. Mostanra a vim, neovim megnyerte a klasszik editor wart. Már az Emacs-t használók is általában 99%-ban Evil-móddal használják a kedvenc editorukat, és még Visual Studio Code-osok és Sublime, Notepad++, Notepadqq-t használók körében is népszerű valamilyen vi/vim plugin használata, Mac-hipszterek körében dettó.

Mikor Windows elé kell ülni, kifejezettem fájdalmas, hogy a legtöbb szoftver nem támogatja ezt. Jó, a GVim oda is feltehető, meg ott lehet a WSL, de az nem az igazi. Oltári visszalépés toolbarokra, menükre, ikonokra kattintgatni, egérért kinyúlkálni, lelassít, nem hatékony. Mintha hátrakötött kézzel kéne használni a gépet.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧

Én ezzel többé-kevésbé egyetértek (kivétel az "editor war" cucc: használjon mindenki azt, ami jól esik neki. És mivel, itt a környezetemben - rajtam kívül - senkinek nem esik jól a vim, nem hiszem, hogy az "editor war" nyerhető lenne bármelyik számára is).

Van viszont egy kérdésem: Milyen keyboardot használsz? Azért kérdezem, mert én az enyémmel (QMK, Anne Pro 2, Escape -> Caps Lock, és még egy csomó egyéb tweak) nem vagyok teljesen kibékülve. Abszolút megbízhatatlan.   

A legjobban utált utolsó mentsvár... boldog szülinapot karakterküldözgető őskövület. :-s

Meg, amikor apokalipszis idején, csak egy 33.6-os modemmel lehet majd betárcsázni a gonosz mainframe-be, ami irányítja a Skynet-et és azon keresztül lelőni, mert a Skynet első lépése az volt, hogy felszámolt minden kommunikációs csatornát! De valahol, ellenállók kis csoportja talált egy modemet, egy működő telefonvonalat, meg egy rést a pajzson!

Azt mondod, túl sok ilyet néztem? :D :D :D

trey @ gépház

Jelentem, 1200-as csomagrádión (időosztásos jellege erőteljesen nehézkessé teszi a valós idejű terminálhasználatra) a vi már necces volt.
Ott ed-et volt célszerű használni, a terminál képének áthozását nem volt érdemes kivárni. Na ehhez képes a vi és főleg a vim a kényelem netovábbra.

Aggregátor ...

Volt néhány évtizeddel ezelőtt egy afrikai rádióamatőr, amelyik SSB-n létesített az összeköttetést Európa felé.
Eléggé vételhatáron jött, ment vissza hozzá egy QRO kérés (növeld a kimenőteljesítményedet).

Határozottan jobb lett a vétel, de az is hallatszott, hogy erőteljesen liheg a mikrofonba.

Hát igen, a CW sok szempontból ügyes és már Samuel bácsi óta (~180 éve) ismert. Mondjuk én DFCW-párti vagyok, mert sokkal hatékonyabb a klasszikus CW-nél. Hátránya, hogy ez a CW adónál/vevőnél bonyolultabb, SSB-re hajazó elektronikát igényel, továbbá hasonlóan csilingel, mint az RTTY, azaz nem hallás alapján fogod levenni. QRSS esetén viszont előszeretettel használják (ott szemmel veszik) éppen a hatékonysága miatt.
A CW-t mára sok helyen váltotta a keskeny digi módok valamelyike, amik tovább növelték az átvitel hatékonyságát. Viszont a CW romantikáját nem pótolják.

Hatékonyságra egy jó példa az EME (Föld-Hold-Föld) összeköttetés, amire ilyen szép antennarendszert is építettek: http://dl7apv.de/
Ma fogsz egy nagyobb Yagi-t, vállad fölé tartod, aztán bele a 100 wattot JT65-tel és társaival, vevőoldalon szintén jelfeldolgozás, majd a hibajavítás netovábbja és megvan az összeköttetés. Nem kell a fenti antennaerdő ahhoz, hogy 760 000 km távolságot megtevő, félúton igen rossz hatékonysággal visszapattanó jelet megfelelően tudd venni.

Sokáig utáltam. Aztán az egyik távoli szerveren csak az volt. Beletettem pár órát, hogy alapszinten megismerjem és azóta barátságban vagyunk. Messze nem ismerem minden lehetőségét, eléggé alapszinten megyek vele. De amire kell, azt könnyen meg tudom benne csinálni, mindenhol az alapértelmezett konzolos text-editorom lett.

Most már a nano-t utálom jobban.

Ha a pók csípésétől Pókember leszek, akkor igazán megcsíphetne már Mészáros Lőrinc!

A YouTube-on vannak nagyon jó vimet alapszinten oktató videók, csatornák, vim-konferenciás előadások. Ezt a cheatsheet-et is lehet használni. Plusz amit írtam, hogy eleinte a vim gyári dolgait használni csak, kurzormozgató billentyűk nélkül, ugyanis sok kezdő ott esik bele hibába a vim tanulásánál, hogy mindjárt az első perctől széthekkelik, VSCode-ot meg Notepad++-t faragnak belőle, és magát a vim-et nem tanulják meg. Kell neki időt adni, míg az ember meg nem szokja, át nem áll rá a gondolkodása. Eleinte nehéznek, kényelmetlennek tűnik.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧

Ahol egy visudo, crontab immunis az EDITOR=vi ; export EDITOR sorokra, azt a rendszert ki kell dobni. Ha meg nem, akkor semmi gond, hisz ezek a sorok mindig benne vannak a .profile-omban.

(Mondjuk nvi, de az alapok azonosak.)

Én se szeretem, se a nano-t, se az mcedit-et. Oka: hülyére szabott default billentyűk. Jobban tudom helyette ajánlani a micro-t, nice editor-t. Esetleg Emacs, uemacs, mg, de azoknak meg a tanulási görbéje majdnem olyan meredek, mint a vi/vim-é. Valamint Joe, jed, ha valakinek Wordstar-klón kell, de ezeket is majdnem ugyanolyan nehéz megtanulni szerintem.

Ezt félretéve a nano is használható, de át kell konfigurálni, normálisabb gyorsbillentyűk, színek, kódszínezés bekapcsolása, stb., az se csak olyan keveset tud, mint első indításnál gondolná valaki a default beállítások láttán. Illetve ha nem csak tty/terminál van, akkor a GUI-sok között szóba jön még Notepadqq, VSCode(ium), gedit, Geany, Bluefish, Atom, Kate, Commodo Edit, stb.. Ha valakit nem zavar, hogy nem FOSS, akkor Sublime, UltraEdit. Esetleg, ha IDE kell, akkor Netbeans, Eclipse és társai.

De aki megszokta a vim-et, az nem fogja elengedni. Villám gyors, mivel csak egy TUI program, szinte 0 erőforrásigény, azonnal vágódik a képernyőre, scriptekbe és más shell toolok közé könnyen integrálható. Igazi svájcibicska ezt leszámítva is, mert IDE-nek, terminal multiplexernek, pager-nek, batch renamernek, és sok minden másra is használható a vim értő kezekben. Emacs nem különben, az egy komplett OS önmagában, terminál emulátorostól, multiplexerestől, fájlkezelőstől, mailkliensestől, SSH kliensestől, stb.. Kevés ilyen svájcibicska megoldás van, ami ennyire hasznos, talán még fzf, less, ffmpeg, imagemagick, sox, pandoc, gnuplot tűnik ilyennek (esetleg dc, bc, calc, mpv-mplayer), mindent meg lehet velük oldani, igaz meredek tanulási görbe, de aki megtanulja használni, az nem lesz többé más bloat szoftverekre rászorulva, mint Handbrake, OBS, Audacity, stb.. Ráadásul ezek ilyen 30+ éves toolok, kb. újabb 30 év alatt se fognak sokat változni, nem az, hogy fel kell ugorni mindig a legújabb hájpvonatra és mindig új dolgokat megtanulni, ráadásul nem csak Linuxra vannak, hanem univerzálisan minden OS-re elérhetőek, még konzolos szerver OS-ekre is. Elsőre lyukkártyának tűnnek, mert fejben kell tartani hozzájuk egy csomó gyorsbillentyűt, CLI kapcsolót, stb., sokat kell man-t, tutort nyálazni, de megszokható, utána meg évtizedekig kamatozó tudás.

Ilyenek a prognyelvek is. Állandóan jönnek új hype-oltak, anno a Java milyen divatos volt, ma már nem nagyon foglalkozik vele senki, 1-2 fejlesztő. Amilyen népszerű most a Rust, Go, Swift, Scala, stb., kicsit ezek is fellángolnak, de x éve múlva sehol se lesznek, ezt garantálom. Már a Perl, PHP se olyan divatos, mint előtte, mikor boldog-boldogtalan abban gányolt. És lehet a C, C++-t nem szeretni, hogy így átláthatatlan, úgy low level, amúgy szar, nem secure, stb.., de 35-50 éve velünk vannak, aki anno mindjárt beletette a munkát, azoknak mai napig nem csak használhatóak, de még lesznek évtizedekig. Nem szeretem, de ilyen még a Fortran, Lisp is esetleg, mai napig használt ilyen-olyan formában ezek is kiállták az idő próbáját. Talán a Python, JS marad meg ilyen univerzálisnak még a jövőben.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧

Az 1-2 fejlesztő költői túlzás volt. A lényeg, hogy ahhoz a mérethez képest, ami régen volt jellemző, hogy boldog boldogtalan Java-ban tolta, azt tanulta, mindenki Java fejlesztőt keresett, ahhoz képest elenyésző már. Nyilván vannak akik még ebből élnek, meg elvétve cégek is keresnek Java fejlesztőt, ha valami régi Javában gányolt projektjüket kell karban tartani, de a hájphullám már rég elmúlt. Nézz meg akármilyen fejlesztői szavazást, akármilyen programozó oldalon, a használt nyelveknél, vagy valami git-es statisztikát. Az összes kódmérethez képest elenyésző már a Java aránya.

Nyilván egy nyelv sose hal ki, máig vannak, akik Fortranban meg Cobolban programoznak, de azokat se mondanám felkapott nyelvnek, visszaszorultak extrém rétegterületekre.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧

Az összes kódmérethez képest elenyésző már a Java aránya.

Ne tetézd! :)

https://insights.stackoverflow.com/survey/2021#section-most-popular-tec…

Minden harmadik fejlesztő használt Javát az elmúlt egy évben, vagy tervez használni a következőben. Egyedül a JS, HTML/CSS, SQL és Python előzi meg népszerűségben. Ebből első körben ki is dobhatjuk a HTML-t és az SQL-t, mert ezek nem általános célú programozási nyelvek, illetve az adott területen kb. lehetetlen megkerülni őket. Marad a JS, Python és a Java, ebben a sorrendben.

anno a Java milyen divatos volt, ma már nem nagyon foglalkozik vele senki, 1-2 fejlesztő.

Ezt miből szűrted le?

Én egyáltalán nem látom ezt, az elmúlt kb. 10 évben szinte csak java-ban készülő projekteket láttam. Most hirtelen két kivétel jut eszembe, volt egy projekt, ami .net/C# alapon készült, és volt egy két hetes proof of concept, ami valami Azure felhős API-t próbált használni, egy már nem emlékszem, milyen MS technológiával, lehetett C# vagy más is. Minden más valami java-s cuccra épült és java programozókból állt az összes backend fejlesztő csapat.

Ha az elmúlt 2,5 évben történt hirtelen valami változás, arról nem tudok, mert mostanában nem szoftverfejlesztőkkel dolgozom, de a haverjaim nem említették, hogy hirtelen elfogyott volna a munkájuk, vagy valami.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Pedig ha megtanulod használni, meglátod, hogy nem szar. Eleinte tűnik annak, mert kontra intuitív, nem tűnik logikusnak, nehéz átlátni, megjegyezni a módokat, billentyűket. Fura, míg az ember meg nem szokja. Én is elég nehezen tanultam meg, többször neki kellett futni. Aki még csak most tanulja a vim-et, annak a tanácsaim:
1) ne definiáljon a konfigban egyéni billentyűket, ne használja a kurzormozgató nyilakat, PgUp, PgDn, Home/End, stb. hagyományos billentyűket, ne használjon egeret, felejtse el, mindent vim-módjára tanuljon meg megoldani
2) kerülje mindenféle spéci vim plugin használatát, mindenre a beépített, gyári megoldást tanulja meg használni, egyébként lassú lesz az átállási folyamat
3) nem árt, ha az ember tud gépírni, a kettő tudás együtt kamatoztatható igazán, mikor nem kell lenézni a billentyűkre se

Elsőre a vim-nek a logikája elég kitekert, szokni kell, kicsit olyasmi, mint pálcikával enni. Sokféle szövegszerkesztési feladatot át kell fogalmazni benne. Tehát nem notapad módjára kell használni, én nem is text editornak hívom, hanem text processornak, és mivel nem a hagyományos text editorokra hasonlít, hanem inkább egyfajta interaktív sed-re. A másik előnye a vim megtanulásának, hogy egy csomó más progi is tudja a vim-billentyűket, ami univerzális skill lesz, meg ha tudod használni a vim-et, nem fog gondot okozni a vi, ex, ed, sed használata se, ha valamelyik gépen csak ez lenne fenn. Persze, ritka ez már, meg modemes kapcsolatot se használ senki, de azért még mai napig hasznos tudás, pl. kikötsz valami egzotikus Unix/BSD rendszer előtt, csomagokat telepíteni nem lesz jogod, vagy nem tudod hogyan kell, csak vi-jal vagy ed-del lehet megoldani mindent, nem veszik el az ember, ha ismeri ezeket.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧

Azért ez gondolom megszokás és ízlés kérdése is. Nemrég voltam vizsgázni, de nagy megdöbbenésemre egy amerikai (vagy angol?) billentyűzetkiosztással rendelkező laptopot adtak. Kínszenvedés volt, és még némi időt is veszítettem a billentyűk keresgélésével. (És pl. nem vagyok benne biztos, hogy bármiben rosszabb [nekem] a [, ], { és } karaktereket a magyar billentyűzetről gépelni, mint amerikairól. Mondjuk azt is elismerem, hogy vim esetén egyes esetekben jobb lehet az amerikai kiosztás, bár pl. a 0 és $ szerintem pont jobb a magyarban, ti. a 0 bal oldalt van, a $ meg jobbra, ami illik a sor elejéhez és végéhez; az angolban pont fordítva, a 0 van jobbra, a $ meg balra...)

Segíthet az is, de nem követelmény. Annyi, hogy ha másmilyen nyelvű kiosztást használ az ember, akkor néhány írásjel átkerül más billentyűkre, kettős pont, pontosvessző, aposztróf, idézőjelek, perjelek, dollárjel, stb., és ezeket máshol kell nyomni, de a vim-et épp úgy meg lehet ezekkel is tanulni. A vim billentyűk nagyja úgyis csak a [0-9a-zA-z] karaktereket használja főleg, ami egyforma bármilyen billentyűzeten (z/y felcserélése érinti csak egy kicsit, vagy ha valaki nagyon egzotikus kiosztást használ, francia nyelvterületről azerty, vagy cirill, dvorak, stb.).

US kiosztás szerintem akkor nagyon ajánlott, ha az ember programozó, és sok kódot ír, ott nagyon fontos, hogy mindenféle zárójel, sima, kapcsos, szögletes, relációs jelek, dollárjel, kettős kereszt, pontosvessző, kettőspont, stb. mindjárt elérhető helyen legyen, és ne kelljen AltGr-ezéssel szenvedni.

“I didn’t start using Linux so I could have friends.” (Luke Smith, 2019) 🐧

Imadom, a mai napig VIMben szerkesztek minden szoveget. Szerencsere a JetBrains VIM-pluginje nagyon jo :)

és akkor én ezekszerint 7 éves kora óta használom...

Ha textben kell megnyitni valamit, mai napig a default opció, de manapság sajnos a legtöbb időt a Microsoft Wordben, meg mindenféle online kollaborációs platformokon (HUP :) meg Miro) töltöm, itt meg ugye hiába írom be hogy

 

:wq!

Nem menti a kommentet, kattintani kell...

(A Cmd-Enter se megy sajna)

A VIM a Skynet közvetlen elődje, a legősibb gonosz AI.

Gondolj csak bele, akik nem a barátai, azokat még menekülni sem engedni.

Mire az ember megtanul kilépni, a program megtöri az akaratát, és megszereti a VIM-et, mint Winston a Nagy testvért.

(egy VIM függő vallomása)

kedvenc :)

4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.

Miután elvégeztem a feladatomat benne, még mindig úgy lépek ki belőle, hogy az egész számítógépet áramtalanítom.

Sokat használtam a korai linux kalandozások során. Ha lehet inkabb Emacs, amit használok. De ha pár dolgot át kell írni egy konfig fájlban, ahhoz azért nem telepítek Emacs-et. Az alapvető dolgok mennek Vi(m)-el is.

HB!