Willkommen bei Linuxeinsteiger.net
Sonntag, Mai 20 2012 @ 10:26 CEST

Writing /opt/linuxprofessionals.org/domains/linuxeinsteiger.eu/main/dokuwiki/data/cache/e/ef599788a0f92b30d11dc9cdf30d9493.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /opt/linuxprofessionals.org/domains/linuxeinsteiger.eu/main/dokuwiki/data/cache/e/ef599788a0f92b30d11dc9cdf30d9493.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /opt/linuxprofessionals.org/domains/linuxeinsteiger.eu/main/dokuwiki/data/cache/e/ef599788a0f92b30d11dc9cdf30d9493.xhtml failed

vim howto (Baustelle)

Irc-Log auf dem ein Teil des Tutorial basieren wird

Vorgeplaenkel

15:43 <@deifl> du hast ubuntu/debian? 
15:43 < appelhenka> ubuntu 
15:43 <@deifl> vim-full installiert? 
15:43 <@deifl> x-terminal hast du ja 
15:44 < appelhenka> vim-full is installiert 
15:45 <@deifl> fein 
15:45 < appelhenka> und ich hab urxvt 
15:45 <@deifl> gute wahl 
15:46 <@deifl> so - schlemmerfilet wartet 
16:00 <@deifl> fertig 
16:00 < appelhenka> yay 
16:01 < appelhenka> mein magen meint auch grad fertig 
16:01 < appelhenka> ... 
16:01 !irc.inn.at.euirc.net deifl invited nexi into the channel. 
16:02 ||| nexi is "nexi" on #le-vim-fragen-tipps #linuxeinsteiger.net !#dortmund 
16:02 ||| nexi (nexi) [nexi@man.braucht.ein.handtuch.im.euirc.net] has joined #le-vim-fragen-tipps 
16:02 < nexi> mahlzeit 
16:02 <@deifl> mahlzeit 
16:02 < appelhenka> mahlzeit nexi  
16:02 <@deifl> nexi: ubuntu/debian? 
16:03 <@deifl> nexi: wenn ja schau ob vim-full installiert ist 
16:03 <@deifl> nexi: zudem ein x-terminal nach wahl 
16:04 < nexi> hab immer noch slack mit vim  
16:04 <@deifl> gut 
16:04 < nexi> bin doch der außenseiter ;/ 
16:05 <@deifl> jetzt fehlt nur noch phill, dann sind zumindest die wo wollten da 
16:05 < nexi> kk 
16:06 <@deifl> ich wuerde wir warten bis 16:30 und beginnen dann 
16:06 <@deifl> gegenstimmen? 
16:07 < nexi> is ok 
16:07 <@deifl> appelhenka: ? 
16:07 < appelhenka> kk 
16:07 <@deifl> k - dann dreh ich mal ein paar zigaretten vor 
16:14 <@deifl> apropos zigaretten... braucht jemand pausen? 
16:15 < nexi> nur zum pinkeln^^ 
16:17 <@deifl> kk 
16:18 < appelhenka> ich bin froh wenn ich nich aufstehen muss 
16:18 <@deifl> hrhr - dann leg mal gute mucke auf 
16:18 < nexi> hm aber waren des nich noch mehr als nur phil noch? 
16:19 <@deifl> wer denn noch? 
16:19 < nexi> ja weiss nich aber hab irgendwie mehr inne erinnerung 
16:19 <@deifl> appelhenka nexi phill.... 
16:19 <@deifl> so weiss ich 
16:20 < nexi> najut 
16:20 <@deifl> aber wir koennen ja mal fragen ob jemand einen platz fuellen moechte... 
16:20 <@deifl> eventuell salto 
16:20 < appelhenka> erklär mir doch erstmal was du vor hast deifl  
16:21 <@deifl> warum jedem einzeln erklaeren und nicht allen einmal?  
16:21 <@deifl> am ende soll aber ne ~/.vimrc und ein tutorial dabei rauskommen 
16:22 <@deifl> ich will wissen was ihr bei vim fuer funktionen benutzt 
16:22 <@deifl> ich will wissen was ihr bei vim nicht blickt 
16:23 <@deifl> ich will wissen was ihr fuer fragen bzgl vim habt 
16:23 < appelhenka> ich will mein vim so konfigurieren dass es mir bier ausm keller holen kann :P 
16:24 <@deifl> das kann nur emacs 
16:25 < appelhenka> mist 
16:25 < appelhenka> dann bin ich raus :P 
16:28 < appelhenka> hm 
16:28 < appelhenka> mach ich mir noch eben musik an? 
16:30 <@deifl> klaro 
16:31 < appelhenka> aber ich müsste aufstehen 
16:31 < appelhenka> und ich hab nen schädel 
16:32 <@deifl> noch 2 minuten brauch ich (kaffee holen) 
16:34 <@deifl> ready? 
16:34 < nexi> jo 
16:34 < appelhenka> ready 
16:36 <@deifl> k - dann meine erste frage: benutzt ihr die eingebaute hilfe? 
16:36 < appelhenka> nie 
16:36 < nexi> bis her nich  
16:36 <@deifl> okay - ist nicht schlimm 
16:38 <@deifl> wie schaut es bei euch mit der navigation im dokument aus? 
16:38 <@deifl> kennt ihr quickmarks? 
16:38 < appelhenka> nein 
16:38 < nexi> hm ich weiss das man navigieren können soll mit buchstaben aber ka wie  
16:39 <@deifl> dann fangen wir mal mit der 'homerow' an

