vi vs notepad - updated

 ( saxus | 2011. december 8., csütörtök - 14:35 )

Feladat: cseréljük ki a dupla szóközöket sima szóközre.

notepad 9 leutes (CTRL+H, space, space, tab, space, alt+a, esc)

vi 18 leutes (:, shift+5, s, shift+?,|, space, shift+|, space, shift+?,|, space, shift+?, g)

vim 15 leütés (:, 1, ,, shift+4, s, shift+?,space,space,?,space,?, g, enter)

:)

Angol kiosztással értendő.

----

Szerk: Egyébként látom senki nem vette észre, hogy az egész blogpost csupán egy teszt, hogy hányan kezdenek debezzegavimezni és hányan veszik észre, hogy egyszerű feladatra nem kell ionágyú :)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ebből is látszik, hogy a 'vi' jobb mert edzésben tartja az elmédet!

------------------------------------------
"Nincs ez el**szva, csak másra lesz jó!"

Meggyőztél :D

--
http://neurogadget.com/

vi: 12 (magyar kiosztás + numpad)
shift+., shift+5, s, /, space, space, /, space, /, g, enter

3 leütéssel győzött a notepad. :)

Nekem csak 10 leutes vi -val.

update:
pontosabban kilenc: ":s/ / /g"

Es a shift meg az enter? :)

----------------
Lvl86 Troll

:%s![^ ]\zs \+! !g

Nem számolom meg de szerintem kevesebb mint 18 :)

--
http://neurogadget.com/

Juteszembe
olyan megoldást keresek ahol kb 20 filebe kellene a <? kicserélni <?php ra.
Viszont ezekbe már van ahol rendesen <?php nak írták. Szóval a <? csere <?php ra nem jó, mert akkor azokon a helyeken <?phpphp lenne.
Van erre valami jó kis megoldás?

pch
--
http://www.buster.hu "A" számlázó
--

Vi vagy notepad megoldást akarsz? Előbbiben regexppel 1 lépésben, utóbbiban 2 lépésben megoldható.

Látom a feladat mindenkin kifog*, ezért itt egy jó megoldás (feltéve, hogy a vi regex motorja elég okos hozzá): s/<\?\B/<?php/g

*: Kezdjük ott, hogy ki mondta, hogy <? után whitespace lesz? Aztán a ?-t escape-elni kell, különben a regexp motor értelmezi. Végül: a feladat megoldható egy lépésben regexppel, fölösleges két cserét futtatni. Notepadban kell a 2, mert az nem tud regexpet.

--
Don't be an Ubuntard!

Vagy ez nem jó? Egy egyszerű példán nekem működött:
http://hup.hu/node/109552#comment-1385778

De, jónak tűnik. Amikor megnyitottam a postot szerkesztésre, még nem láttam.

Te se escape-elted a ?-t.

--
Don't be an Ubuntard!

Nem. Vim-ben épp ellenkezőleg kell, tehát a \? jelenti azt, amire te gondolsz. Úgyhogy nyugodtan húzd le a lehúzást ;) (:help pattern-overview)

Megjegyezném: a \B -t a vim nem ismeri :P

Tekintve, hogy valaszoltal, nem tudja lehuzni a lehuzast.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Ez esetben elnézést mindenkitől, amiért ezt felróttam neki. És még egy ok, hogy miért nem használtam, és nem is fogok vi-t használni.

--
Don't be an Ubuntard!

Elírtam, s/whitespace/space/. :)

--
Don't be an Ubuntard!

Sajnos több helyről jött a kód, így van hogy újsor van utána, van hogy space.
Leginkább konzolos megoldást, hogy ne keljen betöltögetni az állományokat szövszerkesztőbe.

pch
--
http://www.buster.hu "A" számlázó
--

Akkor sed:
sed -ir "s@<\?(\B)@\<?php\1@" fájlok

sed: -e kifejezés #1, karakter 19: Hibás hivatkozás (\1) a(z) `s' parancs RHS-ére

