URL: http://www.guckes.net/workshop/workshop.2009-02-12.vim.txt doodle: http://www.doodle.com/participation.html?pollId=bapntrd6mbp4kibe upcoming: http://upcoming.yahoo.com/event/1797804/ Latest change: Wed Feb 11 15:15:15 CET 2009 Zeit: 2009-02-12 Do Feb12 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 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). Inhalt: Effektiver Umgang mit dem Tool - und ein bischen Konfiguration. Chat: irc://irc.freenode.org/linuxworks /server irc.freenode.org /join #linuxworks ZXXle: KonfiguratXXn: Minimale KonfiguratXXn. Konfiguration: Was sollte man dauerhaft speichern? Abkuerzungen: Expansionen auf Worte, Saetze, Absaetze. Aufzeichung: Kommandosequenzen aufzeichnen und abrufen. Copy+Paste: Schnelles Umschalten zum Paste-Modus. Vervollstaendigungen: Abkuerzungen, Praefixexpansion und Woerterbuecher. Teilnehmer: Maximal zehn Teilnehmer. Ich moechte mich auf die Teilnehmer konzentrieren koennen. Bei groesserer Menge an Leuten wird es sonst nicht mehr moeglich sein auf individuelle Fragen einzugehen - und es wird dann schnell zu einer Vorlesung. Voraussetzung: Die Teilnehmer sollten das Programm schonmal benutzt haben, dh zumindest "vimtutor" schonmal gelesen und damit geuebt haben. Rechner: Wir kuemmern uns 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. ---------------------------------------------------------------------------- Konfiguration: Minimale Konfiguration. Mein minimaler Setup ist auf meiner Website erhaeltlich - auch mit einer Beschreibung zu den einzlen Optionen: http://www.guckes.net/vim/setup.html http://www.guckes.net/Setup/vimrc.minimal ---------------------------------------------------------------------------- Konfiguration: Q: Was sollte man dauerhaft speichern? A: Alles, was man beim naechsten Start wieder zur Verfuegung haben will. Problematisch sind da die Optionen, die sich waehrend ds Editierens immer wieder mal aedern, zB die Expansion der TABs (et=expandtab, ts=tabstop), die Weite von Einrueckungen (shiftwidth), die Zeilennumerierung (nu=number), das Umbrechen von Text (wrap) und die Verwendung des Paste Mode (paste). ---------------------------------------------------------------------------- Abkuerzungen: Expansionen auf Worte, Saetze, Absaetze. iab foo bar iab FOO This is bar! iab baz This is bar!^MAnd it is also some more. Einfuegen anderer Textbausteine ueber ":read": :r # :r /etc/passwd :r !grep sh$ /etc/passwd ---------------------------------------------------------------------------- Aufzeichung: Kommandosequenzen aufzeichnen und abrufen. Das Zeichen 'q' ist bei vi nicht belegt. Es dient der Aufzeichnung von Tastendruecken als Sequenz von Kommandos und Eingabe. Das Zeichen nach dem initialen 'q' ist der Name eines Registers, in dem die Daten abgelegt werden sollen; zur Verfuegung stehen hier die Namen 'a' bis 'z'. Das 'q' gilt auch als Beendigung der Aufnahme. Beispiel: Beginnen wir auf einer Zeile, die lediglich eine Zahl enthaelt, zB "23". Man beginnt die Aufnahme also mit 'q' - gefolgt von 'a', so dass die Aufnahme im Register 'a' gespeichert wird. Nun kommen ein paar Kommandos: Das Kommando "yy" kopiert die aktuelle Zeile - und ein 'p' fuegt die Kopie nach der aktuellen Zeile ein; der Cursor wechselt auf die erste Zeile der Einfuegung - also auf der gerade eingefuegten Zeile. Nun geben wir die Zahl "42" ein - gefolgt von dem Befehl CTRL-A, um die aktuelle Zahl (23) um den vorangestellten Wert (42) zu erhoehen. Als Ergebnis erhalten wir "65". Mit 'q' beenden wir diese Aufzeichnung. Der Cursor befindet sich, wie vorher, auf einer Zeile mit einer Zahl. Im Register 'a' befindet sich nun die Aufzeichnung dieser Befehle. Mit "@a" rufen wir diese ab. Nun erhalten wir eine Zeile mit "107". Da wir nun ein Register zur Ausfuehrung benutzt haben, koennen wir diesen auch etwas schneller mit "@@" abrufen, dh "@a" wird wiederholt. Wir erhalten nun eine Zeile mit der Zahl "149". Auch dem Befehl "@@" koennen wir eine Zahl voranstellen, zB '5', dh die Eingabe ist "5@@". Wir erhalten nun fuenf weitere Zeilen mit Zahlen bis zur "359". 23 65 107 149 191 233 275 317 359 ---------------------------------------------------------------------------- Copy+Paste: Schnelles Umschalten zum Paste-Modus. Wenn man Text in den Editor per "paste" hineinfuegt, so sind weiterhin die Expansion von Abkuerzungen als auch das automatische Einruecken von Whitespace am Anfang der Zeile aktiv. Diese sind beim Paste aber oftmals nicht wuenschenswert. Man kann diese und weitere Effekte aber vorher abschalten, indem man einfach die Option "paste" setzt: ":set paste". Dafuer muss man aber 11 Tasten bemuehen (incl Return am Ende). Damit man nur eine Taste druecken muss, gibt es die Option "psatetoggle", die man lediglich auf die gewuenschte Taste setzt: ":set pastetoggle=" - hierbei also auf die Funktionstaste "F5". Wenn man nun in den Insert Mode wechselt und auf F5 drueckt, so wechselt die Anzeige unten links von "-- INSERT --" auf "-- INSERT (paste) --". Nach dem Einfuegen wechselt man ebenso wieder mit F5 zurueck. Darum heisst dieses Wechseln auch "toggle". ---------------------------------------------------------------------------- Vervollstaendigungen: Abkuerzungen, Praefixexpansion und Woerterbuecher. help i_CTRL-N help i_CTRL-P set dictionary=/usr/share/dict/ngerman help i+CTRL-X_CTRL-F help i+CTRL-X_CTRL-K ---------------------------------------------------------------------------- Jumps on current window: Jump to highest, middle, and lowest line with H M L, respectively. Use option "startofline" (sol) to keep the column (if possible). ---------------------------------------------------------------------------- Order of setup files: see ":version" output: system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" fall-back for $VIM: "/usr/share/vim" $ ls /etc/*vim* gvimrc vimrc vimrc.dpkg-old vimrc.tiny $ man vim /FILES ---------------------------------------------------------------------------- Links: http://www.guckes.net/vim/setup.html http://www.guckes.net/Setup/vimrc.minimal http://www.vim.org/ ---------------------------------------------------------------------------- Themen des naechste Treffen - voraussichtlich am Do 26. Feb 2009 19-21h: Plugins: .... (vim latex-suite) Substitution: Suchen+Ersetzen. Muster (regex). Autocommands: Automatische Aufuehrung von Kommandos (triggered by events). vimdiff: Unterschiede von zwei Dateien anschauen - in Farbe! Aufteilen des Setupdatei in mehrere Dateien: http://www.guckes.net/Setup/vimrc http://www.guckes.net/Setup/vimrc.forall http://www.guckes.net/Setup/vimrc.mine THPXRF EOF