Чи можу я вказати, які символи встановлюють межу вибору подвійного клацання у терміналі GNOME?


16

Коли я двічі клацніть, щоб вибрати текст у терміналі GNOME, вибір зупиняється на пробілах, але продовжується через дефіси:

пробіли

дефіси

Деякі з моїх імен містять незвичайні символи, такі як велика зірочка зі сльозами, і їх неможливо вибрати подвійним клацанням:

незвичайні персонажі

Чи є спосіб продовжити вибір подвійного клацання і над цими символами?

Відповіді:


9

У "Редагувати> Налаштування профілю> Загальне" додайте символ у поле "Вибір символів за словом".


Дякую, я не знаю, як я цього не помітив.
ændrük

Хтось знайшов загальний спосіб зробити це GNOME? Або розробники кожної програми визначають / переосмислюють межі слів? Питання, пов’язані з цим: superuser.com/q/650240/245597 .
Нойо

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.
Gringo Suave

16

[Додавання відповіді, оскільки прийнятий більше не працює.]

Сценарій

Я склав це разом у сценарій для встановлення розділювачів слів:

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

Фон

Термін GNOME кілька разів перевернувся з цього приводу.

Цю функцію конфігурації було видалено в 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

@Programster Ви могли б зробити щось подібнеdconf list /org/gnome/terminal/legacy/profiles:/
AB

завдяки @alberge я взяв , що й поклав його в пітон скрипт
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.
ændrük

1

Інші відповіді сьогодні не працюють ... це працює на ubuntu 18.04 ... спочатку ідентифікуйте свій ідентифікатор профілю терміналу gnome UUID ... видайте це в терміналі

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.