pch
--
http://www.buster.hu "A" számlázó
--

Bocs. sed -i -r

s/<?/<?php/g
s/<?phpphp/<?php/g

valami ilyesmi?

hulyeseg. Mivel a <?php utan mindig ' ' all, ezert: ":s/<? /<?php /g"

Kivéve, amikor nem. Pl:

<?
//kód
?>

<?php
//kód
?>

--
Don't be an Ubuntard!

Igaz, siettem, csak az elöző hsz 2 lépését váltottam egyre, annyira jól müködött, mint az elöttem lévő hsz-ben..:)
Valóban érdemes használni a regex whitespace-t. + char escape-t.

nem ide

--
Don't be an Ubuntard!

"olyan megoldást keresek ahol kb 20 filebe kellene a <? kicserélni <?php ra."

A '<?' után mindig van egy space ('<? '), azt is bele kell venni a keresésbe, ésakkor a '<?php'-ra máris nem matchel :)

Vagy pedig újsor-karakter. Vagy pedig Tab...

jaja, jogos

s@<?\($\|[^p]\)@<?php\1@

"buta" megoldás: <? csere <?php-ra, aztán <?phpphp csere <?php-ra?

Feladat: az összes "alma" előfordulás cseréje "körte"-re, de csak akkor ha szóösszetételben szerepel, és utána vesző következik. Például "a birsalma, ..." estén cseréljen, de a "az alma, ..." és a "birsalma volt ..." esetekben ne.

Melyikben hány leütés lesz? :-)

Kiegészítő feladat: Az "az alma, ..." esetén is cseréljen, de ha az "alma" előtt névelő van, akkor azt is cserélje.

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

Tizedespont cseréje tizedesvesszőre? :)

$ echo alma alma, birsalma birsalma, birsalmasajt | sed 's/\([a-zA-Z]\)alma\(,\)/\1körte\2/g'
alma alma, birsalma birskörte, birsalmasajt
$

van pár extrém eset, ahol nem működik

de kurva nagy write-only vagyok, vimben kellett megcsinálni :)

+ notepad :-)

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

vim: :s/ / /g ENTER (shift-tel egyutt 11 leutes)
notepad: ALT+E, R, space, space, ALT+P, space, TAB, TAB, TAB, TAB, SPACE, ESC (ALT-tal egyutt 14 leutes)

minden attol fugg, mennyi szandekos bullshitet raksz bele hogy az jojjon ki a vegen, amit te akarsz kihozni belole... (te siman 18 leutesnek mondod a vi megoldast, holott az minden epeszu vi user szerint csak 11 :D)
-
Slackware current / OSX Snow Leopard

Szerintem a 9 még mindig kevesebb, mint a 11. ;)

Viszont azt látom kifelejtette mindenki, hogy az egész fájlban cserélek, aminek a helyes parancsa, ami már 15 leütés:

:1,$s/  / /g

Egyébként a blogpost csupán egy egyszerű kísérlet volt arra, hogy vajon hányan veszik észre a lényeget (egyszerű feladatra egyszerű eszköz) és hányan kezdenek neki, hogy debezzegavim!

----------------
Lvl86 Troll

De ha vim-ben vagyok, akkor még ki kell lépnem és notepad-ban megnyitni a fájlt :)

Hopp, ez megint a vim ellen szól.

":1,$..."

:%, és még a shiftet is elég ecsak egyszer lenyomni.

szerintem mar boven bebizonyitottad ezzel a posttal es a hozzaszolasokkal hogy nem ismered a vimet, akkor meg minek erolkodsz? :D
a teljes file-ban csereles (valoban kifelejtettem) egyetlen karakterrel tobb: %

'egyszeru feladatra egyszeru eszkoz' -> mi az a feladat? ha a ket space csereje egyre, akkor nagyon durvan bebuktad
szamold ki hany billentyuleutes kell a notepad elinditasahoz, a file megnyitasahoz, a csere vegrehajtasahoz, a file elmentesehez es a notepad becsukasahoz!

aztan EZT hasonlitsd ossze ennek a vimes megfelelojevel, vagy mondjuk a kovetkezo paranccsal:

sed -i "s/ / /g" filenev

:P
-
Slackware current / OSX Snow Leopard

"szamold ki hany billentyuleutes kell a notepad elinditasahoz"

1 db enter? :D

----------------
Lvl86 Troll

miutan odanavigaltal a menuben/desktopon, persze.
ugyanugy, ahogy egy enter kell a vim elinditasahoz is, ha mar odanavigaltal, vagy beirtad parancssorba :P

-
Slackware current / OSX Snow Leopard

És a parancssor elindításához hány billentyűleütés kell?

--
Don't be an Ubuntard!

windowson hat, illetve ha azt inditottad utoljara akkor harom
mas rendszeren attol fugg hogy milyen kombinaciora raktad, vagyis egytol sokig :D
-
Slackware current / OSX Snow Leopard

Mi ez a 6?
(Nem CTRL+r, cmd, ENTER?)

de :)

-
Slackware current / OSX Snow Leopard

jah oks, késő van!:) a ctrl-t nem számoltam...

tenyleg keso van, de mindkettonknek, nem is CTRL hanem windows-gomb :D
-
Slackware current / OSX Snow Leopard

Hát legroszabb esetben is: ALT+F2 + gnome-ter + TAB + ENTER. (vagy szimplán xterm)
Vagy gyorsbillentyű, dropdown terminál, stb...

legrosszabb esetben? :D a legrosszabb esetben van pl. vegtelen szamu backspace :D

Linuxon olyan hotkeyt allitasz be amilyet akarsz, nekem volt meg anno a WindowMakeres korszakomban pl. a 'menugombra' (tehat a windowsos billentyuzetek nem-zaszlos gombjara) rakva a terminal, igy egyetlen gombnyomasra indult :)
-
Slackware current / OSX Snow Leopard

De amúgy nem tudom mit kell erőlködni, feladat az volt, hogy adott egy szövegfájl nyitva, cseréljük le a dupla szóközöket ;)

----------------
Lvl86 Troll

marpedig ebbol nem jossz ki jol :D

"Feladat: cseréljük ki a dupla szóközöket sima szóközre."

itt semmi nincs arrol, hogy a file mar nyitva
lassan eljutunk oda hogy "a feladat az volt, hogy a file meg van nyitva notepadben..." :D

-
Slackware current / OSX Snow Leopard

Mivel a vim és a notepad funkcionalitásának összehasonlítása történik, ezért de, feltételezhetjük ;)

De amúgy én igazából azt látom, hogy szimplán a vi fanok hozzák a szokásos formájukat és erősködnek, hogy de bizony, hogy vi-t kéne mindenre használni, csakazértis ;)

----------------
Lvl86 Troll

Akkor megkérnénk, hogy te a továbbiakban

- vagy mindig használd a notepad-et (és szívj, ha nem tudja azt amit kell)
- vagy mindig használd a vi-t (és szívj, ha nem tudod, hogy hogyan kell megoldani vele)
- de a legkorrektebb az lenne, ha minden feladat előtt kiszámolnád, hogy melyikkel hány billentyűleütés, és annak megfelelően kattintanál a notepad/vi ikonra.

Mellesleg a korrekt számolgatás érdekében (ami ugye szerinted az, hogy a Shift-4 - gyk: $ - illetve az Alt-a két db. billentyűleütés, nem pedig egy db. billentyűkombináció, aminek akár még értelme is lehet) számoljunk olyanokat is, hogy pl. a notepadben 18 sorral lejjebb lépés *bilentyűzet* segítségével 18 db lenyíl, míg vi-ban 18j karaktersorozat (azaz 3 db billentyűleütés). Meg szívathatjuk magunkat azzal is, hogy pl. a kurzormozgató gombok 3 karakteres szekvenciát küldenek (ESC-[-A/B/C/D), míg ugye a hjkl az csak 1, azaz előző feladatom esetén a notepad 18*3, míg a vi változatlanul 3. És ha nem UNIX/Linux "terminal"-ban gondolkodunk, hanem PC-s billentyűzetben, akkor is csak nüansznyival jobb a helyzet, ugyanis tudtommal az Fx, meg PgUp/Dn/CursorUp/Dn/stb gombok 2 bájtos scan-kódot küldenek, azaz a 18 lenyíl nem 18*3, hanem 18*2 bájtnyi adat átdöcögését jeleni - amit környezettudatos felhasználó nyilván ugyanúgy számba vesz az eszköz kiválasztásánál, mint azt, hogy egy vagy kettő vagy három gombot kell lenyomnia (sőt! a végén felengednie is) az adott feladathoz. De mondhatunk olyat is, hogy fenti feladatodat DEC VT100 terminálon oldd meg, ahol egyrészt nem fut a notepad (míg a vi igen), másrészt ha futna is, mivel nincs rajta ESC gomb, így kénytelen lennél Ctrl-[ formában beütni helyette. (Mondjuk az Alt-a -t még nem látom, de majd valaki megmondja a tutit.)

(Az még érdekelne, hogy a "kilépés-mentéssel" funkció vi-beli megvalósítása - a shift-z shift-z - normális embernek: ZZ - szerinted hány billentyűleütés, tekintettel arra, hogy nem kell, de lehet felengedni a shiftet a 2szeri z lenyomása közben.)

Röviden összefoglalva, ahogy a székely gyerek mondta az apjának: "remélem komoly, mert viccnek elég béna".

+1

mutasd meg legy szives, ki es hol irta hogy "vi-t kene mindenre hasznalni"...

raadasul szerintem mindenki nagy ivben lesz@rja hogy te mit hasznalsz :D nyugodtan hasznald a notepadet, en hasznalom a vim-et, es mindenki boldog (en legalabbis az vagyok a vimmel, az meg kulon poen mikor valaki latja mit csinalok, es leesett allal nez ki a fejebol hogy 'ezt is tudja??' :D)

egyebkent ez a blogpost kb. annyira ertelmes, mint osszehasonlitani a vonatot az autoval ugy, hogy megnezed, melyikkel egyszerubb az autopalyan kozlekedni. es kiderul hogy a vonat milyen szar, mindenre hasznalhatatlan, tiltsuk be, nem is ertjuk hogy a sok idiota miert jar vonattal, meg miert leteznek a tehervonatok, ugye :D

de ha gondolod, csinalok neked egy programot, ami csak annyit tud hogy kicserel a file-ban minden dupla szokozt egyre, ha megigered hogy ezentul azt hasznalod (mindenre) a notepad helyett :P

-
Slackware current / OSX Snow Leopard

... kifelejtette mindenki ...:
A shift+5 az vajon mi ott fenn?

Bocsi saxus, én vimmel szoktam szövegeket editálni, nem fogok wine -nal notepad.exe -t indítani mert épp egyszerű a művelet.

--
http://neurogadget.com/

jogos!
Akkor most írjuk át az összes dátom formátumát mm/dd/yyyy-ről dd/mm/yy-re, esetleg tüntessük el az összes mailcímből a hostot! :P

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Jó, akkor kap egy pontot a notepad is. Apropó, azt hogyan érem el, hogy a fájlok elejére ne tegyen valami két kis bizbaszt? A múltkor kénytelen voltam az óráimra windowson készülni, a LaTeX aztán nem volt hajlandó lefordítani miattuk. És ahányszor megnyitottam a notepaddel, annyiszor kitette újra, ahányszor töröltem.
--
Fight / For The Freedom / Fighting With Steel

gondolom UTF-8-ban mentetted, es odarakta (teljesen jogosan) a BOM-ot
-
Slackware current / OSX Snow Leopard

Mintha latin2 esetén is meglett volna, de rég volt. Az utf8 alapesetben igaz. Egyébként minek rakja ki? És mondjuk a vi(m), a hasonlók, vagy a LaTeX frontendek miért nem?
--
Fight / For The Freedom / Fighting With Steel

első megjegyzés: ha nem azt írnád, hogy shift+4, hanem azt, hogy $ , akkor egyrészt olvashatóbb lenne, másrészt nem angol kiosztást használók is tudnák, hogy mit írtál, lehetne gondolkodni azon, hogy tudunk-e az általad leírtnál jobbat, esetleg értelmesen ellenvéleményt kifejteni

második megjegyzés: a vi megoldásod - és a számításod - több sebből vérzik:
- a kettőspontot csak egy leütésnek számoltad, holott az addigi konvenciód szerint kettő, lévén shift-;
- mint azt korábban leírták, nem 1,$ a helyes címzés, hanem %
- az egész dolog ott bukik, hogy az általad kikötött *angol* (azaz UK) kiosztásban a shift-4 lenyomásakor nem $, hanem # jelenik meg. Amire valószínűleg gondolhattál, az az amerikai - azaz US.

Már csak azt nem látom, hogy ez az egész mire jó: tudtál mutatni egy példát, ahol a vi alulmaradt. Akkor most egy picikét módosítsuk a feladatot: nem két egymás követő szóköz, hanem 2 vagy több egymást követő szóköz, és - ha igazak a hírek, hogy a notepad nem tud regexpet - akkor gyakorlatilag a vi végtelenszer jobban teljesít, hisz

:%s/ */ /g

formában leírva tudja azt - azaz az eredeti megoldáshoz képest 1 db plusz karakter kellett, míg te a notepad-del indíthatsz 2, 3, 4, n db cserét :-)

Szóval hoy én is írjak ilyen nagypofájú baromságot: észre kéne venni, hogy vannak feladatok, amikre a vi túlzás, és van amihez kevés. De ehhez meg is kéne tanulni használni, hogy eldönthesd, hogy adott eset ágyúval verébre, vagy csúzlival tankra helyzet. Nem utolsósorban a notepad biztos kevesebb billentyűleütéssel tud 2 szóközt 1-re cserélni, de vajon hányszor kell ezt megcsinálni, és hányszor olyasmit, amiben viszont alulmarad.

+1

Ismet egy vimfan, aki nem birja elviselni szo nelkul, hogy nem a vim a uberlegjobbabb mindenben.

Miert ez az egesz - nyilvanvaloan -troll post? IRC-en beszelgettem valakivel, hogy egy alkalmazasaltal hasznalt szovegfajlban le kellene cserelni a duplaszokozoket. Egybol jott ra a valasz, hogy "vi-ben csak ennyi". Oszt'? Ez meg notepadban ennyi, vegeredmeny ugyanaz, cserebeegy 0bites user is meg tudja csinalni urhajos kikepzes nelkul. De valahogy a vim fanoknak mindig muszaj megemliteni, hogy debezzegavim, tanuldmeg, mert az mekkora kurvajo meg satobbi.

Es nem erti meg, hogy en nem akarok mast, csupan a letezo legegyszerubb modon szoveget szerkeszteni.

Es igen, van, hogy nem eleg, es mondjuk kell a notepad++ makrozasi kepessege. Ja, tudom, vim regexppel megoldja. Jo, leszarom, addig, mig kigondolom ahelyes regexp kifejezest 5x lefutott a makro.

Aztan van a kulon kedvencem, az IDE-killer vim user, aki meg akar gyozni arrol, hogy nekem akkor is vim kell, es hogy szopjak mindenfele pluginok osszereszelesevel, mert "mennyire jol lehet szoveget szerkeszteni", mikor kozlom, hogy nekem refactoring meg integralt debug es fajlok projektszintuu kezelese (ertsd: nem csillio onallo fajl, hanem az abban letrehozott programkod ertelmezese es kodkiegeszitesekkel valo tamogatasara) van szuksegem.

----------------
Lvl86 Troll

"debezzegavim, tanuldmeg, mert az mekkora kurvajo"

akkor ismetelten megkerlek, hogy mutasd meg hogy ki mondta itt hogy debezzeg tanuldmeg...
en ugy latom hogy az egesz post csak a te trollkodasod amivel a kepzelgeseidnek probalsz alapot adni :D

"Ja, tudom, vim regexppel megoldja. Jo, leszarom, addig, mig kigondolom ahelyes regexp kifejezest 5x lefutott a makro."

vimben is lehet makrozni :D

a vim meg NEM IDE. ennyi. ettol fuggetlenul en is ezt hasznalom fejlesztesre is, de vannak olyan ficsorei pl. a visual studionak, amik sokat segitenek (ettol meg a szovegszerkesztoje agybaj, de ez mas tema)
-
Slackware current / OSX Snow Leopard

"ki mondta itt"

Miért, csak itt vannak vimfanok szerinted? :)

