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