[sisyphus] emacs selection in console

Sergey Bolshakov =?iso-8859-1?q?s=2Ebolshakov_=CE=C1_belcaf=2Ecom?=
Пт Фев 15 18:41:56 MSK 2002


## 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 
и т.д.
--%<--

-- 
	Трули ерз, Сергей.

"[Open Source] programming is like sex, one mistake and you have to support it
for the rest of your life."  ---  M. Sinz, CBM Inc.




Подробная информация о списке рассылки Sisyphus