"vimben is lehet makrozni :D"

Aztán mond, hogy nem mondja itt senki, hogy "debezzegavim" :P

"a vim meg NEM IDE"

Igen, tudom. Ennek ellenére mindig van pár okos vim huszár, aki valahogy a VS és az Eclipse-re mindig azt mondja, hogy fúj, bloated, használj vim-t.

----------------
Lvl86 Troll

"Miért, csak itt vannak vimfanok szerinted? :)"

ertem. szoval valamikor valaki azt mondta neked, hogy hasznalj vimet, ezert alltal neki trollkodni. grat :)

"aztán mond, hogy nem mondja itt senki, hogy "debezzegavim" :P"

aha, szoval ha felhozol valamit a vim ellen, amit egy masik editor tud, akkor szigoruan tilos megjegyezni hogy megint FAIL a reszedrol, mert a vim is...

"VS és az Eclipse-re mindig azt mondja, hogy fúj, bloated"

en is azt mondom, igenis fuj es bloated :) ettol meg nem mondom senkinek hogy hasznaljon vimet (en azt hasznalom, de az meg az en sajat dontesem)

-
Slackware current / OSX Snow Leopard

a) a vimfan sajnos nem ül, leszarom a vimet, és folyton vi-t emlegetek, nem véletlenül.
b) én mondtam, hogy "vi-ben csak ennyi"? Ha nem, akkor próbálj ne engem lebaszni miatta.
c) nem tudom te mit olvastál, de amire nekem válaszoltál, abban én azt jeleztem, hogy a *saját* *magad* által kitalált számítási módszerrel számolva is tévedsz; valamint azt jeleztem, hogy hasonlóan agybaj módszerrel meg kihozható a tieddel szöges ellentétben álló eredmény; valamint azt jeleztem, hogy van ahol a vi sok, és van ahol kevés.

