gtk-key-тема Emacs: який натискання клавіш призначено для вибраних?


22

Я віддаю перевагу натисканням клавіш emacs, але select-all, схоже, не є частиною словника emacs або, принаймні, темою gtk-key для emacs. Mw не працює для копіювання вибраного регіону.

  1. Що таке натискання клавіш для вибраних?
  2. Де є ключова карта зв’язування цієї теми?

Спасибі, Стів

Відповіді:


22

Там є простий прив'язки для «Вибрати все» в GTK:C-/

Він визначається як загальний сигнал GtkTextView і не є конкретно частиною ключової теми emacs. Але це добре справляється з цим. Це визначено як альтернативу C-a. Хоча остання переосмислюється темою emacs, C-/залишається дійсною для "Вибрати всіх".


Чудова відповідь. Чому вона ще не мала оновлених даних?
Rörd

7

Не існує жодної ярлики, щоб це зробити безпосередньо.

Ви можете перейти в кінець тексту з Ctrl- eі видалити рядок Ctrl- u. Це, однак, працює лише з GtkEntryодним рядком поля введення.

Якщо вам потрібно вибрати все в GtkTextViewбагаторядовому редакторі, подібному до редактора, вам залишається зробити обтяжливий Ctrl- Homeза ним - Ctrl+ Shift- End, що з моєю клавіатурою з 63 клавішами майже неможливо.

Якщо, з поважної причини редагування ефективності або обмеження клавіатури мобільного пристрою, Homeі Endзнаходяться поза досяжністю, то вам доведеться пройти. Вибір "Select-all" у меню "Edit" - погана ідея, оскільки він відображає Alt- e- aу firefox, Alt- e- tв gedit, Alt- e- sу OpenOffice (навіть із інтеграцією з gnome), у кожному програмному забезпеченні інший ключ та в деякому програмному забезпеченні в меню редагування немає "Select-all", як, наприклад, хром, а в деяких програмного забезпечення немає навіть самого меню "Edit", навіть не прихованого, з якого потрібно викликати Alt-e, як nautilus. Ця суперечливість перемагає призначення панелі меню, активованої Alt, і не будь-яка операційна система, навіть Windows, не є такою непомітною. Навіть у меню правої кнопки миші немає фіксованого ярлика для "Select-All" - зазвичай, aале це може бути tвід програми до програми. Викликати виправлення помилок у кожному окремому програмному забезпеченні можна лише за допомогою метапроекту на зразок GNOME, але знаючи, що GNOME сам створив деякі з цих проблем (видалення меню Edit у "nautilus" - це рішення GNOME 3) насправді не залишилося ви дуже сподіваєтесь

Зі сторони, Ctrl- Homeце єдиний ярлик для переходу до початку всього тексту, навіть він може перервати вашу роботу, щоб ввести мобільні пристрої з малою клавіатурою.

Відповідь закінчується тут. Для допитливих умів у мене є додаткова інформація:


Досвідчений користувач emacs намагатиметься Ctrl- x- h:: справжніх emacs справді, але в режимі emacs gtk3 не зрозуміла жодна послідовність контрольних ключів. Насправді визначено лише кілька ярликів швидкого доступу до emacs - Візьміть заглянути /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css; на наклейці достатньо місця, щоб записати всі підтримувані ярлики Emacs.

Щоб зробити ситуацію ще гіршою, важко перенести для цього клавішу швидкого доступу. Як відомо, Ctrl- aбереться emacs. Але навіть Hispanophones, найбільша група, що не говорить англійською мовою (китайці виключені, оскільки ми використовуємо ідеографи), які використовуються для вибору всього Ctrl- e, знайдуть і цю клавіатурну комбінацію, яку взяли емаки. За винятком того e, що в лівій половині клавіатури QWERTY не залишилося жодної іншої клавіші без вже прийнятої мети. Google Translate приймає клавішу SHIFT, коли вона натискається окремо, як "select-all", але не інше програмне забезпечення, ані інші продукти Google дотримуються налаштувань.

Щоб виповнити рядок, використовуйте Ctrl- u. Це має перевагу в тому, що не перезаписувати X SELECTION (ту, яку ви витягуєте середньою кнопкою миші). Це унікальне налаштування лише для режиму emacs gtk3: в реальному emacs він нічого не робить самостійно; у readline (bash, mysql тощо) передбачається видалити все з курсору до початку рядка, а його зустрічна частина Ctrl- kвидаляє все від курсору до кінця рядка.

Деякі можуть запропонувати залишити позначку десь для випадкового вибору за допомогою клавіатури. Ви також можете знайти Ctrl- SPACEзнаходиться в режимі emacs, налаштований на встановлення якоря в тексті. Незважаючи на конфлікт із багатьма іншими програмними засобами (зокрема методами введення ідеографа та автоматичним доповненням в іншому програмному забезпеченні редактора), не існує жодної клавіші швидкого доступу для використання встановленого вами якоря.


Ubuntu офіційно не підтримує режим редагування emacs, а також будь-яку іншу конфігурацію інтерфейсу, яку неможливо виконати з інтерфейсом користувача. Звіти про помилки щодо таких потреб позначаються нижчим пріоритетом. З цієї причини я вважаю, що найкраще задавати таке питання в загальних для Linux місцях, наприклад, суперпользователя.


2

Прив’язки до emacs визначені на /usr/share/themes/Emacs/gtk-2.0-key/gtkrc Ви також можете додати прив'язки в ~ / .config / gtk-3.0 / gtk.css

Вибрати все було б приблизно так:

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

Я не знайшов способу прив’язати його до Cx h.


2

Перегляньте наявні прив'язки ключів

Для додатків GTK3 ви можете переглядати прив’язки ключової теми Emacs GTK - або локально, ймовірно, на /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css), або у сховищі GTK git на GitHub (що не обов'язково дорівнює вашому локальному файлу, оскільки ваш дистрибутив, можливо, змінив його) .

Читаючи цей файл, ви повинні знати про значення віджетів

(Подивіться на зображення вгорі кожного пов’язаного веб-сайту.)

Додавання прив'язки ключів для вибору всіх

select-allза GtkTreeViewіGtkTextView

Для GtkTreeViewі GtkTextViewвіджетів існує сигнал, який називається select-all. Вам потрібно передати його аргументом, 1щоб він вибирав усі, а не скасовував вибір.

Отже, відредагуйте ~/.config/gtk-3.0/gtk.cssта додайте щось подібне:

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

Бо GtkEntryнемає select-allсигналу. Натомість ви можете використовувати послідовність із двох move-cursorсигналів, що позначають текст.

Знову відредагуйте ~/.config/gtk-3.0/gtk.cssта додайте щось подібне:

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

Firefox

До речі, у Firefox Alt- aвибирає для мене все за замовчуванням без конфігурації (використовуючи ключову тему Emacs GTK).


1

Якщо ви хочете вибрати весь текст у регіоні, я вважаю за краще визначити для цього простий макрос. Натисніть F3, щоб почати писати макрос. Потім введіть

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

Потім використовуйте M -w для копіювання (що зазвичай роблю для копіювання з віддалених систем Unix у локальну Windows), а потім натисніть F4, щоб закінчити визначення макросу.

Тепер ви закінчили визначення макросу, просто натисніть F4 стільки разів, скільки захочете повторити дію.


Ключова тема GTK Emacs не така, як сама Emacs. Майже жодна з ключових прив’язок у вашій відповіді не працює там (а якщо ви насправді були в самому Emacs, ви можете просто використовувати Cx h замість макросу.
Rörd

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.