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%40teal.hjp.atoutput=gplain
<slrnavc7do.mr8.hjp-usenet@teal.hjp.at>
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 <ENTER> ® Speichern der Datei
- :w datei<ENTER> ® Speichern einer Kopie in ''datei''
- :q <ENTER> ® Verlassen von vi
Fehlermeldung bei nicht gesicherten Änderungen (feature!)
- :q! <ENTER> ® Verlassen von vi ohne Datei zu speichern
- :help <ENTER> ® Hilfe zum vi
Vim - Nice Mappings 11/12
" Abkürzungen:
iab Umail <mail@michael-prokop.at>
iab HPG <http://www.google.de/search?q=>
" Benutzung einer internen Funktion:
iab Ydate <C-R>=strftime("%y%m%d")<CR>
iab ,I if()<CR>{<CR>}<ESC>kk$i
" Tasten -> Kommandos
map ;C :previous<cr>
map ;V :next<cr>
map ,s :$r!agrep -d "^-- $" '' ~/.Signature\
<S-LEFT><S-LEFT><Right>
" Textformatieren:
map <c-j> gqip
Vim - Useful commands 12/12
-
Präfixexpansion: <CTRL-N> bzw <CTRL-P>
- 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
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 <Strg>+<a> 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.