Szerintem téged frusztrál, hogy valaki meg tudta tanulni a vi-t, neked meg nem sikerült. Nem baj - az - nem jellemhiba. Mondtam én, hogy használj vi-t? Nem kötelező.

a notepadosban az a szép, hogy a végén az Esc a cancelnek felel meg. ééérted, megcsinálod az összes változtatást, aztán mégse? na ez a windows filozófia ;-]

Pont, mint amikor ctrl-alt-del-t kell nyomni belépésnél (ami eredetileg reboot-ot jelent), hogy elindítsd az asztali környezeted használatát...

Megjegyzés a "Szerk:"-hez:
Amelyik teszt eredményét előre tudod, azt felesleges elvégezni. De ez most nem is számít, mert kevered a teszt és a provokáció szavakat.

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

:%s/ \+/ /g
14 leutes, ha a shift lenyomasat kulon veszem. A :% eseteben nem szamoltam 2x a shiftet, mert lenyomva tartom.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Uborkaszezon van?

azt tenném még hozzá, hogy aki olvassa a Hyperion bukását, a 351. (350, tegnap jöttem!) oldalon találja, ahogy Ummon a mesterséges intelligencia buddhista kóanban meséli a Végső Intelligenciáról: nem más ő mint a VI.

Kacu!

:-)

