URL: http://www.guckes.net/workshop/workshop.2009-02-26.vim.txt doodle: http://doodle.com/participation.html?pollId=2tfft4tz8fyfp8xf facebook: http://www.facebook.com/event.php?eid=50880608951 upcoming: http://upcoming.yahoo.com/event/1825146/ Latest change: Fri Feb 27 03:15:00 CET 2009 Zeit: 2009-02-26 Do Feb26 19-21h Ort: Medienraum in den Laskerhöfen, Hinterhaus, 1. Stock. workstation Ideenwerkstatt Berlin e.V. Laskerstr. 6-8, 10245 Berlin (Sbhf-Ostkreuz) Karte: http://friedrichshain.homelinux.org/places.html Photos: http://friedrichshain.homelinux.org/photos.html Gruppe: "Linux works" aka Linux User Group Friedrichshain linux@workstation-berlin.org http://workstation-berlin.org/projekte/computer-und-internet/linux-works Title: TextTools - Vim Workshop Teil2 Dozent: Sven Guckes - und alle Teilnehmer. Kosten: Kostenfrei. Tools: Vim (text editor) - siehe www.vim.org. Anmeldung: Mail an Sven schicken (guckes[at]guckes[dot]net) und im Doodle eintragen. Inhalt: Effektiver Umgang mit dem Tool - und ein bischen Konfiguration. Kommunikation: Chat: irc://irc.freenode.org/linuxworks Mail: http://mlists.in-berlin.de/mailman/listinfo/linuxworks-mlists.in-berlin.de Wiki: http://www.linuxwiki.de/linuxworks Zur Erinnerung: FreeNode #linuxworks --> /server irc.freenode.org /join #linuxworks Themen: bisherige Ideen: Autocommands: Automatische Ausfuehrung von Kommandos (triggered by events). Plugins: explorer.vim, netrw.vim, gzip.vim - latex-suite! Setup: Aufteilen der Setupdatei in mehrere Dateien mit "source". Substitution: Suchen+Ersetzen. Muster (regex). Vimdiff: Unterschiede von zwei Dateien anschauen - in Farbe! Rechner: Wir kuemmern uns diesmal nicht um Installationen. Jeder sollte Zugang zu einem Rechnern haben auf dem Vim installiert ist. Einen eigenen Server gibt es nicht, darum muss jeder das Programm auf seinem eigenen System installieren. Jeder Teilnehmer sollte moeglichst einen eigenen Rechner mitbringen, moeglichst einen Laptop. Vorbereitung: Bitte den Text des "vimtutor" durchlesen und die Uebungen darin einmal durchgehen. ---------------------------------------------------------------------------- Bericht: ---------------------------------------------------------------------------- Beteiligung: Etwa ein Dutzend Leute. Diana, Ninin, Silke; ChromeSilver, Helmchyn, housetier, someone; Alexander, Michael, Robert, Thomas - und noch mindestens zwei andere. Essen: Suppe mit Chili Nudeln mit Sauce Pudding mit Schoko fuer geile 2,50euro. :) danke, Kuechencrew! Internet: Der DHCP Server am Switch schien tot zu sein. Darum mussten sich ein paar Leute einfach eine IP selber vergeben und die Route setzen: $ sudo ifconfig eth0 192.168.3.67 $ route add default gw 192.168.3.253 Die Leitung war ab und zu ganz okay - aber auch streckenweise ziemlich tot. Eine DSL Leitung mit mehr Bandbreite waere schon schoener. Wer kuemmert sich drum? Die Renderingergebnisse von "someone" haette man ganz zu Anfang zeigen sollen. Housetier hat spaeter noch ein paar Dinge aus seinem Vim Setup gezeigt. Zwischen 21:15 und 22h gingen dann doch einige. Um 23:15 wurde dann abgebaut und zusmmengeraeumt. Um 23:30 sind wir dann aus dem Haus gegangen. Auf der Website fehlt noch ein kleines Video worin man den Bahnhof Ostkreuz sieht - und den Weg von dort ueber die bruecke und den Markgrafendamm in die Laskerstrasse, durch den Eingang und ums Haus herum zum Cafe. ---------------------------------------------------------------------------- Setup: Aufteilen der Setupdatei in mehrere Dateien mit "source". So sieht ein einfache Setupdatei aus: $ cat ~/.vimrc source ~/.vimrc.forall source ~/.vimrc.mine Das "vimrc.forall" ("~/." mal weggelassen) ist lesbar fuer alle Benutzer im System und kann daher auch von jedem mitbenutzt werden. aber das "vimrc.mine" beinhaltet nur meine eigenen Einstellungen und ist daher auch nicht oeffentlich lesbar - eigentlich. Eine grosser Setup laesst sich durch eine Aufteilung uebersichtlich gestalten und "modularisieren", zB kann eine Datei dann nur die Farbeinstellungen enthalten oder, fuer ein Mailprogramm, den Setup fuer GnuPG. Kommentiert man einen solchen source Befehl in einer Setupdatei aus, so kann man damit ganze Teile eines Setups ausblenden. Bequem! See also: http://www.guckes.net/Setup/vimrc.forall http://www.guckes.net/Setup/vimrc.mine ---------------------------------------------------------------------------- PAUSE: Essen um 19:50-20:15 http://www.youtube.com/watch?v=u5oMnLYCkw0 "My Spoon is Too Big" http://www.youtube.com/watch?v=MuOvqeABHvQ "Rejected - Best Oscar Award Winner Movie" Gerenderte Mini-Filme von Erik aks "someone": http://50m30n3.homeip.net/ http://50m30n3.homeip.net/blog/wp-content/uploads/2009/02/render10-hdr.mpg ---------------------------------------------------------------------------- Vimdiff: Unterschiede von zwei Dateien anschauen - in Farbe! $ vimdiff file1 file2 Geaenderte Zeilen haben einen magentafarbenen Hintergrund; unterschiedliche Zeichen darin haben einen roten Hintergrund. Hellblaue Zeilen stellen fehlende (virtuelle) Zeilen da. Dunkelblaue Zeilen sind die pendants zu den fehlenden Zeilen in der anderen Datei. Aenderungen kann man von der anderen Datei mit "do" holen (diff obtain) oder auch in die andere Datei uebertragen mit "dp" (diff put). Um jede Aenderungen herum gibt es ein Fenster von fuenf Zeilen, um den Kontext anzuzeigen. Alle Zeilen, die nicht in einem solchen Kontext liegen, sind also gleich und koennen daher "weggefaltet" werden. See also: do -> :help diffget dp -> :help diffput ---------------------------------------------------------------------------- Autocommands: Automatische Ausfuehrung von Kommandos (triggered by events). Ein paar einfache Beispiele: Beim einem "followup" (Antworten auf eine Nachricht in einer Newsgruppe im Usenet) wird eine weitere Setupdatei ausgefuehrt: au BufRead,BufNewFile .followup source ~/.vim/slrn_followup Beim Laden von postponed messages oder beim Schreiben von temporaeren Dateien von muttng wird angenommen, dass es sich um mails handelt, also wird der Dateityp "mail" ausgewaehlt: au BufNewFile,BufRead */postpone/*,muttng-* set ft=mail Bei Dateien vom Dateityp "mail" werden ein paar Optionen angepasst: au FileType mail set ai et ts=4 tw=70 Beim Beenden von Vim wird noch eine Meldung ausgegeben: au VimLeave * echo "Thanks for using Vim"version". --Sven Guckes@vim.org!" ---------------------------------------------------------------------------- Plugins: Gezeigt; netrw.vim -> :e http://www.guckes.net/ Nicht gezeigt: :Sex -> explorer.vim gzip.vim latex-suite: Kurz gesagt: Wir haben nicht rausbekommen, die diese LaTeX-Suite zu installieren sein. Wir haben die aktuellen Version der latex-suite runtergeladen und in das hoffentlich richtige Verzeichnis gelegt. Dennoch: Die Eingabe von F5 nach dem Namen einer Umgebung loeste nicht das Versprechen ein. Vorerst bleibt im Unklaren, warum die Installation nicht funktioniert. ---------------------------------------------------------------------------- Vim Filtering: Idee: Man schickt einen Block von Zeilen in einen Filter - und die Eingabe wird durch die Ausgabe ersetzt. Den ganzen Puffer umdrehen (ueber die Kommandozeile): :%!tac Aktuelle Zeile durch die Ausgabe von "date" ersetzen (aus dem normalen Kommandomodus heraus): !!date Aktuellen Absatz "spiegeln" (ueber dn visuellen Modus): vip!rev Aktuellen Absatz sortieren: !ipsort "Moo!" eingeben und die Kuh sprechen lassen: oMoo! !!cowsay Tools: _____________________________________ < cat tac rev wget curl dog cowsay nl > ------------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || Ausgabe von "date" einlesen: :r !date Ausgabe von "ls" einlesen: :r !ls Mapping fuer F5+F6 zum Verkuerzen bzw Verbreitern eines (mehrfach zitierten) Absatzes: map :set tw-=2gqip vmap :set tw-=2gvgqgv map :set tw+=2gqip vmap :set tw+=2gvgqgv man dog -> better than cat http://manpages.ubuntu.com/manpages/gutsy/man1/dog.1.html man less -> opposite of more ---------------------------------------------------------------------------- Screen window split zombie mode resurrect ---------------------------------------------------------------------------- Substitution: Suchen+Ersetzen. Muster (regex). die haben wir heute leider gar nicht geschafft. :-/ vielleicht das naechste mal?! see also: :help :s :help pattern see also: ":help diff" -> diff.txt ---------------------------------------------------------------------------- Links: http://www.guckes.net/vim/setup.html http://www.guckes.net/Setup/vimrc.minimal http://www.guckes.net/Setup/vimrc http://www.guckes.net/Setup/vimrc.forall http://www.guckes.net/Setup/vimrc.mine http://www.vim.org/ THPXRF EOF