BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

vi Fenster teilen

Im vi(1) lässt sich das Fenster teilen, so kann man gleichzeitig mehrere Dokumente bearbeiten. Um das Fenster zu teilen, muss man sich zuerst im Kommandomodus befinden (dies erreicht man, indem man die Esc-Taste drückt) und danach mit dem Doppelpunkt in den ex Modus wechselt und anschliessend E drückt. Nun wird das Fenster geteilt und in der neuen Hälfte das gleiche Dokument geöffnet.

Mit Ctrl + w kann man zwischen den beiden Fensterhälften wechseln. Nun kann man zum Beispiel mit :e <Dateiname> im aktiven Fenster eine neue Datei, mit dem angegebenen Dateinamen, anlegen.

Related Entries:
Treppeneffekt beim Einfügen von Text im vi verhindern
Rechtschreibprüfung im vi
Abkürzungen im vi benutzen
vi Makros benutzen
vi Kurzreferenz
 Permalink

chruetertee-Suchplugin für den Firefox

Ich habe ein Suchplugin für den Firefox erstellt, mit dem man diese Seite durchsuchen kann. Als Grundlage für das Plugin habe ich das google-Suchplugin verwendet, welches schon mit dem Firefox installiert wurde.

Das Plugin kann ganz einfach installiert werden. Einfach folgende Dateien ins searchplugins-Verzeichnis, auf FreeBSD ist dies /usr/X11R6/lib/firefox/searchplugins, kopieren:

Danach muss der Firefox nur noch neu gestartet werden und schon kann man das Suchplugin verwenden.

Comments (1)  Permalink

Schöne Ostern wünscht Euch chruetertee.ch

Frohe Ostertage wünsch ich Euch.

Frohe Ostern

Herzlichen Dank an Nina für das geniale Oster-Bild!

 Permalink

WebDAV Client für die Kommandozeile

Möchte man auf Daten zugreifen, die per WebDAV freigegeben sind, so kann man dies auch auf der Kommandozeile mit cadaver machen. Auf FreeBSD befindet sich cadaver unter www/cadaver, auf OpenBSD befindet es sich unter net/cadaver. Auf FreeBSD installiert man cadaver wie folgt:

# cd /usr/ports/www/cadaver && make install clean

Danach kann man sich mit der WebDAV-Ressource verbinden und gegebenenfalls Authentifizieren:

