Я предпочитаю нажатия клавиш в emacs, но select-all, похоже, не является частью словаря emacs, или, по крайней мере, темой gtk-key для emacs. M-w не работает, чтобы скопировать выбранный регион.
Спасибо, Стив
Привязки 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.
http://www.emacswiki.org/emacs/EmacsNewbieKeyReference#toc8 - это то, что вы ищете (Cx h после установки маркера)
Кроме того, зависит от хотите ли вы «страницу» или буфер и т. д.
Если Вы хотите выбрать весь текст в регионе, я предпочитаю определять простой Макрос для этого. Потребуйте у F3 того, чтобы начинать записать Макрос. Затем введите
Esc - < // goes to beginning of document
Ctrl - spacebar // set mark
Esc - > // selects all till end of document
Затем используйте M-w для копирования (который является тем, что я обычно делаю для копирования от удаленных систем Unix до локального Windows), и затем нажмите F4, чтобы закончить определять макрос.
Теперь Вы сделаны, определив Макрос, просто поражены F4 как много раз, Вы хотите повторить действие.
Для приложений 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 Alt kbd> - a kbd> выбирает все для меня по умолчанию без конфигурации (используя тему ключа Emacs GTK).
Нет ни одного ярлыка, чтобы сделать это напрямую.
Вы можете перейти к концу текста с помощью Ctrl kbd> - e kbd> и удалить строку Ctrl kbd> - u kbd >. Это, однако, работает только с GtkEntry
, то есть однострочным полем ввода.
Если вам нужно выделить все в элементе управления GtkTextView
, похожем на многострочный редактор, вам остается выполнить обременительные Ctrl kbd> - Home kbd>, а затем Ctrl kbd> + Shift kbd> - End kbd>, что с моей 63-клавишной клавиатурой практически невозможно.
Если по уважительной причине эффективности редактирования или ограничений клавиатуры мобильного устройства Home kbd> и End kbd> недоступны, вам придется обойтись. Выбор «Выбрать все» из меню «Правка» - плохая идея, потому что он сопоставляется с Alt kbd> - e kbd> - a kbd> в Firefox, < kbd> Alt kbd> - e kbd> - t kbd> в gedit, Alt kbd> - e kbd> - s kbd> в OpenOffice (даже с интеграцией gnome), в каждом программном обеспечении свой ключ, а в некоторых программах нет «Выбрать все» в меню «Правка», как хром, а в некоторых программах нет даже Редактируйте само меню, даже не скрытое, которое будет вызываться с помощью Alt kbd> - e kbd>, как nautilus. Это несоответствие превосходит цель Alt-активированной строки меню, и ни одна операционная система, даже Windows, не является столь же противоречивой. Даже меню правой кнопки мыши не имеет фиксированного ярлыка для «Выбрать все» - обычно это a kbd>, но может быть t kbd> от приложения к приложению. Требование исправления ошибок в каждом отдельном программном обеспечении может быть сделано только с метапроектом, таким как GNOME, но знание того, что сам GNOME породил некоторые из этих проблем (удаление меню редактирования в 'nautilus' - это решение GNOME 3), действительно не покинуло Вы очень надеетесь.
В дополнение к этому, Ctrl kbd> - Home kbd> - это единственный способ перехода к началу всего текста, даже если он может прервать вашу работу, чтобы ввести мобильные устройства с небольшой клавиатурой.
Ответ заканчивается здесь. Для любопытных людей у меня есть дополнительная информация:
Опытный пользователь Emacs попытается Ctrl kbd> - x kbd> - h kbd> : действительно аутентичные emacs, но в режиме emacs gtk3 нет последовательности управляющих клавиш. На самом деле, определено лишь несколько ярлыков emacs - взгляните на /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css
; на наклейке достаточно места для записи всех поддерживаемых ярлыков emacs.
Чтобы сделать ситуацию еще хуже, для этой цели сложно переместить горячую клавишу. Как вы знаете, emacs использует Ctrl kbd> - a kbd>. Но даже Hispanophones, крупнейшая неанглоязычная группа (исключая китайцев, потому что мы используем иероглифы), которые выбирают все с помощью Ctrl kbd> - e kbd>, найдут эту комбинацию клавиш взято emacs тоже. За исключением e kbd>, в левой половине клавиатуры QWERTY не осталось никаких других клавиш без уже хорошо принятой цели. Google Translate использует клавишу SHIFT, когда она нажата одна, как «select-all», но не другие программы и не другие продукты Google следуют этой настройке.
Чтобы очистить строку, используйте Ctrl kbd> - u kbd>. Преимущество в том, что вы не перезаписываете X SELECTION (тот, который вы дергаете средней кнопкой мыши). Это уникальная настройка только для режима emacs gtk3: в реальных emacs он ничего не делает сам по себе; в readline (bash, mysql и т. д.) предполагается удалить все от курсора до начала строки, в то время как его противоположная часть Ctrl kbd> - k kbd> удаляет все от курсора до конец строки.
Некоторые могут предложить оставить где-нибудь отметку для случайного выбора с помощью клавиатуры. Вы также можете обнаружить, что Ctrl kbd> - SPACE kbd> находится в режиме emacs, настроенном для установки привязки в тексте. Несмотря на конфликт со многими другими программами (в частности, с методами ввода иероглифов, и автозавершение в некоторых других программах редактора), здесь нет какой-либо комбинации клавиш для использования установленного якоря.
Ubuntu официально не поддерживает режим редактирования Emacs и другие настройки пользовательского интерфейса, которые нельзя выполнить с помощью пользовательского интерфейса. Отчеты об ошибках в таких потребностях помечены как приоритетные. По этой причине я думаю, что лучше задать такой вопрос в местах, где обычно используется Linux, например, суперпользователь.
Там есть простая привязка для «Выбрать все» в gtk: C-/
Он определяется как общий сигнал GtkTextView и не является специфической частью ключевая тема Emacs. Но это прекрасно работает с ним. Это определено как альтернатива C-a
. Хотя последняя интерпретируется темой emacs C-/
, она остается действительной для «Выбрать все».