Могу ли я указать, какие символы устанавливают границу выделения двойным щелчком в терминале GNOME?


16

Когда я дважды щелкаю, чтобы выделить текст в GNOME Terminal, выбор останавливается на пробелах, но продолжается через дефисы:

пространства

дефиса

Некоторые из моих имен файлов содержат необычные символы, такие как тяжелая звездочка со слезами и не могут быть выбраны двойным щелчком:

необычные персонажи

Есть ли способ сделать двойной щелчок мышью продолженным и для этих персонажей?

Ответы:


9

В «Редактирование> Параметры профиля> Общие» добавьте символ в поле «Выбор символов по слову».


Спасибо, я не знаю, как я этого не заметил.
Ондрюк,

Кто-нибудь нашел общий способ сделать это для всей GNOME? Или границы слов могут определять / переопределять разработчики каждого приложения? Похожий вопрос: superuser.com/q/650240/245597 .
Noyo

11
По крайней мере, начиная с версии 3.14, эта опция исчезла. Как мы можем сделать это сейчас?
Иоахим Брейтнер,

Я пытался, dconf write /org/gnome/terminal/legacy/profiles:/:{your-profile-id}/word-char-exceptions '@ms "-,.;/?%&#_=+@~·:"'но все, что я получаю,error: Could not connect: Connection refused
cprn

Не могу заставить работать непрерывное пространство. Тем не менее, он работает с забавной звездочкой на терминале мате от Zesty.
Гринго Суаве

16

[Добавление ответа, так как принятый больше не работает.]

скрипт

Я собрал это вместе в скрипт, чтобы установить разделители слов:

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

Фон

GNOME Terminal несколько раз переворачивался на эту тему.

Эта функция конфигурации была удалена в gnome-терминал 3.14 (включен в Ubuntu 15.04 Vivid)

Затем в gnome-терминал 3.16 (включен в Ubuntu 15.10 Wily), опция была вновь введена под капот, но без пользовательского интерфейса. Кроме того, двоеточие :было изменено, чтобы рассматриваться как разделитель слов.

Редактирование с помощью dconf

В соответствии с этими инструкциями вы можете настроить набор с помощью dconf: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1401207/comments/8.

Мне нравится использовать -#%&+,./:=?@_~в качестве набора не-разделителей слов.

Обратите внимание, что использование двоеточий есть / сумасшедший /. Да, там есть.

1) изменить -> настройки профиля -> вкладка «Общие» в вашем профиле имеет идентификатор профиля, например, b1dcc9dd-5262-4d8d-a863-c897e6d979b9

2) проверьте правильность синтаксиса:

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

Если ничего не возвращается, вы ошибаетесь; Попробуйте еще раз.

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

В частности, здесь есть «:», что позволяет выбирать URL-адреса так, как я ожидал. ( http://example.com не выбирает "//example.com").


Спасибо, это именно то, что мне нужно для того, чтобы получить :. Возможно ли, что вы могли бы написать команду (ы) для автоматического извлечения профиля по умолчанию или текущего профиля, чтобы мне не пришлось вручную искать идентификатор моего профиля, чтобы выполнить эту команду в будущем? Таким образом, я могу просто запустить этот скрипт на новых установках.
Программист

@Programster Вы могли бы сделать что-то подобное сdconf list /org/gnome/terminal/legacy/profiles:/
AB

спасибо @alberge, я взял это и поместил в скрипт на python
Programster

Какое значение по умолчанию word-char-exceptions, поэтому я могу добавить только один символ?
Тор Клингберг

1

Очень полезная функция по умолчанию, реализованная в других терминалах, - это постепенный выбор расширенных участков линии на экране. например, учитывая

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

Двойной щелчок, скажем, filenrв dsr.filenr_34.ctrпрогрессе от 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

Окружающие симметрии могут быть решены путем добавления пар до разделителя следующего уровня.

И, конечно же, пользователю должна быть предоставлена ​​возможность изменения значений по умолчанию.


1
Не комментируйте ответ, но попытайтесь отформатировать его лучше, чтобы люди быстрее поняли его. Если вы хотите перечислить его шаг за шагом, используйте нумерацию.
VedVals

Спасибо, но я не думаю, что это относится к моему вопросу. Я специально спрашиваю, как настроить GNOME Terminal.
rndrük

1

Другие ответы не работают сегодня ... это работает в Ubuntu 18.04 ... сначала идентифицируйте свой UUID идентификатор профиля терминала gnome ... введите это в терминал

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

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

Теперь внесите изменения:

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

до тех пор, пока ubuntu 18.04 не будет исправлено, следующая команда чтения молча завершится сбоем, тогда как на ubuntu 16.04 она работала нормально

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

Выглядит скорее как askubuntu.com/a/725109/158442
Muru

0

Расширяя ответ @alberge, вы можете выполнить следующий python3скрипт, чтобы изменить все свои профили:

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

Или вы можете просто выполнить:

curl -s http://scripts.programster.org/scripts/5?output=raw | python3
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.