# cadaver http[s]://<hostname>[:<port>]/<pfad>
Authentication required for Ressource on server `WebDAV Server':
Username: <Benutzername>
Password: <Passwort>

Danach steht ein Prompt zur Verfügung:

dav:/<pfad>/>

Hier stehen einem verschiedene Kommandos zur Auswahl, die man auch von verschiedenen Kommandozeilen ftp/sftp Clients her kennt:

dav:/<pfad>/> help
Available commands:
ls cd pwd put get mget mput
edit less mkcol cat delete rmcol copy
move lock unlock discover steal showlocks version
checkin checkout uncheckout history label propnames chexec
propget propdel propset search set open close
echo quit unset lcd lls lpwd logout
help describe about
Aliases: rm=delete, mkdir=mkcol, mv=move, cp=copy, more=less, quit=exit=bye

Hier die wichtigsten Kommandos:

pwd Zeigt den Pfad auf dem WebDAV Server an

lpwd Zeigt den lokalen Pfad an

Mit cd und lcd werden die Verzeichnisse auf dem Server und auf dem lokalen Rechner gewechselt.

ls Listet den Inhalt des aktuellen Verzeichnisses auf dem WebDAV Server auf

lls Listet den Inhalt des aktuellen Verzeichnisses auf dem lokalen Rechner auf

get <Datei> Läd die Datei vom aktuellen Verzeichnis auf dem Server ins lokale Verzeichnis auf dem Rechner

put <Datei> Läd die Datei vom lokalen Verzeichnis auf dem Rechner ins aktuelle Verzeichnis auf dem WebDAV Server

Mit mget und mput können mehrere Dateien auf einmal hinauf- oder heruntergeladen werden.

Mit close wird die aktuelle Verbindung getrennt und mit quit wird cadaver beendet.

Alle Kommandos können in der Manpage cadaver(1) nachgelesen werden.

 Permalink

Abkürzungen im vi benutzen

Im vi(1) lassen sich Abkürzungen (abbreviations) definieren. So kann man für oft gebrauchte Wörter, Satzteile oder Sätze Abkürzungen definieren, welche dann automatisch vom vi umgewandelt werden. Abkürzungen werden mittels des ex-Befehls ab festgelegt. Dazu muss man sich zuerst im Kommandomodus befinden (dies erreicht man, indem man die Esc-Taste drückt) und danach mit dem Doppelpunkt in den ex Modus wechseln und die Abkürzung eingeben:

ab <Abkürzung> <Satz oder Wort, das die Abkürzung ersetzt>

Um eine Abkürzung zu nutzen, wird im Textmodus die Abkürzung geschrieben, wenn man dann nach der Abkürzung die Leer-oder Entertaste drückt, wird die Abkürzung durch das vorher definierte Wort oder den Satz ersetzt.

Im folgenden Beispiel wird eine Abkürzung definiert die mfg durch Mit freundlichen Grüssen ersetzt:

ab mfg Mit freundlichen Grüssen

Danach muss im vi nur noch mfg geschrieben werden, wenn man danach noch die Leertaste oder Enter drückt, wird dies ersetzt.

Oft gebrauchte Abkürzungen lassen sich auch in der .exrc oder in der /etc/vi.exrc dauerhaft speichern.

Related Entries:
Treppeneffekt beim Einfügen von Text im vi verhindern
Rechtschreibprüfung im vi
vi Fenster teilen
vi Makros benutzen
vi Kurzreferenz
 Permalink

vi Makros benutzen

Im vi(1) lassen sich oft gebrauchte vi-Kommandofolgen zu einem Makro zusammenfassen. Makros werden mittels des ex-Befehles map oder map! definiert. Werden Makros mit map erstellt, so kann das Makro aus dem Kommandomodus aufgerufen werden, map! Makros werden aus dem Textmodus aufgerufen. Um die ex-Befehle map/map! ausführen zu können, muss man sich zuerst im Kommandomodus befinden, dies erreicht man indem man im vi die Esc-Taste drückt. Danach kann mittels des Doppelpunktes in den ex-Modus umgeschaltet werden und das Makro definiert werden:

map[!] <Taste> <Kommandofolge>

Um ein Makro zu definieren, welches im Kommandomodus durch die q-Taste aufgerufen wird und an der aktuellen Cursorposition \subsection{ einfügt, danach ans Ende der Zeile springt und dort ein } einfügt, kann folgender Befehl gebraucht werden:

map q i\subsection{^[$a}

Die Kommandofolge wird dabei so eingegeben, wie wenn man das Kommando direkt im vi benutzt:

i Wechselt in den Textmodus
\subsection{ Fügt an der aktuellen Cursorposition \subsection{ ein
^[ Esc-Taste, um in den Kommandomodus zu wechseln. Muss als Ctrl + v Esc eingegeben werden
$ Springt ans Zeilenende
a Wechselt in den Textmodus, das nächste Zeichen wird nach der aktuellen Cursorposition eingefügt
} Fügt eine schliessende, geschweifte Klammer ein

Wie in diesem Beispiel gesehen wurde, müssen Steuerzeichen wie Esc, Return, Backspace mit Ctrl + v in den Makros maskiert werden.

Makros können auch auf die Funktionstasten F1 - F12 gelegt werden. Diese Tasten werden durch eine Raute # und die jeweilige Nummer symbolisiert. Folgendes Makro wird aus dem Kommandomodus mit F1 aufgerufen, fügt eine neue Zeile ein, fügt auf dieser \begin{lstlisting} ein und setzt den Cursor im Textmodus auf eine neue Zeile:

map #1 o\begin{lstlisting}^M
o Fügt eine neue Zeile nach der aktuellen Cursorposition ein und wechselt danach in den Textmodus
\begin{lstlisting} Dieser Text wird auf der neuen Zeile eingefügt
^M Return-Taste. Ein Zeilenumbruch wird vorgenommen. Wird als Ctrl + v Return eingegeben

Dieses Makro kann nur aus dem Kommandomodus aufgerufen werden. Es kann jedoch für die gleiche Taste noch ein anderes Makro definiert werden, das aber aus dem Textmodus aufgerufen wird. So kann zum Beispiel jetzt noch ein Makro auf die F1 Taste gelegt werden, dass im Textmodus aufgerufen wird, welches in den Kommandomodus wechselt und dort F1 aufruft:

map! #1 ^[^[OP
^[ Esc-Taste um in den Kommandomodus zu wechseln. Wird als Ctrl + v Esc eingegeben
^[OP F1-Taste um das Kommandomodus-Makro auf F1 auszuführen. Wird als Ctrl + v F1 eingegeben

So lassen sich natürlich interessante Sachen wie folgende zwei Makros machen:

map #1 i^[OP
map! #1 ^[^[OP

Das erste Makro wechselt durch das Drücken der F1-Taste in den Textmodus und wählt die F1-Taste, welche wiederum durch das zweite Makro in den Kommandomodus wechselt und dort die F1-Taste auswählt... Drückt man nun die F1 Taste, lässt sich dieses Spielchen dann nur noch durch ein kill -9 <vi-PID> beenden.

Eine Kurzreferenz von vi Kommandos findet man hier: http://www.chruetertee.ch/blog/archive/2005/11/26/vi-kurzreferenz.html

Anstatt Makros jedes mal wieder neu einzugeben, lassen sich diese auch in der .exrc dauerhaft speichern. Einfach die Makrozeile in die .exrc des Benutzers einfügen oder in der /etc/vi.exrc definieren, dann stehen die Makros allen Benutzern zur Verfügung.

Related Entries:
Treppeneffekt beim Einfügen von Text im vi verhindern
Rechtschreibprüfung im vi
vi Fenster teilen
Abkürzungen im vi benutzen
vi Kurzreferenz
 Permalink

Schöne Weihnachten wünscht euch Beastie

"Oh Tannenbaum, oh Tannenbaum, der Tux der hängt am Weihnachtsbaum...."

Danke vielmals an Nina für diesen festlichen Tannenbaum.

Comments (2)  Permalink

vi Kurzreferenz

Ich werde öfters gefragt, wieso ich den vi als Editor brauche. Ganz einfach, der kann viel und man editiert so schnell, wie mit keinem anderen Editor. Deshalb möchte ich den Befehl der Woche dem vi widmen.

Bewegen


h, j, k, l links, runter, hinauf, rechts
Pfeiltasten Hoffentlich selbsterklärend
w, b
Springt jeweils ein Wort vorwärts/rückwärts
E
Springt ans Ende des aktuellen Wortes
0, $
Springt zum Anfang/Ende der Zeile
H, M, L
Springt an den Anfang, in die Mitte oder ans Ende des Fensters
G
Springt ans Ende der Datei
1G
Springt an den Anfang der Datei
Suchen
/<Wort>[Enter] Sucht vorwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben
?<Wort>[Enter]
Sucht rückwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben
n, N
Sucht nach <Wort> vorwärts, rückwärts fortsetzen
Schreiben

i, a
Fügt den nachfolgenden Text vor/nach dem Buchstaben unter dem Cursor ein
I, A
Fügt den nachfolgenden Text am Anfang/Ende der Zeile ein
o, O
Fügt eine neue Zeile nach/vor der aktuellen Zeile ein
r
Ersetzt das aktuelle Zeichen unter dem Cursor
Löschen

x
Löscht das aktuelle Zeichen unter dem Cursor
dh
Löscht das Zeichen links des Cursors
dw
Löscht das aktuelle Wort
db
Löscht das Wort links des aktuellen Wortes auf dem sich der Cursor befindet
dd
Löscht aktuelle Zeile
d0, d$
Löscht die Zeile von der aktuellen Corsorposition zum Zeilenanfang/-ende
dG Löscht alle folgenden Zeilen, einschliesslich der aktuellen, bis zum Ende der Datei
J
Löscht den Zeilenumbruch zwischen der aktuellen und der nächsten Zeile
d/<Wort>
Löscht von der aktuellen Cursorposition alles bis zu <Wort>
Navigieren

:<Zielennummer>
Geht zur angegebenen Zeile
Suchen und ersetzen

:s/<suche>/<ersetze>/ Sucht <suche> auf der aktuellen Zeile und ersetzt den ersten Treffer durch <ersetze>
:s/<suche>/<ersetze>/g Sucht <suche> auf der aktuellen Zeile und ersetzt alle durch <ersetze>
:%s/<suche>/<ersetze>/g Sucht <suche> in der ganzen Datei und ersetzt es durch <ersetze>
:%s/<suche>/<ersetze>/gc Sucht <suche>in der ganzen Datei und fragt nach, ob er es durch <ersetze> ersetzen soll
Weiteres

u Macht den letzten ausgeführten Befehl rückgängig
. <- Punkt Führt den letzten ausgeführten Befehl nochmals aus
~ Ändert Grossbuchstaben in Kleinbuchstaben und umgekehrt
Kommandomodus
[Esc] Wechselt in den Kommandomodus
:w / :w <Dateiname> Speichert Datei / Speichert Datei in <Dateiname>
:q / :q! Verlässt den vi / Verlässt vi ohne geänderte Datei zu speichern
:wq oder :x
Speichert Datei und verlässt den vi
:! <Befehl> Führt <Befehl> in der Shell aus
:e <Dateiname> Erstellt neue Datei namens <Dateiname>
Kopieren und Einfügen
yy Kopiert aktuelle Zeile
p, P
Fügt kopierte Zeile nach/vor der aktuellen Zeile ein

Lösch- und Bewegungsbefehle können auch noch mit Zahlen kombiniert werden, so löscht zum Beispiel ein 3dw gleich 3 Wörter auf einmal oder ein 5h bewegt den Cursor gleich 5 Zeichen nach links.

Leider weiss ich auch nicht alle Befehle auswendig, aber dafür hab ich ja meine vi Referenz Kaffeetasse.

Related Entries:
Treppeneffekt beim Einfügen von Text im vi verhindern
Rechtschreibprüfung im vi
vi Fenster teilen
Abkürzungen im vi benutzen
vi Makros benutzen
 Permalink

mySQL Datenbank sauber herunterfahren und auf Fehler prüfen

Um eine mySQL Datenbank sauber herunterzufahren ist folgender Befehl zu benutzen:

# mysqladmin shutdown -p

Danach muss das mySQL root Passwort eingegeben werden. Mehr Informationen zu mysqladmin mit:

# mysqladmin --help

Mit mysqlcheck kann die Datenbank auf Fehler überprüft werden:

# mysqlcheck -A -e -p

Die Option -A prüft alle vorhandenen Datenbanken und -e führt eine ausführliche Konsistenzüberprüfung durch. Mehr Informationen zu mysqlcheck mit:

# mysqlcheck --help
 Permalink

chruetertee BSD Daemon

Nina hat mir einen chruetertee.ch BSD Daemon gemacht:

chrueterteeBSD_weiss

Der Daemon kann in voller Grösse hier bestaunt werden. Die Lizenzinformationen zum BSD Daemon kann hier nachgelesen werden.

Danke vielmals an Nina für den Daemonen.

Comments (4)  Permalink
Prev Next11-20/22