[sisyphus] emacs selection in console
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_mivlgu=2Emurom=2Eru?=
Пт Фев 15 19:29:00 MSK 2002
On 15 Feb 2002 17:41:56 +0200
Sergey Bolshakov <s.bolshakov на belcaf.com> wrote:
>
> ## On Fri, 15 Feb 2002 18:14:15 +0300
> ## you wrote:
>
> SV> On Fri, 15 Feb 2002 11:07:32 +0300 (MSK)
> SV> Ivan Zakharyaschev <imz на altlinux.ru> wrote:
>
> >> On Thu, 14 Feb 2002, Vyt wrote:
> >>
> >> > на русской раскладке. Подскажите, пожалуйста, как включить
> >> > выделение shift+стрелки, копирование и вставку по ctrl+ins,
> >> > shift+ins в консольном emacs?
> >>
> >> У меня это осталось в TODO, сходу это сделать не получилось.
> >>
> >> Hint: можно пользоваться стандартными командами (и связанными с ними
> >> клавишами) для работы с выделениями в консольном emacs.
> >>
> >> Легкому включению PC-стиля для манипуляции выделениями в консоли мешают
> >> разные вещи. Во-первых, там некоторые названия клавиш другие в
> >> комбинациях. Во-вторых, возможно, что раскладки из console-tools
> >> недостаточно для этого приспособлены (чтобы отличать все требуемые
> >> состояния клавиатуры). (Посмотреть на то, какие события получает emacs в
> >> консоли при нажатии клавиш, можно по C-h k.)
>
> SV> Однозначно не приспособлены - Shift там игнорируется. Я пробовал
> SV> сделать раскладку, в которой были бы отдельные коды для
> SV> Shift+стрелок, это даже частично работало. Проблема в том, что
> SV> после этого такое выделение перестает работать в редакторе mc
> SV> :-(__
>
> У меня так сделано:
> В .xemacs/init.el (да, у меня xemacs)
> --%<--
> (defmacro TTYlaunch (&rest x) (list 'if (eq (console-type) 'tty)(cons 'progn x)))
> (TTYlaunch
> (define-key function-key-map "\033[35~" [paste-selection])
> (define-key function-key-map "\033[36~" [copy-selection])
> (define-key function-key-map "\033[37~" [kill-selection])
> (define-key function-key-map "\033[40~" [buffer-prev-in-group])
> (define-key function-key-map "\033[41~" [buffer-prev])
> (define-key function-key-map "\033[42~" [buffer-next-in-group])
> (define-key function-key-map "\033[43~" [buffer-next])
> (define-key function-key-map "\033[44~" [undo])
> )
> --%<--
>
> Затем изобразить в консольной раскладе нечто вроде (эта часть у меня дома :):
> --%<--
> control keycode 111 F23 # kill-selection
> string F21 "\033[37~" # kill-selection
> и т.д.
> --%<--
Ну я так и делал (только коды брал с rxvt), и такое решение для
*emacs вполне работоспособно. Только в качестве основной
раскладки такая не годится по указанной мной причине - перестает
работать Shift+курсор для выделения в mcedit. В качестве
дополнительной раскладки - возможно, будет полезно.
Подробная информация о списке рассылки Sisyphus