Navigation

16:39 <@deifl> die homerow sind die tasten wo die fingen normalerweise liegen 
16:39 <@deifl> hjkl dienen der navigation (falls pfeiltasten nicht gehen) 
16:40 <@deifl> h geht logischerweise nach links und l nach rechts 
16:40 <@deifl> bei zwischenfragen bitte unterbrechen 
16:40 <@deifl> j sieht etwas wie ein abstrakter pfeil nach unten aus und geht nach unten ;) 
16:41 <@deifl> k ist zum nach oben navigieren
Taste Funktion
h links
l rechts
j runter
k hoch
16:41 <@deifl> bis jetzt uninteressant weil in den meisten terminals die pfeiltasten auch gehen 
16:42 <@deifl> was fehlt euch jetzt z.b. an navigation 
16:43 <@deifl> zeilen direkt anspringen ist z.b. oft sehr nuetlich 
16:43 <@deifl> +z 
16:43 < appelhenka> ich hab keinen plan vom suchen in vim 
16:43 < nexi> aber wo her weiss ich in welche ich muss? 
16:43 <@deifl> oft sagt jemand schau mal in datei zeile soundso 
16:43 < nexi> ja ok  
16:44 <@deifl> danndann machst du euinfach: 'vim +zeilennummer datei' und vim startet an der gewuenschten Stelle 
16:45 <@deifl> ist vim schon gestartet reicht ein g<zeilennummer>, also z.b. g42 um zu zeile 42 zu gelangen 
16:45 <@deifl> g heisst btw go 
16:46 <@deifl> habt ihr vim auch offen und testet ein wenig oparallel? 
16:46 < nexi> jeps 
16:47 <@deifl> mit einem 'gg' geht es an den Anfang (zeile 1) von der datei
Taste Funktion
gg geh zur ersten Zeile
16:47 < appelhenka> nein ich hab vim nich offen weil ich grad am sterben bin 
16:47 <@deifl> mit einem grossen 'G' geht es in die letzte Zeile
Taste Funktion
G gehe in letzte Zeile
16:48 <@deifl> innerhalb einer Zeile kann auch schnell navigiert werden 
16:48 < nexi> äh mom 
16:48 < nexi> [16:45] <deifl> ist vim schon gestartet reicht ein g<zeilennummer>, also z.b. g42 um zu zeile 42 zu gelangen 
16:48 <@deifl> jo? 
16:48 < nexi> "g42" passiert nix  
16:49 < nexi> und mit :g42 passiert was aber nich was soll^^ 
16:49 < nexi> wobei "gg" funktioniert 
16:49 <@deifl> ohne : 
16:50 <@deifl> also ,esc><esc><esc>g42 
16:50 <@deifl> die datei sollte aber schon 42 zeilen haben ;)\ 
16:50 < nexi> nee geht nich 
16:50 < nexi> jo hat 280 ;) 
16:51 <@deifl> ups - sry 
16:51 < nexi> er zeigt das g an als aktiv quasi aber wenn ich ne zahl eintip verschwendets wieder 
16:51 <@deifl> '<zeilennr>G'
Taste Funktion
G<nummer> sprint zu Zeile <nummer>
16:51 < nexi> -e+i 
16:51 < nexi> ah ^^ 
16:51 < nexi> das geht  
16:52 <@deifl> mein fehler 
16:52 < nexi> np 
16:52 <@deifl> jetzt navigation in zeilen.... 
16:52 <@deifl> mit '^' geht es an den zeilenanfang und mit '$' ans zeilenende
Taste Funktion
^ gehe zum Anfang der Zeile
$ gehe zum Ende der Zeile
16:53 <@deifl> klappt? 
16:53 < nexi> jep 
16:53 <@deifl> genauer kann man in der zeile mit 'w' navigieren (w wie word) 
16:54 <@deifl> mit 'w' geht es zum naechsten wort und mit '<n>w' zum n-ten wort
Taste Funktion
w naechstes Wort
<n>w <n> Woerter vor
16:54 < nexi> ah jedes sodnerzeichen gilt als wort  
16:54 <@deifl> also kann ich mit 23w um 23 woerter vorspringen 
16:55 <@deifl> woerter folgen in der regel einem leerzeichen 
16:56 < nexi> ja aber ein bindestrich oder punkt unterbricht ein wort wie ein leerzeichen merk ich  
16:56 <@deifl> jau 
16:56 <@deifl> ist beim programmieren gut 
16:57 <@deifl> jetzt zeige ich dir wozu quickmarks nuetzlich sind 
16:57 <@deifl> bewege deinen cursor in eine zeile die du dir merken willst 
16:57 <@deifl> haste? 
16:58 < nexi> ok 
16:58 < nexi> appelhenka: liegt unterm tisch :>

