gtk-key-theme Emacs: какое нажатие клавиши для выбора всех?

Я предпочитаю нажатия клавиш в emacs, но select-all, похоже, не является частью словаря emacs, или, по крайней мере, темой gtk-key для emacs. M-w не работает, чтобы скопировать выбранный регион.

  1. Что такое клавиша для выбора всех?
  2. Где карта привязки клавиш для этой темы?

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

22
задан 13 May 2013 в 22:42

6 ответов

Привязки 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.

0
ответ дан 13 May 2013 в 22:42

http://www.emacswiki.org/emacs/EmacsNewbieKeyReference#toc8 - это то, что вы ищете (Cx h после установки маркера)

Кроме того, зависит от хотите ли вы «страницу» или буфер и т. д.

0
ответ дан 13 May 2013 в 22:42

Если Вы хотите выбрать весь текст в регионе, я предпочитаю определять простой Макрос для этого. Потребуйте у F3 того, чтобы начинать записать Макрос. Затем введите

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

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

Теперь Вы сделаны, определив Макрос, просто поражены F4 как много раз, Вы хотите повторить действие.

1
ответ дан 13 May 2013 в 22:42

Просмотр существующей привязки ключа

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

При чтении этого файла вы должны знать значение виджетов

(посмотрите на изображение в верхней части каждого связанного сайта.)

Добавление привязки клавиш для выбора всех

select-all для GtkTreeView и GtkTextView [ 1121]

Для виджетов 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).

0
ответ дан 13 May 2013 в 22:42

Нет ни одного ярлыка, чтобы сделать это напрямую.

Вы можете перейти к концу текста с помощью Ctrl - e и удалить строку Ctrl - u . Это, однако, работает только с GtkEntry, то есть однострочным полем ввода.

Если вам нужно выделить все в элементе управления GtkTextView, похожем на многострочный редактор, вам остается выполнить обременительные Ctrl - Home , а затем Ctrl + Shift - End , что с моей 63-клавишной клавиатурой практически невозможно.

Если по уважительной причине эффективности редактирования или ограничений клавиатуры мобильного устройства Home и End недоступны, вам придется обойтись. Выбор «Выбрать все» из меню «Правка» - плохая идея, потому что он сопоставляется с Alt - e - a в Firefox, < kbd> Alt - e - t в gedit, Alt - e - s в OpenOffice (даже с интеграцией gnome), в каждом программном обеспечении свой ключ, а в некоторых программах нет «Выбрать все» в меню «Правка», как хром, а в некоторых программах нет даже Редактируйте само меню, даже не скрытое, которое будет вызываться с помощью Alt - e , как nautilus. Это несоответствие превосходит цель Alt-активированной строки меню, и ни одна операционная система, даже Windows, не является столь же противоречивой. Даже меню правой кнопки мыши не имеет фиксированного ярлыка для «Выбрать все» - обычно это a , но может быть t от приложения к приложению. Требование исправления ошибок в каждом отдельном программном обеспечении может быть сделано только с метапроектом, таким как GNOME, но знание того, что сам GNOME породил некоторые из этих проблем (удаление меню редактирования в 'nautilus' - это решение GNOME 3), действительно не покинуло Вы очень надеетесь.

В дополнение к этому, Ctrl - Home - это единственный способ перехода к началу всего текста, даже если он может прервать вашу работу, чтобы ввести мобильные устройства с небольшой клавиатурой.

Ответ заканчивается здесь. Для любопытных людей у ​​меня есть дополнительная информация:


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

Чтобы сделать ситуацию еще хуже, для этой цели сложно переместить горячую клавишу. Как вы знаете, emacs использует Ctrl - a . Но даже Hispanophones, крупнейшая неанглоязычная группа (исключая китайцев, потому что мы используем иероглифы), которые выбирают все с помощью Ctrl - e , найдут эту комбинацию клавиш взято emacs тоже. За исключением 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, например, суперпользователь.

0
ответ дан 13 May 2013 в 22:42

Там есть простая привязка для «Выбрать все» в gtk: C-/

Он определяется как общий сигнал GtkTextView и не является специфической частью ключевая тема Emacs. Но это прекрасно работает с ним. Это определено как альтернатива C-a. Хотя последняя интерпретируется темой emacs C-/, она остается действительной для «Выбрать все».

0
ответ дан 13 May 2013 в 22:42

Другие вопросы по тегам:

Похожие вопросы: