Programmfenster Zwischenablage Die Ausführungen der
vorherigen Seiten über Programmfenster werden hier weitergeführt.
Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. Oder man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Editors ein. Dann drückt man zum Abspeichern gleichzeitig Strg und O dann drückt man die Eingabetaste um den Dateinamen zu bestätigen dann drückt man zum Verlassen des Editors gleichzeitig Strg und X. Man kennt das Kopieren und Einfügen. Dazu kann man einen Text markieren und mit der Tastenkombination Strg+C kopieren und mit Strg+V einfügen. Oder man benutzt das Menü das durch Drücken mit der rechten Maustaste auf den markierten Bereich erscheint und wählt Kopieren und entsprechend an der Stelle des blinkenden Cursors Einfügen. Das Kopierte wird in der Zwischenablage zwischengespeichert - unter Linux nennt man diese Zwischenablage clipboard. Aber unter Linux gibt es mehr als eine Zwischenablage. Zum Verdeutlichen kann man neben dem Browser-Fenster ein Textprogramm-Fenster (gedit oder LibreOffice) platzieren. Kopiert man nun den Text Programmfenster im Browserfenster und markiert anschließend den Text Zwischenablage ohne diesen zu kopieren (also lediglich markieren) so kann man durch Mausradklicken im Textprogramm-Fenster Zwischenablage einfügen und anschließend durch Strg+V Programmfenster einfügen und wieder durch Mausradklicken Zwischenablage einfügen und durch Rechtsklick und Einfügen Programmfenster einfügen. Allein durch die Markierung wird in einer anderen Zwischenablage dieses hinterlegt. Unter Linux nennt man diese Zwischenablage primary. |
Nun kann man sich
fragen ob man weitere "Zwischenablagen" erzeugen kann in denen
feste Texte hinterlegt sind (etwa Adresse, Datum, e-mail, oft benutzte
Absätze) die man dann schnell abrufen kann. Dazu gibt es natürlich
entsprechende Software aber man kann auch mit einfachem script eine
Lösung finden. Als erstes installiert man das Programm xclip etwa über synaptic. Damit wird eine Verbindung von Zwischenablage und Terminal hergestellt. Dann kann man einen versteckten Ordner erzeugen, der Speicherplätze für Einträge aufnimmt die dann in die Zwischenablage übernommen werden |
mkdir ~/.meine_zwischenablage |
Dort kann man Speicherplätze als txt-Dateien hinterlegen. Um den Überblick zu wahren wurden nur 8 Speicherplätze verwendet. Je mehr Plätze vorhanden sind umso mehr muß man suchen. |
for i in {1..8}; do echo Speicherplatz$i > ~/.meine_zwischenablage/zA$i.txt; done |
Zunächst kopiert man die Zeichenfolge aus dem darunterliegenden weißen Feld und fügt diese im Terminal ein - OHNE die Eingabetaste zu drücken. |
xclip -o > ~/.meine_zwischenablage/zA8.txt |
Dann kopiert man e-mail-adresse und geht zum Terminal zurück und drückt die Eingabetaste. So wird mittels xclip der Text e-mail-adresse aus der Zwischenablage in die Datei zA8.txt geschrieben. Gibt man umgekehrt ein |
xclip -i < ~/.meine_zwischenablage/zA8.txt |
So wird der Text e-mail-adresse aus der Datei zA8.txt in die Zwischenablage geschrieben (als default wird primary verwendet). Mit Mausradklick kann dies irgendwo eingefügt werden. Möchte man daß das Einfügen mit Strg+V und dem Kontextmenü mit Rechtsklick und Einfügen funktioniert muß man clipboard verwenden: |
xclip -i -selection clipboard < ~/.meine_zwischenablage/zA8.txt |
Man kann dann Texte
hinterlegen die tausende von Textzeichen enthalten und auch Texte die mit
Zeilenumbruch über mehrere Zeilen verteilt sind. Um bei der Anzeige
dieser Texte die Übersicht zu wahren werden in der Vorschau im
zenity-Fenster die Einträge auf 3 Zeilen und die Zeichen 1 bis 60 pro
Zeile beschränkt. Man soll die Einträge ohne übermäßige Zeichenflut
schnell erkennen können. Dies erreicht man mit: zA1=$(cat ~/.meine_zwischenablage/zA1.txt | cut -c 1-60 | head -n 3) Dann wird das script erstellt |
nano ~/.meine_zwischenablage/scZWISCHEN.sh |
Eingabe in den Editor: |
#!/bin/bash rT=3 while [ $rT -eq 3 ] do zA1=$(cat ~/.meine_zwischenablage/zA1.txt | cut -c 1-60 | head -n 3) zA2=$(cat ~/.meine_zwischenablage/zA2.txt | cut -c 1-60 | head -n 3) zA3=$(cat ~/.meine_zwischenablage/zA3.txt | cut -c 1-60 | head -n 3) zA4=$(cat ~/.meine_zwischenablage/zA4.txt | cut -c 1-60 | head -n 3) zA5=$(cat ~/.meine_zwischenablage/zA5.txt | cut -c 1-60 | head -n 3) zA6=$(cat ~/.meine_zwischenablage/zA6.txt | cut -c 1-60 | head -n 3) zA7=$(cat ~/.meine_zwischenablage/zA7.txt | cut -c 1-60 | head -n 3) zA8=$(cat ~/.meine_zwischenablage/zA8.txt | cut -c 1-60 | head -n 3) szZW=$(zenity --list --ok-label "In die Zwischenablage kopieren" --cancel-label "Neuen Eintrag aus Zwischenablage hinzufügen" --title "In die Zwischenablage kopieren" --text "Einen Eintrag auswählen. Doppelklick auf Eintrag möglich." --column "hinterlegte Einträge" "DATUM" "1.$zA1" "2.$zA2" "3.$zA3" "4.$zA4" "5.$zA5" "6.$zA6" "7.$zA7" "8.$zA8" --width=680 --height=560 ) if [ $? -eq 0 ]; then if [ $szZW = "DATUM" ]; then date +%d.%m.%Y | xclip -i -selection primary date +%d.%m.%Y | xclip -i -selection clipboard rT=1 else szSP=$(echo zA${szZW:0:1}.txt) cat ~/.meine_zwischenablage/$szSP | xclip -i -selection primary cat ~/.meine_zwischenablage/$szSP | xclip -i -selection clipboard rT=1 fi else szZSP=$(zenity --list --ok-label "Neuen Eintrag aus der Zwischenablage speichern" --cancel-label "Beenden" --title "Neuen Eintrag speichern" --text "Speicherplatz für den neuen Eintrages wählen" --column "Auswahl der Speicherplätze" "A1:$zA1" "A2:$zA2" "A3:$zA3" "A4:$zA4" "A5:$zA5" "A6:$zA6" "A7:$zA7" "A8:$zA8" --width=680 --height=560 ) if [ $? -eq 0 ]; then szSP=$(echo z${szZSP:0:2}.txt) xclip -o > ~/.meine_zwischenablage/$szSP rT=3 else exit fi fi done |
Nun muß man die Datei ausführbar machen |
chmod +x ~/.meine_zwischenablage/scZWISCHEN.sh |
Der Aufruf des scriptes erfolgt mit |
~/.meine_zwischenablage/scZWISCHEN.sh |
Um damit gut arbeiten zu
können verwendet man zum
Starten dieses scriptes am besten eine Tastenkombination, vielleicht Alt+V Das Vorgehen der Zuordnung einer Tastenkombination ist beschrieben auf Debian Gnome Ordner Terminal Wenn die Tastenkombination zum Starten des scriptes eingerichtet ist geht man so vor: Man setzt den Cursor an die Stelle an der etwas eingefügt werden soll. Dann drückt man Alt+V und wählt durch Doppelklick mit der Maus (oder mit Tastenkombinationen) den Eintrag der eingefügt werden soll. Dann drückt man Strg+V. Auch das Menü über rechte Maustaste oder Mausradklick kann man zum Einfügen benutzen, aber wie üblich ist dabei darauf zu achten daß man die genaue Position des Cursors trifft. |
Es gibt keine
Schaltfläche zum Beenden des obigen Fensters - aber man kann einfach
irgendwas in die Zwischenablage kopieren um das Fenster zu
schließen. Die Einträge lassen sich leicht ändern durch Drücken der Schaltfläche Neuen Eintrag aus Zwischenablage hinzufügen Man markiert (kopiert) das Gewünschte und wählt dann einen Speicherplatz. Damit wird der Inhalt der Zwischenablage (primary) an dem gewählten Speicherplatz hinterlegt - der alte Inhalt des Speicherplatzes geht dabei natürlich verloren. |
Hat man die meisten
Speicherplätze mit wichtigen Einträgen versehen und braucht man
dann doch für ein Projekt weitere Speicherplätze kann man den
Ordner ~/.meine_zwischenablage kopieren und mit anderem Namen versehen. Die alte ~/.meine_zwischenablage kann einfach mit neuen Einträgen überschreiben werden. Durch Umbenennen des kopierten Ordners kann der frühere Zustand schnell wiederhergestellt werden. Und man kann sogar noch mehr machen. Kopierte Daten können in der Zwischenablage bearbeitet werden und dann in veränderter Form zum Einfügen bereit gestellt werden. Ein Beispiel dazu: |
Angenommen es liegt der oben
blau hinterlegte Text vor in einer schmalen Spalte und mit
Siblentrennungszeichen. Dann kann man diesen einfach markieren und in der
daruntergezeigten Form einfügen, ohne Silbentrennung in der ganzen
Seitenbreite und mit Erhaltung der Einrückung und der Absätze. Dazu holt man mit xclip die Daten aus der Zwischenablage und bearbeitet diese mit sed: Am Anfang jeder Zeile wird QQ geschrieben, das Silbentrennzeichen am Ende der Zeile wird durch YY ersetzt, am Ende jeder Zeile wird YY geschrieben. Dann werden alle Zeilen zu einer Zeile reduziert. Die Kombination YYQQYYQQ wird durch einen doppelten Zeilenumbruch ersetzt, die Kombination YYYYQQ wird gelöscht, die Kommbination YYQQ wird durch ein Leerzeichen ersetzt, die anderen YY QQ Kombinationen werden gelöscht. Dann wird das Zenity-Fenster um einen weiteren Eintrag UMBRUCH-ENTFERNEN ergänzt und die dazugehörenden Befehle hinterlegt. Das neue script sieht dann so aus: |
#!/bin/bash rT=3 while [ $rT -eq 3 ] do zA1=$(cat ~/.meine_zwischenablage/zA1.txt | cut -c 1-60 | head -n 3) zA2=$(cat ~/.meine_zwischenablage/zA2.txt | cut -c 1-60 | head -n 3) zA3=$(cat ~/.meine_zwischenablage/zA3.txt | cut -c 1-60 | head -n 3) zA4=$(cat ~/.meine_zwischenablage/zA4.txt | cut -c 1-60 | head -n 3) zA5=$(cat ~/.meine_zwischenablage/zA5.txt | cut -c 1-60 | head -n 3) zA6=$(cat ~/.meine_zwischenablage/zA6.txt | cut -c 1-60 | head -n 3) zA7=$(cat ~/.meine_zwischenablage/zA7.txt | cut -c 1-60 | head -n 3) zA8=$(cat ~/.meine_zwischenablage/zA8.txt | cut -c 1-60 | head -n 3) szZW=$(zenity --list --ok-label "In die Zwischenablage kopieren" --cancel-label "Neuen Eintrag aus Zwischenablage hinzufügen" --title "In die Zwischenablage kopieren" --text "Einen Eintrag auswählen. Doppelklick auf Eintrag möglich." --column "hinterlegte Einträge" "DATUM" "1.$zA1" "2.$zA2" "3.$zA3" "4.$zA4" "5.$zA5" "6.$zA6" "7.$zA7" "8.$zA8" "UMBRUCH-ENTFERNEN" --width=680 --height=560 ) if [ $? -eq 0 ]; then if [ $szZW = "DATUM" ]; then date +%d.%m.%Y | xclip -i -selection primary date +%d.%m.%Y | xclip -i -selection clipboard rT=1 elif [ $szZW = "UMBRUCH-ENTFERNEN" ]; then xclip -o | sed 's|^|QQ|g' | sed 's|-$|YY|g' | sed 's|$|YY|g' | tr -d '\n' | sed 's|YYQQYYQQ|\n\n|g' | sed 's|YYYYQQ||g' | sed 's|YYQQ| |g' | sed 's|YY$||g' | sed 's|^QQ||g' > ~/.meine_zwischenablage/zAA.txt cat ~/.meine_zwischenablage/zAA.txt | xclip -i -selection primary cat ~/.meine_zwischenablage/zAA.txt | xclip -i -selection clipboard rT=1 else szSP=$(echo zA${szZW:0:1}.txt) cat ~/.meine_zwischenablage/$szSP | xclip -i -selection primary cat ~/.meine_zwischenablage/$szSP | xclip -i -selection clipboard rT=1 fi else szZSP=$(zenity --list --ok-label "Neuen Eintrag aus der Zwischenablage speichern" --cancel-label "Beenden" --title "Neuen Eintrag speichern" --text "Speicherplatz für den neuen Eintrages wählen" --column "Auswahl der Speicherplätze" "A1:$zA1" "A2:$zA2" "A3:$zA3" "A4:$zA4" "A5:$zA5" "A6:$zA6" "A7:$zA7" "A8:$zA8" --width=680 --height=560 ) if [ $? -eq 0 ]; then szSP=$(echo z${szZSP:0:2}.txt) xclip -o > ~/.meine_zwischenablage/$szSP rT=3 else exit fi fi done |
Man markiert die gewünschte Textstelle. Dann drückt man Alt+V und wählt durch Doppelklick mit der
Maus (oder mit Tastenkombinationen) den Eintrag UMBRUCH-ENTFERNEN Dann sucht man die Stelle zum Einfügen und drückt Strg+V. Auch das Menü über rechte Maustaste oder Mausradklick kann man zum Einfügen benutzen. |