Quickmarks (Lesezeichen)

16:59 <@deifl> jetzt kannst du eine quickmark setzen mit 'm<marke>', wobei marke ein leinbuchstabe von a-z sein kann 
16:59 <@deifl> hrhr 
16:59 <@deifl> kleinbuchstabe 
16:59 < nexi> k 
16:59 <@deifl> also z.b. 'mw' (marke wichtig)
Taste Funktion
m[a..z] setzt Marke mit Name [a..z]
16:59 <@deifl> jetzt an den anfang gehen 'gg' 
16:59 < appelhenka> nexi: nee ich les schon mit aber mir gehts grad nich so gut 
17:00 <@deifl> appelhenka: stirb uns nicht weg 
17:00 <@deifl> nexi: marke gemacht? 
17:01 < nexi> ja  
17:01 < nexi> wie springt man jetzt hin? 
17:01 <@deifl> bist wo anders in der dateio? 
17:01 < nexi> ja am anfang 
17:01 <@deifl> springen tut man mit ''<marke>' also z.b. ''w'
Taste Funktion
'[a..z] springt zur Marke [a..z]
17:02 <@deifl> klappt es? 
17:02 < nexi> öh 
17:02 <@deifl> zeile markieren mit: ma 
17:03 <@deifl> zu zeile springen mit: 'a 
17:03 < nexi> nee irgendwas is nich richtig 
17:03 < nexi> ah ok  
17:03 <@deifl> geht es? 
17:03 < nexi> geht, ka was eben falsch war 
17:03 < nexi> jep 
17:03 <@deifl> okay - die marken bleiben bis zum beenden von vim 
17:04 <@deifl> wenn sie beim naechsten mal noch vorhanden sein sollen, dann.... 
17:04 <@deifl> nimmst du fuer <marke> anstelle von kleinbuchstaben einfach Grossbuchstaben 
17:04 < nexi> k
Taste Funktion
m[A..Z] speichere dauerhaft Marke [A..Z]
17:05 <@deifl> das war jetzt ganz grob navigation

Markieren, Kopieren und Einfuegen

