вторник, 12 августа 2008 г.

Ctrl+H и другие Emacs (Bash) клавиши в GTK

Работая в Vim и Bash, я очень сильно привык к комбинации Ctrl+H, которая служит аналогом Backspace, т. к. при слепом методе набора текста на нее нажимать гораздо удобнее, нежели на Backspace. Результатом данной привычки явилось всевозрастающее неудобство при работе с GTK приложениями, которые данную комбинацию клавиш не поддерживали, хотя Qt приложения обрабатывали ее так, как надо. После довольно непродолжительных поисков в интернете нашлось решение данной проблемы.

Все, что вам необходимо сделать - это вставить в ваш ~/.gtkrc-2.0 следующую строку:
gtk-key-theme-name = "Emacs"

Если же вы используете GNOME, то вам необходимо выполнить следующую команду:
gconftool-2 --set /desktop/gnome/interface/gtk_key_theme Emacs --type string

После этого у вас заработают следующие комбинации клавиш:

Ctrl+A - перейти в начало строки
Ctrl+E - перейти в конец строки
Ctrl+F - перейти вправо на один символ
Ctrl+B - перейти влево на один символ
Ctrl+P - перейти на одну строку вверх (для многострочных текстовых полей)
Ctrl+N - перейти на одну строку вниз (для многострочных текстовых полей)
Ctrl+K - удалить все символы от курсора до конца строки
Ctrl+U - удалить все символы в строке
Ctrl+W - удалить слово слева от курсора
Ctrl+H - удалить символ слева от курсора
Ctrl+D - удалить символ справа от курсора
Ctrl+Y - вставить текст из буфера обмена

Стоит отметить, что если вы привыкли выделять весь текст в текстовом поле комбинацией Ctrl+A, то теперь она работать не будет (а точнее будет выполнять функцию перемещения курсора в начало строки). В данном случае решением может послужить комбинация Ctrl+/, выделяющая весь текст в текстовом поле (по-моему, ее использовать гораздо удобнее).

Если же какие-то из приведенных выше клавиш работают не так, как бы вам этого хотелось, то вы всегда можете сами задать их поведение. Скопируйте /usr/share/themes/Emacs в ~/.themes и отредактируйте ~/.themes/Emacs/gtk-2.0-key/gtkrc - все комбинации клавиш задаются в этом файле.

4 комментария:

Pashugan комментирует...

Вопрос как художник художнику, т.к. тоже печатаю вслепую. Почему дотянуться прямым правым мизинцем до Backspace сложнее, чем кривым левым с нездоровой растяжкой до Ctrl? :) Я вот по причине крайнего неудобства последнего даже переключение раскладки вынес на Caps Lock...

Конищев Дмитрий комментирует...

Pashugan, для переключения раскладки я тоже использую CapsLock. Расстояние от j до Backspace больше расстояния от f до левого Ctrl (по крайне мере на моей клавиатуре). Т. к. мизинец - палец маленький, то расстояния очень критичны - если он свободно не достает до клавиши, то приходится тянуться до нее, а следовательно, тянуть за собой остальные пальцы. Когда я нажимаю на левый Ctrl, то все пальцы левой руки остаются на месте - перемещается только мезинец. При нажатии же на Backspace на месте остаются только большой и указательный пальцы руки, а остальные - "враскоряку" :). Следовательно, нажимать на Ctrl+H выгоднее, да и субъективно удобнее (по крайней мере мне). Для вас, возможно, это и не так - руки у всех разные.

Анонимный комментирует...

а как вы делаете выделение текста с клавиатуры? В Vim я знаю, а вот в чистом bash возможно ли выделить с текст, не прибегая к использованию мыши?

Конищев Дмитрий комментирует...

Анонимный, в чистом баше - это в эмуляторе терминала? :) Нет, не знаю - как-то редко возникает такая необходимость.