Posso specificare quali caratteri impostare il limite di selezione del doppio clic nel Terminale GNOME?


16

Quando faccio doppio clic per selezionare il testo nel Terminale GNOME, la selezione si interrompe negli spazi ma continua su trattini:

spazi

trattini

Alcuni dei miei nomi di file contengono caratteri non comuni come l' asterisco a forma di lacrima e non sono selezionabili facendo doppio clic:

personaggi insoliti

Esiste un modo per far continuare la selezione con doppio clic anche su questi caratteri?

Risposte:


9

In "Modifica> Preferenze profilo> Generale", aggiungi il carattere alla casella "Seleziona i caratteri per parola".


Grazie, non so come non me ne sia accorto.
ændrük,

Qualcuno ha trovato un modo generale per eseguire questa operazione su GNOME? Oppure i limiti di parole spettano agli sviluppatori di ciascuna applicazione definire / ridefinire? Domanda correlata: superuser.com/q/650240/245597 .
Noyo,

11
Almeno dalla versione 3.14, questa opzione è scomparsa. Come possiamo farlo ora?
Joachim Breitner,

Provai dconf write /org/gnome/terminal/legacy/profiles:/:{your-profile-id}/word-char-exceptions '@ms "-,.;/?%&#_=+@~·:"' ma tutto quello che ottengo èerror: Could not connect: Connection refused
cprn

Non riesco a far funzionare lo spazio non-break. Funziona comunque con l'asterisco funky sul terminale di accoppiamento di Zesty.
Gringo Suave,

16

[Aggiunta di una risposta poiché quella accettata non funziona più.]

copione

L'ho messo insieme in uno script per impostare i separatori di parole:

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

sfondo

Il Terminale GNOME è stato capovolto più volte su questo argomento.

Questa funzione di configurazione è stata rimossa in gnome-terminal 3.14 (incluso in Ubuntu 15.04 Vivid)

Quindi in gnome-terminal 3.16 (incluso in Ubuntu 15.10 Wily), l'opzione è stata reintrodotta sotto il cofano, ma senza interfaccia utente. Inoltre, i due punti sono :stati cambiati per essere trattati come un separatore di parole.

Modifica con dconf

In base a queste istruzioni, è possibile configurare il set usando dconf: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1401207/comments/8

Mi piace usare -#%&+,./:=?@_~ come set di separatori non di parole.

Nota che l'uso dei due punti è / crazy /. Sì, c'è: /: lì dentro.

1) modifica -> preferenze profilo -> la scheda Generale sul tuo profilo ha il suo ID profilo, ad es. B1dcc9dd-5262-4d8d-a863-c897e6d979b9

2) verifica di avere la sintassi corretta con:

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

Se non restituisce nulla, hai sbagliato; riprova.

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

In particolare, questo ha ":" in, che lo rende selezionare gli URL come mi aspetto. ( http://example.com non seleziona "//example.com").


Grazie, questo è esattamente ciò di cui avevo bisogno per ottenere :. È possibile che tu possa scrivere il / i comando / i per recuperare automaticamente il profilo predefinito o corrente in modo da non dover cercare manualmente il mio ID profilo per eseguire quel comando in futuro? In questo modo posso semplicemente eseguire quello script su nuove installazioni.
Programster,

@Programster Potresti fare qualcosa del genere condconf list /org/gnome/terminal/legacy/profiles:/
AB

grazie @alberge L'ho preso e messo in uno script in pitone
Programster

Qual è il valore predefinito di word-char-exceptions, quindi posso aggiungere solo un carattere?
Tor Klingberg,

1

Una funzione di default molto utile implementata in altri terminali è la selezione progressiva di sezioni estese di una linea sullo schermo. ad es. dato

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

facendo doppio clic su, diciamo, filenrin si dsr.filenr_34.ctrpasserebbe da filenra:

                              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

Le simmetrie circostanti possono essere risolte aggiungendo coppie fino al delimitatore di livello successivo.

E ovviamente l'utente dovrebbe avere la possibilità di modificare le impostazioni predefinite.


1
Nessun commento sulla risposta, ma cerca di formattarla in modo migliore in modo che le persone possano capirla più velocemente. Se vuoi elencarlo passo dopo passo, usa la numerazione.
VedVals,

Grazie, ma non credo che questo valga per la mia domanda. Chiedo in particolare come configurare GNOME Terminal.
ændrük,

1

Altre risposte non funzionano oggi ... funziona su Ubuntu 18.04 ... prima identifica il tuo ID profilo terminale UUID gnome ... emetti questo nel terminale

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

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

ora fai il cambiamento:

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

fino a quando Ubuntu 18.04 non viene corretto, il seguente comando di lettura fallisce silenziosamente mentre funziona perfettamente su Ubuntu 16.04

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


0

Estendendo la risposta di @alberge, puoi eseguire il seguente python3script per modificare tutti i tuoi profili in questo modo:

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

Oppure puoi semplicemente eseguire:

curl -s http://scripts.programster.org/scripts/5?output=raw | python3
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.