17:05 <@deifl> fuer nen editor finde ich z.b. auch auschneiden, kopieren und einfuegen auch wichtig ;) kannst du das mit vim? 
17:06 < nexi> nee überhaupt nich  
17:07 < nexi> da verzweifel ich immer und editier in win weiter *G+ 
17:07 <@deifl> dann wolln mer mal - ist ganz einfach 
17:07 < nexi> dd is löschen glaub ich? 
17:07 < nexi> also zeile löschen weiss ich 
17:07 <@deifl> dd loescht ganze zeile bzw scheidet eine ganze zeile aus (kannst du wieder irgendwo einfuegen)
Taste Funktion
dd Zeile ausschneiden
17:08 < nexi> ah ok 
17:08 <@deifl> loesch mal gleich ne zeile mit 'dd' 
17:08 < nexi> k 
17:08 <@deifl> jetzt gehst du mit dem cursor ueber die stelle wo die gerade geloeschte zeile reinsoll 
17:09 <@deifl> ein kurzer druck auf 'p' und schon ist se drin
Taste Funktion
p einfuegen unterhalb aktueller Zeile
17:09 < nexi> dann shit+feinfg 
17:09 < nexi> ok oder so^^ 
17:09 <@deifl> p wie paste 
17:09 < nexi> k klappt 
17:09 < nexi> mit shift+einfg greift er nur auf den speicher außerhalb von vim zu merk ich 
17:09 <@deifl> jetzt zeige ich dir wie man einen block, also zeilenweise kopiert 
17:10 <@deifl> nexi: japp 
17:10 <@deifl> nexi: und vim kann mit den richtigen settings da auch reinschreiben ;) 
17:10 < nexi> ok ^^ 
17:11 <@deifl> zum zeilenweisen markieren gehst du zu der ersten zeile die kopiert werden soll 
17:11 <@deifl> dann drueckst du 'V' (gross) und bist so im zeielnweisen visual mode
Taste Funktion
V zeilenweise auswaehlen/markieren
17:12 <@deifl> jetzt bewegst du den cursor zur letzten zeile die kopiert werden soll 
17:12 <@deifl> ein beherzter druck auf 'y' kopiert das markierte
Taste Funktion
y kopieren
17:12 <@deifl> welches du wieder unterhalb der cursorposition mit 'p' wieder einfuegen kannst 
17:13 <@deifl> klappt es? 
17:13 < nexi> works :D 
17:13 <@deifl> fein 
17:13 <@deifl> jetzt versuchen wir das nicht zeilenweise sondern individuell 
17:14 <@deifl> cursor an anfang der zu kopierenden stelle setzen 
17:14 <@deifl> 'v' (klein) und den rest kannst du dir denken?
Taste Funktion
v auswaehlen/markieren
17:15 < nexi> jau 
17:15 < nexi> "y" und p wieder 
17:15 <@deifl> funktioniert das auch so? 
17:15 < nexi> jup 
17:15 <@deifl> fein 
17:16 <@deifl> hmmm.... was machen editoren noch so?


Suchen

17:16 <@deifl> suchen? kannst du das? 
17:16 < nexi> mit / oder?
Taste Funktion
/<suchbegriff> sucht nach <suchbegriff>
17:16 <@deifl> jo 
17:17 < nexi> gibts auhc "next" irgnedwie? 
17:17 <@deifl> das mit 'n' der naechste treffer gezeigt wird weisst du?
Taste Funktion
n zum naechsten Suchtreffer springen
17:17 <@deifl> ;) 
17:17 < nexi> jetzt ja^^ 
17:18 <@deifl> genau so fragen wollte ich hoeren 
17:18 < nexi> beim markieren  
17:18 < nexi> kann man auch  
17:18 <@deifl> jo? 
17:18 < nexi> so 2 markiereungen machen also zum kopieren 
17:18 <@deifl> wie beim markieren 
17:18 < nexi> hallo "du" wie "gehts" 
17:18 <@deifl> also mit den quickmarks? 
17:18 < nexi> das ich die "" wörter markier und nur die kopier 
17:19 <@deifl> also alle woerter zwisdchen " und "? 
17:19 < nexi> ja in meinem beispiel würd ich du und gehts rauskopieren 
17:19 <@deifl> also loeschen? 
17:19 <@deifl> da ist wohl sed geeigneter 
17:20 < nexi> ja oder löschen  
17:20 < nexi> hm ok 
17:20 < nexi> dacht das man sich halt das doppelte ausführen sparne könnt  
17:20 <@deifl> ich schau andermal ob ich da was fuer vim finde 
17:20 < nexi> so muss ich ja du markieren, kopieren, einfügen, gehts markieren, kopieren, einfügen


undo und redo

17:21 <@deifl> vermisst du eigentlich bei vim nicht die undo-funktion? 
17:21 < nexi> das ist bestimmt "u" ^^
Taste Funktion
u letzte Aktion rueckgaengig machen
17:21 <@deifl> jo 
17:21 < nexi> :D 
17:21 < nexi> wieviel undos gehen? 
17:21 < nexi> unendlich? 
17:22 <@deifl> uff - ich hab noch keine grenze gesehen 
17:22 < nexi> ok also mal von auszugehen alles was man beim öffnen verändert hat ist rückgängig zu machen 
17:22 <@deifl> laut help standardmaessig 1000 aenderungen 
17:23 < nexi> ok und gibts auch reundo? also wiederherstellen? 
17:23 <@deifl> klar 
17:24 <@deifl> strg-r
Taste Funktion
STRG-r wieder herstellen (reundo)
17:24 <@deifl> zeilenweises undo geht z.b. mit 'U' gross 
17:24 < nexi> ah k


Speichern

17:25 <@deifl> speichern der datei und speichern unter kennst du? 
17:25 < nexi> :w 
17:25 < nexi> :w! 
17:26 <@deifl> ':w' speichert und :w /pfad/zur/datei' speichert unter
Befehl Funktion
:w speichert
:w /pfad/zur/datei speichtert unter /pfad/zur/datei
17:26 <@deifl> das '!' erzwingt aktionen 
17:26 < nexi> jep 
17:26 < nexi> wie bei schriebgeshcützt z.b 
17:26 <@deifl> jau 
17:27 <@deifl> welche vim-version hast du? 
17:29 < nexi> öh wie seh ich das?^^ 
17:29 <@deifl> entweder vim ohne dateiangabe starten 
17:29 < nexi> 7.1.3.3 
17:29 < nexi> 7.1.33.0 
17:29 < nexi> jau das hab ich grad damit gesehen hehe

Tabs

17:30 <@deifl> gut seit vim 7 kann er naemlich auch tabs - interesse an ner kurzen einfuehrung? 
17:30 < nexi> klaro 
17:30 <@deifl> du hast momentan vim mit einer datei offen? 
17:31 < nexi> gibts auchsowas wien integrieren filebrowser btw? 
17:31 < nexi> jep 
17:31 < nexi> +t 
17:31 <@deifl> nexi: notiert, sowas machen wir gleich 
17:31 < nexi> ok thx 
17:32 <@deifl> mit ':tabe </pfad/zur/datei>' oeffnest du ne neue datei in nem neuen tab
Taste Funktion
:tabe /pfad/zur/datei oeffnet /pfad/zur/datei in neuem Tab
17:32 <@deifl> beachte den oberen rand 
17:32 < nexi> funct :) 
17:33 <@deifl> mit 'gt' kommst du zum naechsten mit 'gT' zum vorherigen tab 
17:33 < nexi> nun hab ich noch mein erste fabulöses super geniale script überhaupt geladen ! 
17:33 < nexi> jep 
17:34 <@deifl> mit '<n>gt' geht es zu tab nummer <n>
Taste Funktion
gt springe zum naechsten Tab
gT springe zum vorherigen Tab
<n>gt springe zum <n>-ten Tab
17:34 <@deifl> was fuer ein script 
17:34 < nexi> ok 
17:34 < nexi> einfaches ~ backuppen aufen ftp 
17:35 < nexi> mit datum setzen 
17:35 <@deifl> k 
17:36 <@deifl> tabs hast du kapiert? 
17:36 < nexi> jep 
17:36 <@deifl> dann verpassen wir vim mal nen dateimanager 
17:36 <@deifl> http://www.vim.org/scripts/script.php?script_id=808 
17:37 <@deifl> da die version 75 holen und nach ~/.vim/plugins kopieren 
17:38 < nexi> ok mom 
17:39 < nexi> args misst pastne funct nich richtig mit putty 
17:39 <@deifl> s/plugins/plugin/ 
17:39 <@deifl> nexi klar geht das 
17:39 <@deifl> ':set nopaste' 
17:39 <@deifl> dann sollte es gehen 
17:40 < nexi> brauchte das ja ina console aber habs jetzt 
17:40 < nexi> oder auch nich lol 
17:40 < nexi> hat links gezogen nich den inhalt 
17:41 < nexi> so jetzt 
17:42 < nexi> script is geladen 
17:42 <@deifl> mach mal deine ~/.vimrc auf 
17:42 < nexi> meine leere jo 
17:42 <@deifl> da muss noch was rein bevor es funktioniert (komfortabel) 
17:42 < nexi> ok 
17:43 <@deifl> dann leg eine an 
17:43 < nexi> ja hab ich schon 
17:43 <@deifl> noremap <silent> <F11> :cal VimCommanderToggle()<CR> 
17:43 < nexi> kühl mit f11 dann zu öffnen 
17:45 <@deifl> jo 
17:45 <@deifl> kommst klar? 
17:45 < nexi> soweit ja  
17:45 < nexi> kann ich denn ejtzt auch links fm aufhaben udn rechts editieren z.b? 
17:47 <@deifl> hmmm... quasi links so nen dateibaum 
17:48 < nexi> genau 
17:48 <@deifl> auf anhieb weiss ich das nicht wie das geht aber es geht zu 99.99% 
17:48 < nexi> hehe ok 
17:48 <@deifl> ich geb duir die tage deswegen bescheid


