Puis-je spécifier quels caractères définissent la limite de sélection du double-clic dans le terminal GNOME?


16

Lorsque je double-clique pour sélectionner du texte dans GNOME Terminal, la sélection s'arrête aux espaces mais continue sur les tirets:

les espaces

tirets

Certains de mes noms de fichiers contiennent des caractères inhabituels tels que l' astérisque à gros rayons en forme de larme et ne peuvent pas être sélectionnés en double-cliquant:

personnages insolites

Existe-t-il un moyen de continuer la sélection par double-clic sur ces caractères?

Réponses:


9

Dans "Edition> Préférences de profil> Général", ajoutez le caractère dans la case "Caractères de sélection par mot".


Merci, je ne sais pas comment je n'ai pas remarqué ça.
ændrük

Quelqu'un a-t-il trouvé un moyen général de faire cela à l'échelle de GNOME? Ou les limites des mots sont-elles laissées aux développeurs de chaque application pour définir / redéfinir? Question connexe: superuser.com/q/650240/245597 .
Noyo

11
Au moins depuis la version 3.14, cette option a disparu. Comment pouvons-nous le faire maintenant?
Joachim Breitner

J'ai essayé dconf write /org/gnome/terminal/legacy/profiles:/:{your-profile-id}/word-char-exceptions '@ms "-,.;/?%&#_=+@~·:"'mais tout ce que je reçois esterror: Could not connect: Connection refused
cprn

Je n'arrive pas à faire fonctionner l'espace insécable. Il fonctionne cependant avec l'astérisque funky sur le terminal compagnon de Zesty.
Gringo Suave

16

[Ajout d'une réponse car la réponse acceptée ne fonctionne plus.]

Scénario

J'ai mis cela ensemble dans un script pour définir les séparateurs de mots:

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

Contexte

Le terminal GNOME a basculé à plusieurs reprises sur ce sujet.

Cette fonctionnalité de configuration a été supprimée dans gnome-terminal 3.14 (incluse dans Ubuntu 15.04 Vivid)

Puis dans gnome-terminal 3.16 (inclus dans Ubuntu 15.10 Wily), l'option a été réintroduite sous le capot, mais sans interface utilisateur. De plus, deux points ont :été modifiés pour être traités comme un séparateur de mots.

Édition avec dconf

Selon ces instructions, vous pouvez configurer l'ensemble à l'aide de dconf: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1401207/comments/8

J'aime utiliser -#%&+,./:=?@_~comme ensemble de séparateurs non-mot.

Notez que l'utilisation des deux-points est / crazy /. Oui, il y a: /: là-dedans.

1) modifier -> préférences de profil -> l'onglet Général de votre profil a son ID de profil, par exemple b1dcc9dd-5262-4d8d-a863-c897e6d979b9

2) Vérifiez que vous avez la bonne syntaxe avec:

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

S'il ne renvoie rien, vous vous trompez; réessayer.

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

Plus précisément, cela a ":" dans, ce qui lui permet de sélectionner des URL comme je l'attends. ( http://example.com ne sélectionne pas "//example.com").


Merci, c'est exactement ce dont j'avais besoin pour obtenir :. Est-il possible que vous puissiez écrire la (les) commande (s) pour récupérer automatiquement le profil par défaut ou actuel afin que je n'aie pas à rechercher manuellement mon ID de profil afin d'exécuter cette commande à l'avenir? De cette façon, je peux simplement exécuter ce script sur de nouvelles installations.
Programster

@Programster Vous pourriez faire quelque chose comme ça avecdconf list /org/gnome/terminal/legacy/profiles:/
AB

merci @alberge j'ai pris cela et l'ai mis dans un script python
Programster

Quelle est la valeur par défaut de word-char-exceptions, donc je peux ajouter un seul caractère?
Tor Klingberg

1

Une fonction par défaut très utile implémentée dans d'autres terminaux est la sélection progressive de sections étendues d'une ligne à l'écran. par exemple, étant donné

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

double-cliquer sur, disons, filenren dsr.filenr_34.ctrpasserait de filenrà:

                              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

Les symétries environnantes peuvent être résolues en ajoutant des paires jusqu'au délimiteur de niveau suivant.

Et bien sûr, l'utilisateur devrait avoir la possibilité de modifier les paramètres par défaut.


1
Pas de commentaire sur la réponse mais essayez de mieux la formater pour que les gens la comprennent plus vite. Si vous souhaitez le répertorier étape par étape, utilisez la numérotation.
VedVals

Merci, mais je ne pense pas que cela s'applique à ma question. Je demande spécifiquement comment configurer le terminal GNOME.
ændrük

1

Les autres réponses ne fonctionnent pas aujourd'hui ... cela fonctionne sur ubuntu 18.04 ... identifiez d'abord votre identifiant de profil de terminal gnome UUID ... émettez ceci dans le terminal

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

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

maintenant changez:

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

jusqu'à ce qu'ubuntu 18.04 soit corrigé, la commande de lecture suivante échoue silencieusement alors qu'elle fonctionnait bien sur ubuntu 16.04

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

Ressemble plutôt à askubuntu.com/a/725109/158442
muru

0

En étendant la réponse @alberge, vous pouvez exécuter le python3script suivant pour modifier tous vos profils pour ce faire:

#!/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!")

Ou vous pouvez simplement exécuter:

curl -s http://scripts.programster.org/scripts/5?output=raw | python3
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.