Posso especificar quais caracteres definem o limite de seleção com um clique duplo no Terminal GNOME?

16

Quando clico duas vezes para selecionar texto no Terminal GNOME, a seleção é interrompida em espaços, mas continua com hífens:

espaços

hífens

Alguns dos meus nomes de arquivos contêm caracteres incomuns, como o pesado asterisco de lágrima e não são selecionáveis ​​clicando duas vezes:

personagens incomuns

Existe uma maneira de fazer a seleção de clique duplo continuar sobre esses caracteres também?

ændrük
fonte

Respostas:

9

Em "Editar> Preferências do perfil> Geral", adicione o caractere à caixa "Selecionar por palavra".

mgunes
fonte
Obrigado, não sei como não percebi isso.
Octndrük # 20/10
Alguém encontrou uma maneira geral de fazer isso no GNOME? Ou os limites de palavras são definidos pelos desenvolvedores de cada aplicativo para definir / redefinir? Pergunta relacionada: superuser.com/q/650240/245597 .
Noyo 26/09
11
Pelo menos desde a versão 3.14, esta opção desapareceu. Como podemos fazer isso agora?
Joachim Breitner
Eu tentei dconf write /org/gnome/terminal/legacy/profiles:/:{your-profile-id}/word-char-exceptions '@ms "-,.;/?%&#_=+@~·:"', mas tudo que eu vejo éerror: Could not connect: Connection refused
CPRN
Não consigo obter o espaço ininterrupto para o trabalho. No entanto, ele funciona com o funky asterisco no terminal mate do Zesty.
Gringo Suave
16

[Adicionando uma resposta, já que a aceita não funciona mais.]

Roteiro

Coloquei isso em um script para definir os separadores de palavras:

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

fundo

O Terminal GNOME falhou várias vezes nesse assunto.

Este recurso de configuração foi removido no gnome-terminal 3.14 (incluído no Ubuntu 15.04 Vivid)

Depois, no gnome-terminal 3.16 (incluído no Ubuntu 15.10 Wily), a opção foi reintroduzida sob o capô, mas sem interface do usuário. Além disso, o cólon :foi alterado para ser tratado como um separador de palavras.

Editando com dconf

Por estas instruções, você pode configurar o conjunto usando o dconf: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1401207/comments/8

Eu gosto de usar -#%&+,./:=?@_~como o conjunto de separadores que não são de palavras.

Note que o uso de dois pontos existe / crazy /. Sim, existe: /: lá.

1) editar -> preferências do perfil -> a guia Geral do seu perfil tem seu ID do perfil, por exemplo, b1dcc9dd-5262-4d8d-a863-c897e6d979b9

2) verifique se você tem a sintaxe correta com:

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

Se não retornar nada, você entendeu errado; tente novamente.

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

Especificamente, tem ":" in, o que faz com que selecione URLs como eu esperava. ( http://example.com não seleciona "//example.com").

AB
fonte
Obrigado, isto é exatamente o que eu precisava para obter :. É possível que você escreva o (s) comando (s) para buscar automaticamente o perfil padrão ou atual, para que eu não precise procurar manualmente meu ID de perfil para executar esse comando no futuro? Dessa forma, eu posso simplesmente executar esse script em novas instalações.
Programster
@Programster Você poderia fazer algo assim comdconf list /org/gnome/terminal/legacy/profiles:/
AB
graças @alberge Eu levei isso e colocá-lo em um script python
Programster
Qual é o valor padrão word-char-exceptionspara que eu possa adicionar apenas um caractere?
Tor Klingberg
1

Um recurso padrão muito útil implementado em outros terminais é a seleção progressiva de seções estendidas de uma linha na tela. por exemplo, dado

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

clicar duas vezes em, digamos, filenrem dsr.filenr_34.ctrprogredirá de filenrpara:

                              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

As simetrias circundantes podem ser resolvidas adicionando pares até o delimitador de próximo nível.

E, é claro, o usuário deve ter a opção de alterar os padrões.

marc
fonte
11
Não faça comentários sobre a resposta, mas tente formatá-la de uma maneira melhor para que as pessoas a entendam mais rapidamente. Se você deseja listá-lo passo a passo, use numeração.
VedVals
Obrigado, mas acho que isso não se aplica à minha pergunta. Estou perguntando especificamente como configurar o GNOME Terminal.
13/12 /
1

Outras respostas não funcionam hoje ... isso funciona no ubuntu 18.04 ... primeiro identifique seu ID de perfil de terminal do UUID gnome ... emita isso no terminal

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

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

agora faça alterações:

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

até o ubuntu 18.04 ser corrigido, o seguinte comando de leitura falha silenciosamente enquanto funcionava bem no ubuntu 16.04

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

Estendendo a resposta @alberge, você pode executar o seguinte python3script para alterar todos os seus perfis para fazer isso:

#!/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 você pode simplesmente executar:

curl -s http://scripts.programster.org/scripts/5?output=raw | python3
Programador
fonte