Fenster splitten

17:48 < nexi> aber es gibt doch split windows irgendwie soweit ich weiss 
17:48 < nexi> jau danke  
17:48 <@deifl> klar kann man windows splitten 
17:49 <@deifl> mach mal vim zu und starte neu mit einer datei 
17:50 < nexi> ok 
17:50 <@deifl> jetzt ':new </pfad/zur/datei>' 
17:50 <@deifl> und schon ist die neue datei offen
Befehl Funktion
:new /pfad/zur/datei oeffnet /pfad/zur/datei in neuem Fenster
17:51 < nexi> ah 
17:52 <@deifl> wechseln kannst du die fenster mit strg-w strg-w (also 2 mal hintereinander)
Tasten Funktion
STRG-w STRG-w wechselt Fenster
STRG-w [hjkl] wechselt Fenster in angegebener Richtung 1)
17:52 < nexi> jau klappt super  
17:52 <@deifl> strg-w richtungstaste wechselt zu dem fenster in der angegebenen richtung 
17:52 < nexi> vertikal geht abern ich oder? 
17:52 <@deifl> vertical geht mit 'vnew datei' 
17:53 <@deifl> ':vnew datei'
Befehl Funktion
:vnew /pfad/zur/datei oeffnet /pfad/zur/datei in neuem Fenster daneben (vertikal)
17:53 < nexi> oh nu wirds interessant :D 
17:53 < nexi> aber mit pfeiltasten will noch nich so hm 
17:54 <@deifl> du kannst fenster sogar vergroessern/verkleinern/angleichen (groesse) 
17:54 <@deifl> 'strg-w j' waehlt fenster darunter 
17:54 <@deifl> strg-w l das rechts daneben liegende usw 
17:54 <@deifl> deswegen ist es wichtig sich an hjkl zu gewoehnen 
17:55 < nexi> jau ok  
17:55 < nexi> und wie resized man? 
17:55 <@deifl> mit strg-w > und strg-w < waagerecht 
17:56 <@deifl> mit strg-w + und strg-w - senkrecht 
17:56 <@deifl> strg-w = gleicht alle groessen an 
17:56 <@deifl> strg-w | und strg-w _ maximieren fester auf breite bzw hoehe
Tasten Funktion
STRG-w [<>] waagerechte Groesse aendern
STRG-w [+-] senkrechte Groesse aendern
STRG-W = macht alle Fenster gleich gross
STRG-W [|_] maximiert Fenster auf Breite und Hoehe
17:57 <@deifl> weiteres muesste ich nachschlagen/nachlesen 
17:58 <@deifl> :help window weiss da ganz ganz viel mehr 
17:59 <@deifl> koenntest du mal einen screenshot von deinem vim machen? 
17:59 < nexi> jau sehr schön aber soweit  
17:59 <@deifl> ? 
17:59 < nexi> wie er grad aussieht? 
17:59 <@deifl> japp 
18:02 < nexi> http://i37.tinypic.com/2ilfuqd.jpg 
18:02 <@deifl> weil ich denke dass du sicher ne hilfreiche statuszeile brauchen koenntest ;) 
18:02 < nexi> hehe vermutlich nicht schlecht nö  
18:02 <@deifl> aaah da hat jemand q gedrueckt ;) 
18:02 < nexi> jo aber mehr ausversehen hehe  
18:02 < nexi> nich zum macro aufnehmen 
18:02 <@deifl> -g- 
18:03 <@deifl> http://phpfi.com/372924 <-- 11 zeilen fuer deine ~/.vimrc 
18:03 <@deifl> dann hast du alle wichtigen infos auf einen blick 
18:03 < nexi> gibts irgnedwie :qall? 
18:04 <@deifl> japp ':qa' oder ZZ 
18:04 < nexi> hm zz aml probieren qa ging nich wirklich 
18:05 < nexi> ah wegen schreiben wars 
18:05 < nexi> hehe 
18:05 < nexi> ! fehlte 
18:06 <@deifl> neustart wegen .vimrc braucht es nicht... ':source ~/.vimrc' reicht  
18:06 < nexi> ok 
18:06 < nexi> also angezeigt wird noch nxi neues 
18:07 <@deifl> die zeilen sind ezakt so in deiner ~/.vimrc? 
18:07 < nexi> jo aber kanns sein das die " wegmüssen? 
18:07 <@deifl> nein das markiert kommentare 
18:08 < nexi> ja eben  
18:08 < nexi> links sind die aber auch^^ 
18:08 < nexi> is wohl v nopaste  
18:08 <@deifl> zeig deine mal 
18:09 <@deifl> zumindest darf vor set kein " stehen 
18:09 < nexi> so habs  
18:09 < nexi> da waren vor den zeilen immer noch "  
18:09 < nexi> "set usw  
18:09 <@deifl> :%s/^"//g 
18:10 < nexi> zu spät aber gut zu wissen^^ 
18:11 ||| appelhenka [~appelhenk@is.der.poet.im.euirc.net] has quit Ping timeout 
18:11 <@deifl> hehe 
18:11 <@deifl> jetzt liegt er am boden 
18:11 < nexi> jau  
18:11 < nexi> bestimmt konntabier getrunken :D 
18:12 <@deifl> hast du noch fragen oder belassen wir es fuers erste dabei - ich fass das ganze dann zusammen und geb dir nen link 
18:13 < nexi> ja denk das reicht erstmal für die wichtigsten dinge 
18:13 <@deifl> jau - nachfragen kannst du ja auch bei unklarheiten 
18:13 < nexi> jup 
--- Log closed So Nov 02 18:24:56 2008 


