Kann ich angeben, welche Zeichen die Doppelklick-Auswahlgrenze in GNOME Terminal festlegen?


16

Wenn ich in GNOME Terminal doppelklicke, um Text auszuwählen, stoppt die Auswahl bei Leerzeichen, wird aber über Bindestrichen fortgesetzt:

Leerzeichen

Bindestriche

Einige meiner Dateinamen enthalten ungewöhnliche Zeichen, wie z. B. das durch Tropfen hervorgerufene Sternchen, und können nicht durch Doppelklicken ausgewählt werden:

ungewöhnliche Charaktere

Gibt es eine Möglichkeit, die Doppelklick-Auswahl auch bei diesen Zeichen fortzusetzen?

Antworten:


9

Fügen Sie unter "Bearbeiten> Profileinstellungen> Allgemein" das Zeichen in das Feld "Wortauswahl" ein.


Danke, ich weiß nicht, wie ich das nicht bemerkt habe.
ændrük

Hat jemand einen allgemeinen Weg gefunden, dies GNOME-weit zu tun? Oder können die Entwickler jeder Anwendung Wortgrenzen definieren / neu definieren? Verwandte Frage: superuser.com/q/650240/245597 .
Noyo

11
Spätestens seit Version 3.14 ist diese Option verschwunden. Wie können wir das jetzt machen?
Joachim Breitner

Ich habe es versucht, dconf write /org/gnome/terminal/legacy/profiles:/:{your-profile-id}/word-char-exceptions '@ms "-,.;/?%&#_=+@~·:"'aber alles, was ich bekomme, isterror: Could not connect: Connection refused
cprn

Kann nicht scheinen, den nicht brechenden Raum zum Arbeiten zu bringen. Es funktioniert jedoch mit dem funky Sternchen auf dem Kumpel-Terminal von Zesty.
Gringo Suave

16

[Hinzufügen einer Antwort, da die angenommene nicht mehr funktioniert.]

Skript

Ich habe dies in einem Skript zusammengefasst, um die Worttrennzeichen festzulegen:

https://github.com/ab/ubuntu-wart-removal/blob/master/gnome-terminal-word-separators.sh

Hintergrund

GNOME Terminal hat zu diesem Thema mehrmals Flip-Flops gemacht.

Diese Konfigurationsfunktion wurde in Gnome-Terminal 3.14 entfernt (in Ubuntu 15.04 Vivid enthalten)

Dann wurde in gnome-terminal 3.16 (in Ubuntu 15.10 Wily enthalten) die Option unter der Haube wieder eingeführt, jedoch ohne Benutzeroberfläche. Außerdem wurde der Doppelpunkt :geändert, um als Worttrennzeichen behandelt zu werden.

Bearbeitung mit dconf

Gemäß dieser Anleitung können Sie das Set mit dconf konfigurieren: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1401207/comments/8

Ich verwende gerne -#%&+,./:=?@_~als Satz von Nicht-Worttrennzeichen.

Beachten Sie, dass die Verwendung von Doppelpunkten dort / crazy / ist. Ja, da ist: /: drin.

1) Bearbeiten -> Profileinstellungen -> Die Registerkarte Allgemein in Ihrem Profil hat ihre Profil-ID, z. B. b1dcc9dd-5262-4d8d-a863-c897e6d979b9

2) Überprüfen Sie, ob Sie die richtige Syntax haben:

$ dconf list /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ foreground-color visible-name palette use-system-font ...

Wenn es nichts zurückgibt, haben Sie es falsch verstanden; Versuch es noch einmal.

3) dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/word-char-exceptions '@ms "-#%&+,./:=?@_~"'

