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?

Respostas:


9

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


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").


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.


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.