weiteres

aus der pengupedia

(noch zu formatieren)

Vi ist ein ursprünglich für BSD? geschriebener Texteditor, der sich (einmal abgesesehen von Emacs) auf unixoiden Systemen zum Standard-Texteditor etablieren konnte. Da vi selbst ein kommerzielles Produkt ist gibt es zahlreiche Klone unter OpenSource-Lizenzen für GNU/Linux. Vim (Vi IMproved) und nvi? sind vielleicht die bedeutendsten und bieten gegenüber vi zahlreiche weitere Funktionen. Vim hat sogar eine eigende Scriptsprache?, mit der sich in Vim neben Syntaxhighiliting sogar ein IRC-Client realisieren lässt. Solche Scripts findet man z.B. auf der Homepage von Vim.

Ist einer dieser Klone auf einem GNU/Linux-System installiert, so startet dieser in aller Regel automatisch durch den Befehl
vi

Welcher Editor mit diesem Befehl verknüpft ist, erfährt man durch Eingabe von
update-alternatives –display vi

Wie man diesen rätselhaften Editor wieder schließt, fragt sich wohl jeder, der ihn zum ersten Mal zu Gesicht bekommt. Dabei ist es ganz einfach. Zunächst die Esc-Taste drücken, dann gelangt man in den Befehlsmodus (s. u.) und gibt dann ein:
:q

Manchmal muss man noch zusätzlich ein ! hinten dranhängen (Datei geändert, soll aber nicht gespeichert werden).

Der Editor hat 3 verschiedene Arbeitsmodi:

  • Befehlsmodus ( wird beim Start verwendet )
  • Eingabemodus
  • Extended Mode

Zusätzlich verfügt der vi-Klon Vim über einen vierten Mode, den Visual Modeext. link.

Befehlsmodus
Im Befehlsmodus können, wie der Name schon sagt, verschiedene Befehle ausgeführt werden:
Steht vor dem Befehl ein [Ziffer], so kann vor der Befehlstaste noch eine Zahl ( 0-99 ) eingegeben werden. Die nachfolgende Operation wird dann so oft wiederholt, wenn möglich.

i (insert) an aktueller Position neuen Text einfügen ( wechselt in Eingabemodus )
a (after) nach aktueller Postion neuen Text einfügen ( wechselt in Eingabemodus )
o ( ) füge Text in neuer Zeile unter der aktuellen Zeile ein ( wechselt in Eingabemodus ), O bewirkt dasselbe in der Zeile darüber.
w Navigiert ein Wort weiter in Leserichtung. 5w bewegt den Cursor entsprechend 5 Wörter weiter.
b Bewegt den Cursor ein Wort rückwärts.
[Ziffer]x löscht Zeichen an aktueller Stelle
d<Bewegungs-Befehl> (delete) Löscht Text. Mit dw kann man bis zum Wortende löschen, d$ Löscht bis zum Zeilenende, d^ bis zum Zeilenanfang. d/Mojo<Enter> löscht bis zum nächsten Vorkommen des Wortes „Mojo“ (siehe auch /Text).
[Ziffer]r (replace) überschreibe ein Zeichen
R Überschreiben bis ESC gedrückt wird
[Ziffer]dd Löscht eine Zeile
G Gehe in die letzte Zeile
[Ziffer]G Gehe in die Zeile [Ziffer]
/Text Suche nach der Zeichenfolge 'Text' ( Vorwärts )
?Text Suche nach der Zeichenfolge 'Text' ( Rückwärts )

 	( Für / und ? gilt: mit n wird das nächste Auftreten in angegebener Richtung gesucht, mit N in umgekehrter Richtung ) 