Insbesondere hat dies ":", wodurch es URLs auswählt, wie ich es erwarte. ( http://example.com wählt nicht "//example.com" aus).


Danke, das ist genau das, was ich brauchte, um zu bekommen :. Ist es möglich, dass Sie die Befehle schreiben, um das Standardprofil oder das aktuelle Profil automatisch abzurufen, sodass ich meine Profil-ID nicht manuell nachschlagen muss, um diesen Befehl in Zukunft auszuführen? Auf diese Weise kann ich das Skript nur bei Neuinstallationen ausführen.
Programster

@Programster Sie könnten so etwas tun mitdconf list /org/gnome/terminal/legacy/profiles:/
AB

danke @alberge Ich nahm das und legte es in einem Python-Skript
Programster

Was ist der Standardwert von word-char-exceptions, damit ich nur ein Zeichen hinzufügen kann?
Tor Klingberg

1

Eine sehr nützliche Standardfunktion, die in anderen Terminals implementiert ist, ist die fortlaufende Auswahl erweiterter Abschnitte einer Zeile auf dem Bildschirm. zB gegeben

/home/username/dir1_r.2-3/dsr.filenr_34.ctr 23456677 dftrprpr

Ein Doppelklick auf, sagen wir, filenrin dsr.filenr_34.ctrFortschritte würden von filenrzu:

                              filenr_34
                          dsr.filenr_34.ctr
                       -3/dsr.filenr_34.ctr
                      2-3/dsr.filenr_34.ctr
                    r.2-3/dsr.filenr_34.ctr
               dir1_r.2-3/dsr.filenr_34.ctr
      username/dir1_r.2-3/dsr.filenr_34.ctr
 home/username/dir1_r.2-3/dsr.filenr_34.ctr
 home/username/dir1_r.2-3/dsr.filenr_34.ctr 23456677
 home/username/dir1_r.2-3/dsr.filenr_34.ctr 23456677 dftrprpr
/home/username/dir1_r.2-3/dsr.filenr_34.ctr 23456677 dftrprpr

Umgebungssymmetrien können durch Hinzufügen von Paaren bis zum nächsten Trennzeichen gelöst werden.

Natürlich sollte der Benutzer die Möglichkeit haben, die Standardeinstellungen zu ändern.


1
Keine Kommentare zu der Antwort, aber versuchen Sie, sie besser zu formatieren, damit die Leute sie schneller verstehen. Wenn Sie es Schritt für Schritt auflisten möchten, verwenden Sie die Nummerierung.
VedVals

Vielen Dank, aber ich denke nicht, dass dies auf meine Frage zutrifft. Ich frage speziell, wie GNOME Terminal konfiguriert werden soll.
ændrük

1

Andere Antworten funktionieren heute nicht ... dies funktioniert unter Ubuntu 18.04 ... zuerst die ID Ihres UUID-Gnome-Terminalprofils identifizieren ... dies im Terminal ausgeben

profile=$(gsettings get org.gnome.Terminal.ProfilesList default)

echo $profile  #  for me it gives b1dcc9dd-5262-4d8d-a863-c897e6d97969

Jetzt ändere:

dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d97969/word-char-exceptions '@ms "-,.;?%&#_+@~·$/"'

Bis Ubuntu 18.04 behoben ist, schlägt der folgende Lesebefehl unbemerkt fehl, wohingegen er unter Ubuntu 16.04 einwandfrei funktioniert hat

dconf  read  /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/word-char-exceptions

Sieht eher aus wie askubuntu.com/a/725109/158442
muru

0

Wenn Sie @alberge answer erweitern, können Sie das folgende python3Skript ausführen , um alle Ihre Profile zu ändern:

#!/usr/bin/python3

import subprocess

command = ["dconf", "list", "/org/gnome/terminal/legacy/profiles:/"]
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

profiles = result.stdout.split('\n')

for profileString in profiles:
    if profileString.startswith(":"):
        changeCmdPart = "/org/gnome/terminal/legacy/profiles:/" + profileString + "word-char-exceptions"
        changeCmd = ["dconf", "write", changeCmdPart, '@ms "-#%&+,./:=?@_~"']
        subprocess.run(changeCmd)

print("done!")

Oder Sie können einfach ausführen:

curl -s http://scripts.programster.org/scripts/5?output=raw | python3
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.