[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