:w (write) Speichere Text
:w <Dateiname> Speichere Text in Datei <Dateiname>
:q (quit) Beendet Editor
:wq (oder :x) Speichern und Beenden
:n (next) gehe zu nächster Datei, wenn mehrere Dateien offen sind
Eingabemodus
Im Eingabemodus kann Text eingegeben werden. Mit Backspace geht der Cursor zwar nach links, aber der Text wird nicht direkt gelöscht, sondern er wird erst gelöscht, wenn der Eingabemodus beendet wird oder er wird durch neue Eingabe überschrieben.
Der Eingabemodus wird durch Drücken von ESC beendet.

Vorsicht: Das Drücken der Pfeiltasten sollte vermieden werden !

Tipps und Tricks
Problem: Beim Einfügen von Text mittels Copy&Paste werden die Zeilen immer weiter nach rechts eingerückt.
Lösung: Vor dem Einfügen einfach mit den Befehl :set paste ausführen. Nach der Aktion kann wieder mit :set nopaste in den normalen Modus zurückgekehrt werden.
Nico Lumma: http://lumma.de/eintrag.php?id=280ext. link erklärt uns, warum er vi(m) mag und hat gleich noch eine .vimrc parat, die syntaxhighliting kann (bei der .vimrc ist zu beachten, daß die Double Quotes (Anführungszeichen) anstelle der Raute für Kommentare benutzt werden ;)
Problem (zugegebenrmaßen sehr künstlich): Das erste Wort jeder Zeile soll in Kleinbuchstaben umgewandelt werden. Dazu wird ein „substitute“ benutzt, man gibt ein:
:%s/^\w*/\=tolower(submatch(0))/

Dieses Suchen-Ersetzen spricht auf alle Worte (Buchstaben und Zahlen) am Zeilenanfang (^\w*)an und ersetzt diese durch das Ergebnis der Funktion tolower() (wobei das Suchergebnis durch submatch(0) repräsentiert wird).
Die Zeichenfolge gqap im Befelsmodus formatiert den Textblock, in dem sich der Cursor z.Zt. befindet, neu. Dabei ist die aktuelle Breite für den Textumbruch entscheidend. :set tw=75 setzt diese beispielsweise auf 75 Zeichen.
Soll bei einem erneutem editieren einer Datei der Cursor beim Öffnen wieder an der letzten Position erscheinen einfach folgende Zeile in der ~./vimrc hinzufügen
au BufReadPost * if line(“'\““) | exe “'\““ | endif

Mit vim lassen sich hervorragend Dateien auf einem ftp-Server direkt editieren:
vim ftp://username@ftp.host.tdl/index.html

Dafür muß eine Datei ~/.netrc existieren.
:r !date

Die Ausgabe von date wird eingefügt.
vimtutor eignet sich sehr gut dazu, um sich mit den Funktionen von Vim vertraut zu machen.
Befehle wiederholen: Als Beispiel wird bei 13 aufeinander folgenden Zeilen am Ende jewils der Ausdruck „oark“ an Ende hinzugefügt.
qa$aoark<esc>jq13@a
Erklärung: q startet die Aufzeichnung a ist der Name des Registers, in dem gespeichert wird. $ geht ans Ende der Zeile, a fügt hinter dem Cursor ein, <esc> geht wieder aus dem Einfügemodus raus. j ist runter (oder Cursortaste runter drücken). Das zweite q beendet die Aufzeichnung. Alles zwischen qa und q lässt sich jetzt mit @a wiederholen. Die 13 vorweg führt den Befehl 13 mal aus (wenn wirklich noch 13 Zeilen vorhanden sind). Ausprobieren! Es geht vielleicht auch anders, aber ist ein gutes Beispiel.

Weblinks (extern)

fazit

foo bar baz

diskussion

  • hiermit eroeffnet — deifl 2008/11/08 17:18
1) siehe Navigation
howtos/vim.txt · Zuletzt geändert: 2010/01/07 14:43 (Externe Bearbeitung)
Nach oben