Могу ли я указать, какие символы устанавливают границу выделения двойным щелчком в терминале GNOME?
Когда я дважды щелкаю, чтобы выделить текст в GNOME Terminal, выбор останавливается на пробелах, но продолжается через дефисы:
Некоторые из моих имен файлов содержат необычные символы, такие как тяжелая звездочка со слезами и не могут быть выбраны двойным щелчком:
Есть ли способ сделать двойной щелчок мышью продолженным и для этих персонажей?
6 ответов
В "Редактирование> Параметры профиля> Общие" добавьте символ в поле "Выбор символов по слову".
[Добавление ответа, так как принятый больше не работает.]
скрипт
Я собрал это вместе в скрипт, чтобы установить разделители слов:
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").
Очень полезная функция по умолчанию, реализованная в других терминалах, - это постепенный выбор расширенных участков линии на экране. например, учитывая
/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
Окружающие симметрии могут быть решены путем добавления пар до разделителя следующего уровня.
И, конечно же, пользователю должна быть предоставлена возможность изменения значений по умолчанию.
Другие ответы не работают сегодня... это работает в 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
Расширяя ответ @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
В Ubuntu 20.04.5 LTS. Я потерял пару часов, пытаясь заставить его работать. Но причина зависания довольно проста: значение переменной "@ms" обратно интуитивному и обратно тому, что написано в org.gnome.Terminal.gschema.xml.
@ms должен содержать только символы, РАЗРЕШЕННЫЕ для выбора двойным щелчком мыши. Итак, если вы НЕ хотите использовать тире, двоеточия или что-то еще, вы можете ввести:
UUID=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \')
dconf write /org/gnome/terminal/legacy/profiles:/:${UUID}/word-char-exceptions "@ms '_^'"
Смена работает сразу, сохраняется через сброс; но для другого профиля вы должны повторить команду.