my cat ate my mouse - effizientes Arbeiten mit Texttools - Linux-Tage-Graz 2003 - 25. April 2003 - Autor: Michael Prokop - michael@linuxtage.at - www.michael-prokop.at - Thu Apr 25 16:00:00 CEST 2003 Inhalt - Was sind Texttools? - Warum überhaupt Texttools? - Was müssen Texttools leisten? - Welche Tools gibt es? - Editor: vim - Mailer: mutt - Newsreader: slrn - Textbrowser: lynx, links, elinks, w3m - Instant Messenger: centericq - Screen A statement on Graphical User Interfaces (GUIs) 1/2 ''GUIs are nice. Colorful and all that. They allow issuing commands with a mouseclick and the symbols on the buttons can show you what they'll do. However, GUIs require a lot of resources. And they won't read the manuals to you. Alright, some GUIs can display documentation nicely, but that really does not enhance the documentation. I am still waiting for the perfect GUI. So far I have seen some very nice ones - but none of them gave me the power and speed of a text interface and the keyboard. ... A statement on Graphical User Interfaces (GUIs) 2/2 .. I prefer to have fast access to data. Bad GUIs do not only slow me down, I also find them quite aggravating. And I have yet to see programs with GUIs which can be used in scripts easily to help automating tasks. Programs with a text interface are a lot faster. Usually. Mind you, I do use a GUI whenever I need to look at pictures on some webpages, view a text in PDF or PostScript, or view the output of a LaTeX source.'' -- Sven Guckes www.guckes.net/sven/www.guckes.net/sven/ Was bringen Texttools? - In der Regel via Textdatei konfigurierbar -> keine proprietäre, binäre Schnittstelle, auch remote mit einem Editor und ohne X wart- und konfigurierbar - ressourcensparend -> auch auf alter Hardware einsetzbar - meist plattformunabhängiger als GUI (POSIX, SysV) - remote leichter verwendbar, da viel weniger Bandbreitenbedarf Welche Texttools gibt es z.B.? - http://www.vim.org/vim - Editor - http://www.mutt.org/mutt - Mailclient - http://www.slrn.org/slrn - Newsreader - http://elinks.or.czelinks - Browser - http://konst.org.ua/centericq/centericq - Instant-Messenger - http://www.gnu.org/software/screen/screen - Terminalmanager Vim - Features 1/12 - Vim (Vi IMproved) ist ein Vi Klon mit vielen weiteren features - Vim gibt es auch mit einem GUI (Fonts, Maus, Menüs, Rollbalken) - Vim ist für eine Vielzahl an Plattformen verfügbar: AmigaOS, Atari MiNT, BeOS, DOS,MacOS, NextStep, OS/2, OSF, RiscOS, SGI, UNIX, VMS, Windows, *BSD und natürlich Linux. - Vim ist OpenSource und charity-ware (:help uganda) -> kostenlos! - aktive Community: sechs Mailinglisten und zwei Newsgroups - comp.editors + de.comp.editoren Vim - Some quotes 2/12 - ''What you really want is ''x?emacs -nw -f viper-mode'', you get vi *and* the bloat. Now that's masochistic.'' -- Navindra Umanee << vim -c ":q" 0,19s user 0,01s system 97% cpu 0,206 total emacs -kill 0,44s user 0,10s system 76% cpu 0,708 total >> - Navigation im Vi-Editor: ''Wenn man das ein bisschen geübt hat, kann man auch wunderbar Leute beeindrucken, indem man (scheinbar) wirres Zeug in die Tastatur klopft, während sich am Bildschirm völlig asynchron dazu irgendwelche Änderungen vollziehen :-)'' -- Peter J. Holzer [aib] http://groups.google.at/groups?selm=slrnavc7do.mr8.hjp-usenet%40tea l.hjp.atoutput=gplain Vim - Warum Vim und nicht Notepad - 3/12 - fehlertolerant (unlimited undo and redo) - Abkürzungen und Präfixexpansion - eingebautes Textformatieren - offener Quellcode (Open Source) - für viele Betriebssysteme (''plattformunabhängig'') - freie Keybindings (free key binding) - Befehlssequenzen (macros) - Visuelles Markieren und Operatoren - Filtern (Benutzung externer Programme) Vim - Warum Vim und nicht Notepad - 4/12 - Syntaxhighlighting - mehrere Buffer (Dateien) - mehrere Fenster - reguläre Ausdrücke - Wörterbuch Lookup - gut dokumentiert - Onlinehilfe - viele Optionen und Plugins Vim - Warum Vim und nicht Notepad - 5/12 - Edit+Compile speedup - Folding (Einklappen von Textteilen) - Automatisierte Aktionen nach Events (-> syntax files) - Suche nach Worten in abhängigen Dateien (include files) - in Skripts verwendbar (scriptable) - Markierungen und Register - Tastenbelegung vieler Programme orientieren sich an VI Vim - Warum Vim und nicht Notepad - 6/12 - automatische Sicherung der Session (viminfo) - Mehrsprachig (UTF-8 + Unicode) - Indexdateien (tags) ''bookmarks'' - Virtuelles Editieren - Umschrift für spezielle Tasten (angle notation) - aktive Community (Website, Mailinglisten, Newsgruppen) - Standardeditor auf (fast) allen UNIX-Systemen (ubiquitous) Vim - Grundlagen 7/12 - $ vim -h | less - Intro: $ vimtutor - Online Hilfe: :help - $ man vim - Konfigurationsdatei für den User = $HOME /.vimrc - mehrere Modi: - Kommando-Modus (Command mode) - Visueller Modus (Visual mode) - Einfüge-Modus (Insert mode) - Kommandozeilen-Modus (Command-line mode) Vim - Grundlagen 8/12 Effekt abhängig vom Modus: - Command Mode (aka Normal Mode) - Command Line Mode (aka '': Mode'') - Insert (umfasst auch Append und Open) - Replace Mode (''overstrike'') - Visual - Character, Line, Block Vim - Grundlagen 9/12 Moduswechsel: - i -> Wechsel vom Kommando-Modus in den INSERT Modus - ESC Taste -> Wechsel vom INSERT Modus in den Kommando-Modus Vim - Grundlagen 10/12 Kommandos auf der Kommandozeile: - :w -> Speichern der Datei - :w datei -> Speichern einer Kopie in ''datei'' - :q -> Verlassen von vi Fehlermeldung bei nicht gesicherten Änderungen (feature!) - :q! -> Verlassen von vi ohne Datei zu speichern - :help -> Hilfe zum vi Vim - Nice Mappings 11/12 << " Abkürzungen: iab Umail iab HPG " Benutzung einer internen Funktion: iab Ydate =strftime("%y%m%d") iab ,I if(){}kk$i " Tasten -> Kommandos map ;C :previous map ;V :next map ,s :$r!agrep -d "^-- $" '' ~/.Signature\ " Textformatieren: map gqip >> Vim - Useful commands 12/12 - Präfixexpansion: bzw - Kommandokombination: d^/\ - Nummernpräfix: 10yy bzw. 10Y - Text umbrechen: gqap mutt - Grundlagen 1/5 - Tastaturinterface (sowieso) - klein und effizient (rund 500KB) - perfekte Konfigurationsmöglichkeit - mehrere Konten (alternates + reverse_name) - Unterstützung für Mailinglisten (lists+subscribe, list-reply) - Farben für Folderindex und für Nachrichten - Richtiges Threading und Scoring! - Unterstützt PGP und GnuPG (optional S/MIME) - mehr Features von mutt unter http://www.mutt.org/#featureswww.mutt.org/#features mutt - Grundlagen 2/5 - Mutt ist ein MUA (Mail User Agent) - nur für den Benutzer gedacht. - Mutt benutzt externe Programme für spezielle Aufgaben - Unix-Philosphie: ''one tool - one job'' für jede spezifische Aufgabe gibt es *mindestens* ein spezielles Tool - MTA (Mail Transfer Agent) - ''Mailserver'' z.B. exim, postfix, qmail, sendmail - MDA (Mail Delivery Agent) - ''Mailfilter'' sortieren der Mails in die jeweilige Mailbox z.B. http://www.procmail.orgprocmail mutt - Grundlagen 3/5 - MAA (Mail Access Agent)/secondary MDA remote Bearbeiten per IMAP Abholen der Mails per POP3 z.B. mit http://catb.org/ esr/fetchmail/fetchmail - Programme sind in den speziellen Kategorien *austauschbar* und daher auch nach Belieben kombinierbar mutt - Grundlagen 4/5 - Konfiguration via $HOME/.muttrc - Aufteilung in mehrere Konfigurationsdateien per ''source'' - source $HOME/.mutt/$PURPOSE - aliases (single + group) - Eigene Headerzeilen mit my_hdr - Keybinding mit bind und macro - Hooks: folder-hook, send-hook, save-hook - mailcap: eigenen converter bzw viewer definieren - Editor frei wählbar: << set editor="vim -c 'set tw=68 et' '+/^$'" >> - Header Editing! mutt - Grundlagen 5/5 - Hilfe mit ''?'' drücken -> Keybindings anzeigen - Kommandos können auf mehrere Nachrichten angewandt werden [tagging] - Konfiguration: RTFM! - Vorgangsweise: mutt Dokumentation lesen (Manual und manual.txt), dokumentierte muttrc holen - lesen, verstehen, konfigurieren, probieren, anpassen slrn - Grundlagen 1/3 Warum slrn und nicht ein $GUI-Newsreader? - textbasiert -> also auch via ssh benutzbar - remote -> dadurch auch nützbar, wenn auf dem lokalen Rechner kein ordentlicher, gut konfigurierter bzw. konfigurierbarer Newsreader installiert ist - slrn wird ständig weiterentwickelt - slrn hat viele Features und viele slang-Makros, die den Newsreader um nützliche Features erweitern - slrn ist netiquette-konform nach http://www.xs4all.nl/ js/gnksa/GNKSA (Good Net-Keeping Seal of Approval) slrn - Scoring 2/3 Was ist Scoring? - Nachrichten werden automatisch bewertet - Regeln für positives und negatives Bewerten - negative Scores -> als bereits gelesen markiert - positive Scores -> hervorgehoben; können meist direkt angesprungen werden - für das Scoring benötigt man ein Scorefile slrn - Scoring 3/3 Scoring - Wozu überhaupt? Bringt das was? - wichtiges erkennen -> direkt anspringbar - high score für interessante Diskussionen, Personen und Themen - low score für uninteressante Diskussionen, Personen und Themen - unwichtiges besser oder schneller überspringen - Filterung auf das Wesentliche -> Zeitersparnis! - Scoring unbedingt verwenden, wenn man Newsgroups regelmäßig nutzt Textbrowser: lynx, links, elinks, w3m 1/1 - textbasierter Browser - keine Grafiken -> spart Bandbreite und Wartezeit - links bietet Menüs und Unterstützung von Tabellen und Frames - elinks ist Weiterentwickling von links und bietet zusätzlich Unterstützung für IPv6 und mailcap, sowie bessere Farbunterstützung - w3m - freies Bewegen des Cursors, Unterstützung für Japanisch centericq 1/2 - ''Instant Messenger'' (IM) - textbasiert (ehschokloar) - Menüs und Fenster - unterstützt ICQ, Yahoo!, MSN, AIM TOC, IRC und Jabber - Senden, Empfangen, Forward von Nachrichten (URLs, SMS) - Verwaltung von Kontakten [Gruppen, serverseitig!] (mit Schnellsuche) - Logfile für Nachrichten (History) centericq 2/2 - view users details, Update der Userdetails - Registrierung neuer User Identification Number (UIN) - Listen für sichtbare und unsichtbare Kontakte (Visible/Invisible) - läuft auf einer Vielzahl an Systemen: Linux, FreeBSD, OpenBSD, NetBSD, Sun Solaris und MacOS X/Darwin Zusammenspiel der Programme << screen | +----------------------+ | mutt slrn centericq | | | \/ | | | | /\ | | | | / \ | | | vim elinks | +----------------------+ >> Screen und seine Fenster 1/3 << screen mit Statuszeile: +-------------------------------------+ | $ ls -l | | | | | | | | | | | | | | | | 0 bash 1 vim 2 mutt 3 slrn 4 cicq | +-------------------------------------+ >> Screen und seine Fenster 2/3 << split screen mit caption lines: +-------------------------------------+ | $ ls -l | | | | | | 0 bash | | Hallo, Welt! | | | | | | 1 vim | | 0 bash 1 vim 2 mutt 3 slrn 4 cicq | +-------------------------------------+ >> Screen und seine Fenster 3/3 << screen in einzelnen Fenstern: +-------------------------------------+ | $ ls -l | | |-+ | | |-+ | | | |-+ | | | | |-+ | 0 bash | | | | | +-------------------------------------+ | | | | | 1 vim | | | | +-------------------------------------+ | | | | 2 mutt | | | +-------------------------------------+ | | | 3 slrn | | +-------------------------------------+ | | 4 cicq | +-------------------------------------+ >> Screen 1/4 - screen ist ein ''window manager'' für die Konsole und Terminals. - Es gibt einen sog. ''scrollback history buffer'' für jedes virtuelle Terminal/Fenster damit ist ''make $* 2>&1 | less'' nicht mehr notwendig :-) - Copy/Paste-Modus - Text austauschen zwischen Fenstern -> keine Maus notwendig! Maus kann fehlen, kaputt sein.. - Events: Monitor und Silence - meldet Aktivität bzw. Nicht- Aktivität (seit N Sekunden) in einem Fenster - Hardcopy -> Screenshot Screen 2/4 - Logging -> mitloggen in einem Fenster - Titel -> Titel der Fenster sind wählbar - Session Locking -> Sicherheit in Abwesenheit (es pfuscht niemand rein wenn man Kaffee holt ;-) - Window Backlog -> zum Nachlesen und für vergessliche Leute ;-) Screen 3/4 - Digraph Mode -> Eingabe von Zeichen, die nicht auf der Tastatur sind. - Key Binding -> Zuordnung von Tasten zu Kommandos -> nützlich bei ungewohnter Tastatur und bei Problemen mit Tastenbelegung, Aufruf von speziellen Programmen z.B. vom Webbrowser auf Webseiten Screen 4/4 - screen --help -> Hilfe zu Screen anzeigen - screen -ls -> Screen-Sessions anzeigen - screen hört auf + aka ^/\A - ^/\A c -> neues Terminal - ^/\A ^/\A -> Wechsel zwischen 2 Terminals - ^/\A d -> ''detach'' Verbindung zum Terminal lösen - screen -r -> ''reattach'' - die einzige detachte Session wieder an das aktuelle Terminal binden - screen -d -r -> einzige attachte Session vom Terminal lösen und an das aktuelle Terminal binden Noch eine Bitte... - Bitte die Netiquette achten! - Bitte bei Fragen möglichst viele Informationen angeben! http://catb.org/ esr/faqs/smart-questions.html http://catb.org/ esr/faqs/smart-questions.html http://www.lugbz.org/documents/smart-questions_de.html www.lugbz.org/documents/smart-questions_de.html - Gute Konfigurationsdateien und Hinweise bitte online zur Verfügung stellen! Vielen Dank! :-) Literatur und Links 1/2 - Vim - http://www.vim.orgwww.vim.org und news:de.comp.editoren sowie news:comp.editors - slrn - http://www.slrn.orgwww.slrn.org und news:de.comm.software.newsreader sowie news:news.software.readers - mutt - http://www.mutt.orgwww.mutt.org und news:comp.mail.mutt, http://www.fefe.de/muttfaq/faq.htmlwww.fefe.de/muttfaq/faq.html - links - http://elinks.or.czhttp://elinks.or.cz - centericq - http://freshmeat.net/projects/centericq/http://freshmeat.net/projects /centericq/ Literatur und Links 2/2 - screen - http://www.gnu.org/software/screen/ www.gnu.org/software/screen/ und http://www.math.fu-berlin.de/ guckes/screen/ www.guckes.net/screen/ - Meine Konfigurationsdateien: http://www.michael-prokop.at/computer/config/ www.michael-prokop.at/computer/config/ - Mailinglisten sind auch sehr gute Informationsmedien - URLs siehe Homepages der Programme! - Informationen zu den Themen Newsgroups und Netiquette: http://www.michael-prokop.at/newsgroup/ www.michael-prokop.at/newsgroup/ - Diese Folien sind unter http://www.linuxtage.at/prokop/ www.linuxtage.at/prokop/ bzw. die PDF-Folien unter: http://www.linuxtage.at/prokop/texttools.pdf www.linuxtage.at/prokop/texttools.pdf erhältlich. Und nun? Geschafft.. puh ;-) Gibt es Fragen? Thanks Dank geht an: - Die Autoren der Programme - Sven Guckes für seine zahlreichen Websites und seinen Support The End... Danke für die Aufmerksamkeit! Feedback ist willkommen! mailto:michael@linuxtage.atmichael@linuxtage.at << [*] Score:: +300 Subject: vim Subject: slrn Subject: mutt Subject: links Subject: centericq Subject: screen [*] Score: -9000 Subject: GUI >> ----------------------------------------------------------------------- This document was translated from LaTeX by HeVeA (http://pauillac.inria.fr/~maranget/hevea/index.html).