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.