--
nincs aláírásom

rejtett up + értelmetlen, de talán nem nyilvánvaló megoldású feladat + egy kérdés:

adott szövegfájlban végezzük el a következő módosításokat:
HA egy sorban létezik az [:alnum:] osztályba tartozó karakter, AKKOR a sort cseréljük le a '0' stringre.
EGYÉBKÉNT HA a sorban létezik a [:graph:] osztályba tartozó karakter, AKKOR a sort cseréljük le az '1' stringre.
EGYÉBKÉNT a sort cseréljük le a '2' stringre.

---------------------

nincs kedvem gúglizni: a vi-nak milyen a sed és awk támogatottsága? és a vimnek? (értsd hívhatok-e sedet/awk-t az aktuálisan kijelölt sorra? hívhatom-e ugyanőket valamiképpen, pl. algoritmikusan kiválasztott sorokra?)

Gondolom, megoldható, többször csinálsz regexp-cserét.

Gugli: nem hiszem, hogy lehetséges, de attól még elképzelhető.
Egy fél-megoldás: a kiválasztott sorokat vim-ből kiírni egy ideiglenes fájlba, és utána azt átadni paraméternek a sed/awk-nak.

sed-et, awk-ot, bármit hívhatsz, a ! paranccsal. A ! parancs szoros rokonságot mutat a d, y, c < és > parancsokkal (már ami a szintaxist illeti). Az algoritmikus kiválasztásra pedig a g parancs szolgál (van egy UNIX parancs: grep - ez is innen lett, g/RE/p - a legismertebb forma. (És mindez szigorúan vi, hogy a vim mit tud, az nem érdekel.)

Amúgy szerintem ilyen egymásba ágyazott if elif else nem nagyon van vi-ban - vimben lehet, hogy van.

Hogyan hívsz meg egy awk-parancsot mondjuk a 19. sorra vi(m)-ből?

a legegyszerubb ha kijelolod, es siman begepeled a parancsot
pl:

19GV:!awk akarmi

-
Slackware current / OSX Snow Leopard

Csak ennyi? Na, akkor ma is újat tanultam!
Köszi :)

egeszsegedre :)
azt nem mondtam, de talan adja magat hogy a kijelolt reszt a parancs kimenetevel fogja helyettesiteni
-
Slackware current / OSX Snow Leopard

Rájöttem. Csak azt nem hittem, hogy így át tudja adni a vim - igaz, még sose éreztem ennek szükségét.

en sem hasznalom tul gyakran (azert a vim onmagaban is eleg szinte mindenre), de idonkent baromi hasznos
gyakorlatilag barmilyen letezo parancsot vegrehajthatsz a szerkesztoben levo szovegen - felulmulhatatlan \o/
-
Slackware current / OSX Snow Leopard

:19!awk 'bla-bla'

vagy
19G!!awk 'bla-bla'

Ellentétben a korábban kapott V parancsot tartalmazótól, ehhez nem kell viM funkcionalitás, (n)vi is tudja.

kezd offtopic lenni, de talán még belefér:

akkor mi van, ha mondjuk minden prímszámadik sort akarom kijelölni, és azokra végrehajtani valamit? tegyük fel, hogy a prime parancsszót tartalmazza a (n)vi(m) (azért, hogy ne kelljen most a tényleges megoldással szórakozni)

(n)vi-ben kétlem, hogy lehetne ilyet csinálni, de én eléggé kezdő vagyok vi-ban, max 3 évig ha tanultam.

gondolom valami functiont lehet ra irni, de ilyesmit en egyertelmuen perl-ben csinalnek
a vi(m) szovegszerkeszto, nem programnyelv vagy altalanos fejlesztesi platform...
-
Slackware current / OSX Snow Leopard

notepad lof.php
php -f lof.php

:D

----------------
Lvl86 Troll