mutt+vim workshop
Latest change: Tue Oct 24 14:03:40 CEST 2006
http://www.guckes.net/herford/
Fahrplan
=== Auftakt
Wie immer: Zuerst einmal screen starten.
Dann Mutt und Vim starten.
ist netz ok?
check: wer weiss über das programm wie viel?
wer mailt lokal, wer von einem remote server?
Mailingliste "workshop":
Bemerkungen, Fragen, Ideen - auf die Liste schicken!
wir schauen uns jene in der pause mal an -
und dann bauen wir das irgendwie mit ein.
=== Mini COnfig
Vorbereitung:
Server einrichten
Mailingliste einrichten
gruppenalias in /etc/Muttrc hinzufuegen
eigenen setup reduzieren auf minimal header.
viel farbe aus dem body rausnehmen.
evtl auch den display_filter abschalten.
initiales muttrc:
$ wget http://www.guckes.net/Setup/muttrc.workshop
$ mv muttrc.workshop ~/.muttrc
=== Inbox Index
Jumps: schnelles bewegen zwischen mails
repositionieren der aktuellen nachricht
=== Kommandos
die wichtigsten Kommandos sind:
j
k
J
K
Positionieren:
H home
M middle
L last
zt
zb
zz
Suchen:
/
?
Mailen:
m Mail neue Mail schreiben
Weiterleiten:
b bounce
f forward ...
Antworten:
r reply auf aktuelle Nachricht antworten
g group-reply ...
L list-reply ...
Kopieren
C copy
s save
Status aendern:
d delete
u undelete
N neu
F flag !
Beenden:
q quit Aenderungen zurueck in Folder schreiben und beenden
x exit keine Aenderungen in Folder schreiben und beenden
Mehrere Nachrichten behandeln:
t tag
; tag-prefix
l limit
-> Übersicht der Muster (patterns)
Advanced:
Postpone+recall
change-folder
mailboxes menu
Sortierung
Attachments (view, delete)
Threads
Kommandozeile
graft+prune
scoring
=== Viewing Messages
header: auswahl der zeilen, reihenfolge, farbe
display_filter: ändern+löschen vor dem anzeigen.
zB footers+signatures ausblenden, typos korrigieren
=== Senden
Beispielmail:
Absender, Headerzeilen, Hallo+signoff, Signatur.
Beantworten von Emails - Schema:
Ziel: Schnelles Editieren von Nachrichten - aber
ohne den Kontext zu verlieren oder TOFU zu senden.
== Mails editieren
- Anpassungen am Header der Nachricht:
- Adresse/Alias hinzufügen
- Subjectwechsel (,cs ,CS)
- Folderkopie (#D -> "Fcc: +KOELN")
- "Hallo, VORNAME!" (,hi ,ha)
- Hinweise zur Attribution
- Umbrechen von zitiertem Text (^J F5 F6)
.
- Löschen von Leerzeichen an Zeilenenden (F9)
- Löschen von zitierten Leerzeilen
- TABs in spaces umwandeln
- Verdichten von whitespace runs (F10)
- Absatz einrücken bzw löschen
- Satz löschen
- Rahmen um Zitat setzen
- Spoiler einfügen (^L) gefolgt
von rotiertem Text (ROT13)
- Leere Spalte einfügen für Zitate
*ohne* Leerzeichen nach dem '>'
.
- mails trennen nach thema; dazu
teile in register speichern und
bei weiterer antwort hervorholen
.
- (De-)Zitieren von Text (,qp ,dp)
- Einfügen von Webseitenadressen (s.o.)
- Einfügen eines Zitats (,aq) (agrep)
- Anfügung einer Signatur (,s) (agrep)
- Löschen von Vollzitaten (dG)
plenking. NOT!
templates: make use of registers and files (.sig.*)
vim7 spellchecking
verwendung von CC und BCC
extra header zeilen, my_hdr
Fcc: sideeffect
fast additions of extra headers
== vim:
cc dd aktuelle Zeile ändern bzw löschen:
C D Rest der Zeile ändern bzw löschen:
S substituiere (ändere) aktuelle Zeile
Kombination von Kommandos:
angekündigte Änderungsart plus Bewegung (jump):
dj aktuelle und nächste Zeile löschen
cG dG bis zum Ende des Buffers ändern bzw löschen:
Löschen bis zum Signaturtrenner:
d/^-- $
Wiederholung durch Nummernpräfix:
5dd fünf Zeilen löschen (aktuelle + vier folgenden)
5S fünf Zeilen ändern (aktuelle + vier folgenden)
Visual Mode:
Idee: Erst Text auswählen (visual selection),
dann Aktion (visual operator) wählen.
v{mov}c
V{mov}d
V{mov}rX
r<CR> Ersetzen eines Leerzeichens durch ein Zeilenende:
Text erneut nach textwidth formatieren.
F5+F6
Erinnerung: Auch beim Schreiben einer
Mail stehen weitere Puffer zur Verfügung.
:split
:new
Auslagern in bzw Einlesen von einer temporären Datei:
:w tempfile
:r tempfile
Shell benutzen? Shell aufrufen!
:shell
Und was sagt die Kuh dazu?
:r!cowsay moo
=== crypto
schlüsselpaar generieren
öffentlichen schlüssel auf keyserver hochladen
kleine keysigningparty?
signieren und verschlüsseln
=== Mutt Config
from+realname use_from
set from=guckes@guckes.net
set realname"Sven Guckes"
alias w Mutt Workshop Herford
alternates: eigene adressen bekannt machen -> to_chars
attribution: name+adresse, evtl datum+uhrzeit; ohne sprachliche worte!
edit_headers!
include
metoo
nomove
reverse_alias
reverse_name
minimal setupfile!
eigenes dot-verzeichnis
setupdateien. split per "source" command.
aliase in eigener aliasdatei anlegen; ":source aliases"
index_format, folder_format
== Color
farben im folder index
farben für nachrichten header+body
antworten auf eigene mails
bounced/resent mails
whitelisted people
=== Limit
teilmenge des index über "muster" auswählen.
übersicht zu den mustern.
spam "erkennen"
nur neue mails anzeigen.
doppelte ausblenden.
mails bestimmer leute ausblenden.
=== tag-prefix
kommandos auf mehrere mails anwenden (vor allem copy, save, delete).
tag by pattern
mails bestimmer leute verschieben.
=== Folders
save by time or username?
+vorname.nachname
+THEMA
save-hooks:
save-hook "~f jorge" +jorge.santos
fcc-hooks
mailboxes
suchstrategien über mehrere folder:
cat `grep -L foo ~/Mail/*` > /tmp/FOO; mutt -f FOO
cat foo >> bar
ln -is bar foo
=== Sending from Command Line
echo foo | mutt address
echo foo | mutt -s $SUBJECT address
echo foo | mutt -s "the subject" address
echo foo | mutt -s "the subject" address1 address2
mutt address < /tmp/datei
mutt -i /tmp/datei address
"-a" - attach file:
mutt -a file address
default setup on empty folder:
mutt -n -F /dev/null -f /dev/null
=== Mailinglisten
verhalten auf listen
subscribe + list-reply
nur neue mails ansehen -> limit ~N
folder-hook -> read_inc anspassen
save-hook - absenderadresse anpassen (roles)
threading
change of subject
thread hijacking: NoNo!
subject tags
"Re:" repair
mutt-ng: break thread (#)
prune+graft
=== Misc
bounce vs forward
index_format anpassen.
mailboxes übersicht. mutt -y
commandline:
:set prefixTAB
:set foo=TAB
:source
Key Bindings
unbound commands
macros
mailing listen und "roles"
mailen von der kommandozeile
mailen über cron (dont spam!)
internes POP vs fetchmail
IMAP vs POP
offline IMAP - stabil, aber "lahm+trafficsau"
Mailbox vs Maildir
=== filtering
spamassassin
procmail - minimal procmailrc
procmail logfile
M='less +G ~/.LOG/maillog'
MM=maillog
alias maillog="tail -1000 ~/.LOG/maillog | \
\grep -v SPAM | \grep Folder: | \
sed -e 's/^ *Folder: //' \
-e 's,/var/mail/guckes,INBOX,' \
-e 's/ [ ]*\([0-9][0-9]*\)$/\t\t\1/' | \
less -N"
change-folder 3xTAB
sync-folder statt quit+restart
muttng:
scoring
sidebar
http://www.strcat.de/mutt/Features.muttng
== compressed mailboxes:
save space - nice idea.
however, many problems.
workaround: tag old mails,
save to extra mailbox, compress.
uncompress if required.
=== LINKS
http://therandymon.com/content/view/42/79/
Weitere Vorschläge
Eure Ideen hier...
Bitte schickt mir Eure Fragen an mutt_workshop@guckes.net
Ihr könnt sie mir auch per SMS schicken an 0179-3966141.
Peter Voigt: Vim im Batch-Mode - als ersatz für sed
Gregor Radtke: "par" examples.