Next: Recording Input, Previous: Input Modes, Up: Terminal Input [Contents][Index]
ËÜÀá¤Ç¤Ï¡¢ÆþÎÏ¥¤¥Ù¥ó¥È¤ò¥¡¼Îó¤Î°ìÉô¤Ë¤Ê¤ë¤Þ¤¨¤ËÊ̤Î
ÆþÎÏ¥¤¥Ù¥ó¥È¤ËÊÑ´¹¤¹¤ëµ¡Ç½¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤Þ¤¹¡£
¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢¤³¤³¤Ë½Ò¤Ù¤ë½ç¤Ë³Æ¥¤¥Ù¥ó¥È¤ËŬÍѤµ¤ì¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢³Æ¥¤¥Ù¥ó¥È¤Ï¤Þ¤ºextra-keyboard-modifiers
¤Ë½¾¤Ã¤Æ½¤Àµ¤µ¤ì¡¢
¤Ä¤®¤Ë¡ÊŬÀڤʤé¤Ð¡Ëkeyboard-translate-table
¤ò²ð¤·¤ÆÊÑ´¹¤µ¤ì¡¢
ºÇ¸å¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¥¡¼¥Ü¡¼¥É¥³¡¼¥Ç¥£¥ó¥°¥·¥¹¥Æ¥à¤ÇÉü¹æ²½¤µ¤ì¤Þ¤¹¡£
¥¡¼Îó¤Î°ìÉô¤È¤·¤ÆÆÉ¤ß¼è¤é¤ì¤ë¥¤¥Ù¥ó¥È¤Ç¤¢¤ë¤È¡¢
ÆÉ¤ß¼è¤é¤ì¤ë¥¡¼Îó¤ËÄɲ䵤졢¤½¤ì¤ò´Þ¤àÉôʬ¥¡¼Îó¤ò
¤Þ¤ºfunction-key-map
¤Ç¸¡ºº¤·¤Æ¤«¤é¡¢
¤Ä¤®¤Ëkey-translation-map
¤Ç¸¡ºº¤·¤Þ¤¹¡£
¤³¤ÎÊÑ¿ô¤Ï¡¢Lisp¥×¥í¥°¥é¥à¤¬¥¡¼¥Ü¡¼¥É¾å¤Î ½¤¾þ¥¡¼¤ò¡Ø²¡¤¹¡Ù¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¡£
SHIFT¥¡¼¡£
LOCK¥¡¼¡£
CTL¥¡¼¡£
META¥¡¼¡£
¥æ¡¼¥¶¡¼¤¬¥¡¼¥Ü¡¼¥É¤Î¥¡¼¤òÂǤĤ¿¤Ó¤Ë¡¢ ¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç»ØÄꤷ¤¿½¤¾þ¥¡¼¤¬²¡¤·²¼¤²¤é¤ì¤Æ¤¤¤ë¤«¤Î¤è¤¦¤Ë ¥¡¼¤ò½¤Àµ¤¹¤ë¡£
¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤¤¤ë¤È¤¤Ë¤Ï¡¢ ¥×¥í¥°¥é¥à¤ÏǤ°Õ¤Î½¤¾þ¥¡¼¤ò¡Ø²¡¤¹¡Ù¤³¤È¤¬¤Ç¤¤ë¡£ ¤µ¤â¤Ê¤±¤ì¤Ð¡¢CTL¤ÈMETA¤Î¥¡¼¤Î¤ß¤ò ²¾ÁÛŪ¤Ë²¡¤¹¤³¤È¤¬¤Ç¤¤ë¡£
¤³¤ÎÊÑ¿ô¤Ï¡¢¥¡¼¥Ü¡¼¥Éʸ»ú¤ÎÊÑ´¹É½¤Ç¤¢¤ë¡£
¤³¤ì¤Ë¤è¤ê¡¢¥³¥Þ¥ó¥É¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤òÊѹ¹¤»¤º¤Ë¡¢
¥¡¼¥Ü¡¼¥É¤Î¥¡¼ÇÛÃÖ¤òÊѹ¹¤Ç¤¤ë¡£
¤½¤ÎÃͤÏÉáÄ̤Ïʸ»ú¥Æ¡¼¥Ö¥ë¤Ç¤¢¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢nil
¤Ç¤¢¤ë¡£
keyboard-translate-table
¤¬Ê¸»ú¥Æ¡¼¥Ö¥ë¤Ç¤¢¤ë¤È¡¢
¥¡¼¥Ü¡¼¥É¤«¤éÆÉ¤ß¼è¤Ã¤¿³ÆÊ¸»ú¤ò¤³¤Îʸ»ú¥Æ¡¼¥Ö¥ë¤Çõ¤¹¡£
¤ß¤Ä¤±¤¿Ãͤ¬nil
°Ê³°¤Ç¤¢¤ë¤È¡¢
¼ÂºÝ¤ÎÆþÎÏʸ»ú¤Î¤«¤ï¤ê¤Ë¤½¤ÎÃͤò»È¤¦¡£
¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢keyboard-translate-table
¤Ëʸ»ú¥Æ¡¼¥Ö¥ë¤òÀßÄꤹ¤ë¡£
¤½¤·¤Æ¡¢Ê¸»úC-s¤ÈC-\¡¢C-q¤ÈC-^¤òÆþ¤ì´¹¤¨¤ë¡£
¤³¤ì°Ê¹ß¡¢C-\¤òÂǤĤÈC-s¤òÂǤ俸ú²Ì¤¬¤¢¤ê¡¢
¤½¤ÎµÕ¤â¤½¤¦¤Ç¤¢¤ë¡£
¡Ê¤³¤ÎÏÃÂê¤Ë´Ø¤·¤Æ¤Ï¾Ü¤·¤¯¤Ï¡¢see Flow Control¡£¡Ë
(defun evade-flow-control () "Replace C-s with C-\ and C-q with C-^." (interactive)
(setq keyboard-translate-table (make-char-table 'keyboard-translate-table nil))
;; C-s¤ÈC-\¤òÆþ¤ì´¹¤¨¤ë
(aset keyboard-translate-table ?\034 ?\^s)
(aset keyboard-translate-table ?\^s ?\034)
;; C-q¤ÈC-^¤òÆþ¤ì´¹¤¨¤ë
(aset keyboard-translate-table ?\036 ?\^q)
(aset keyboard-translate-table ?\^q ?\036))
¤³¤ÎÊÑ´¹¤Ï¡¢Ã¼Ëö¤«¤éÆÉ¤ß¼è¤Ã¤¿Ê¸»ú¤ËºÇ½é¤Ë¹Ô¤ï¤ì¤ëÊÑ´¹¤Ç¤¢¤ë¡£
recent-keys
¤Î¤è¤¦¤ÊµÏ¿µ¡Ç½¤ä¥É¥ê¥Ö¥ë¥Õ¥¡¥¤¥ë¤Ï¡¢
ÊÑ´¹¸å¤Îʸ»ú¤òµÏ¿¤¹¤ë¡£
¤³¤Î´Ø¿ô¤Ï¡¢Ê¸»ú¥³¡¼¥Éfrom¤òʸ»ú¥³¡¼¥Éto¤ËÊÑ´¹¤¹¤ë¤è¤¦¤Ë
keyboard-translate-table
¤òÊѹ¹¤¹¤ë¡£
ɬÍפʤé¤Ð¥¡¼¥Ü¡¼¥ÉÊÑ´¹É½¤òºîÀ®¤¹¤ë¡£
»Ä¤ê¤ÎÊÑ´¹µ¡Ç½¤Ï¡¢ÆÉ¤ß¼è¤Ã¤¿¥¡¼Îó¤ÎÉôʬÎó¤òÊÑ´¹¤·¤Þ¤¹¡£
¤½¤ì¤é¤Ïread-key-sequence
¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Æ¡¢
read-event
¤ÇÆÉ¤àÆþÎϤˤϸú²Ì¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤³¤ÎÊÑ¿ô¤Ï¡¢ÉáÄ̤Îʸ»úüËö¾å¤Î¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥¡¼¤¬ Á÷½Ð¤¹¤ëʸ»ú¤ÎÎó¤òµ½Ò¤·¤¿¥¡¼¥Þ¥Ã¥×¤òÊÝ»ý¤¹¤ë¡£ ¤³¤Î¥¡¼¥Þ¥Ã¥×¤Ï¾¤Î¥¡¼¥Þ¥Ã¥×¤ÈƱ¤¸¹½Â¤¤Ç¤¢¤ë¤¬¡¢»È¤¤Êý¤¬°Û¤Ê¤ë¡£ ¥¡¼Îó¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤Ï¤Ê¤¯¡¢ ÆÉ¤ß¼è¤ê¤Ä¤Ä¤¢¤ë¥¡¼Îó¤òÊÑ´¹¤¹¤ëÊýË¡¤ò»ØÄꤹ¤ë¡£
function-key-map
¤¬¥¡¼Îók¤ò
¥Ù¥¯¥È¥ëv¤Ë¡Ø¥Ð¥¤¥ó¥É¡Ù¤¹¤ë¤È¡¢
¥¡¼Îó¤Î¤É¤³¤Ëk¤¬¸½¤ì¤Æ¤â¡¢
v¤Î¥¤¥Ù¥ó¥È¤ÇÃÖ¤´¹¤¨¤ë¡£
¤¿¤È¤¨¤Ð¡¢Ã¼ËöVT100¤Ï¡¢¥¡¼¥Ñ¥Ã¥É¤Î¥¡¼PF1¤ò²¡¤¹¤È
ESC O P¤òÁ÷½Ð¤¹¤ë¡£
¤·¤¿¤¬¤Ã¤Æ¡¢Emacs¤Ç¤Ï¤³¤ÎÎó¤ò1¤Ä¤Î¥¤¥Ù¥ó¥Èpf1
¤ËÊÑ´¹¤·¤¿¤¤¡£
VT100¤ò»È¤Ã¤Æ¤¤¤ë¤È¤¤Ëfunction-key-map
¤Ë¤ª¤¤¤Æ
ESC O P¤ò[pf1]
¤Ë¡Ø¥Ð¥¤¥ó¥É¡Ù¤¹¤ì¤Ð¡¢
¤³¤ì¤ò¹Ô¤¨¤ë¡£
¤Ä¤Þ¤ê¡¢C-c PF1¤òÂǤĤÈ
ʸ»ú¤ÎÎóC-c ESC O P¤¬Á÷½Ð¤µ¤ì¤ë¡£
¤Î¤Á¤Ë´Ø¿ôread-key-sequence
¤¬¤³¤ì¤òC-c PF1¤ËÌᤷ¡¢
¥Ù¥¯¥È¥ë[?\C-c pf1]
¤òÊÖ¤¹¡£
¥Þ¥¤¥Ê¥â¡¼¥É¡¿¥í¡¼¥«¥ë¡¿¥°¥í¡¼¥Ð¥ë¤Î¥¡¼¥Þ¥Ã¥×¤ËÌ·½â¤¹¤ë¤è¤¦¤Ê
function-key-map
Æâ¤Î¹àÌܤÏ̵»ë¤µ¤ì¤ë¡£
¤³¤Î°Õ¿Þ¤Ï¡¢¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥¡¼¤¬Á÷½Ð¤¹¤ëʸ»ú¤ÎÎó¤Ë¤Ï
¤½¤ìÆÈ¼«¤Î¥¡¼¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤¬¤¢¤ë¤Ù¤¤Ç¤Ï¤Ê¤¯¡¢
¤â¤·¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢¤â¤È¤ÎÄêµÁ¤òÍ¥À褹¤ë¤³¤È¤Ç¤¢¤ë¡£
function-key-map
¤ÎÃͤϡ¢
üËö¤Îterminfo¤ätermcap¤Î¾ðÊó¤Ë½¾¤Ã¤Æ¼«Æ°Åª¤ËÉáÄ̤ÏÀßÄꤵ¤ì¤ë¤¬¡¢
üËö¸ÇͤÎLisp¥Õ¥¡¥¤¥ë¤Î½õ¤±¤¬É¬Íפʾì¹ç¤â¤¢¤ë¡£
Emacs¤Ë¤Ï¡¢°ìÈÌŪ¤Ê¿¤¯¤ÎüËö¸þ¤±¤ÎüËö¸ÇÍ¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£
¤½¤ì¤é¤Î¼çÌÜŪ¤Ï¡¢terminfo¤ätermcap¤«¤é¿äÄê¤Ç¤¤Ê¤¤¤â¤Î¤ò
function-key-map
¤ËÄêµÁ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£
see Terminal-Specific¡£
¤³¤ÎÊÑ¿ô¤Ï¡¢function-key-map
¤ÈƱÍͤË
ÆþÎÏ¥¤¥Ù¥ó¥È¤òÊÌ¤ÎÆþÎÏ¥¤¥Ù¥ó¥È¤ØÊÑ´¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤ëÊ̤Υ¡¼¥Þ¥Ã¥×¤Ç¤¢¤ë¡£
function-key-map
¤È¤Ï2¤Ä¤Î°ÕÌ£¤Ç°Û¤Ê¤ë¡£
key-translation-map
¤Ï¡¢
function-key-map
¤ÎÊÑ´¹¸å¤Ë»È¤ï¤ì¤ë¡£
function-key-map
¤Ë¤è¤ëÊÑ´¹·ë²Ì¤ò»È¤¦¡£
key-translation-map
¤Ï¡¢¼ÂºÝ¤Î¥¡¼¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ËÍ¥À褹¤ë¡£
¤¿¤È¤¨¤Ð¡¢key-translation-map
¤ÇC-x f¤Ë¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤¬¤¢¤ë¤È¡¢
¥°¥í¡¼¥Ð¥ë¥Þ¥Ã¥×¤ËC-x f¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â
ÊÑ´¹·ë²Ì¤¬¸ú²Ì¤ò»ý¤Ä¡£
key-translation-map
¤Î°Õ¿Þ¤Ï¡¢
self-insert-command
¤ËÉáÄ̤ϥХ¤¥ó¥É¤µ¤ì¤ëÄ̾ï¤Îʸ»ú¤ò´Þ¤á¤Æ
¥æ¡¼¥¶¡¼¸þ¤±¤Ëʸ»ú½¸¹ç¤òÊ̤Îʸ»ú½¸¹ç¤Ë
ÂбþÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£
¥¡¼¤Î¡ØÊÑ´¹¤È¤·¤Æ¡Ù¥¡¼Îó¤Î¤«¤ï¤ê¤Ë´Ø¿ô¤òÍѤ¤¤ë¤È¡¢
function-key-map
¤äkey-translation-map
¤Ï
ñ¤Ê¤ëÇÛÃÖÂØ¤¨°Ê¾å¤Î¤³¤È¤Ë»È¤¨¤Þ¤¹¡£
¤½¤Î´Ø¿ô¤ÇÅö³º¥¡¼¤ÎÊÑ´¹¤ò·×»»¤¹¤ë¤Î¤Ç¤¹¡£
¥¡¼ÊÑ´¹´Ø¿ô¤Ï1¤Ä¤Î°ú¿ô¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£
¤½¤Î°ú¿ô¤Ï¡¢read-key-sequence
¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥ó¥×¥È¤«¡¢
¥¨¥Ç¥£¥¿¥³¥Þ¥ó¥É¥ë¡¼¥×¤¬¥¡¼Îó¤òÆÉ¤ß¼è¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ïnil
¤Ç¤¹¡£
¿¤¯¤Î¾ì¹ç¡¢¥×¥í¥ó¥×¥È¤ÎÃͤÏ̵»ë¤Ç¤¤Þ¤¹¡£
´Ø¿ô¼«¿È¤¬ÆþÎϤòÆÉ¤à¤È¤¤Ë¤Ï¡¢ ¸å³¤Î¥¤¥Ù¥ó¥È¤òÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¸å³¤Îʸ»ú¤ò¥Ï¥¤¥Ñ¡¼Ê¸»ú¤Ë¤¹¤ëC-c h¤ÎÄêµÁ¤Ï ¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
(defun hyperify (prompt) (let ((e (read-event))) (vector (if (numberp e) (logior (lsh 1 24) e) (if (memq 'hyper (event-modifiers e)) e (add-event-modifier "H-" e)))))) (defun add-event-modifier (string e) (let ((symbol (if (symbolp e) e (car e)))) (setq symbol (intern (concat string (symbol-name symbol))))
(if (symbolp e) symbol (cons symbol (cdr e))))) (define-key function-key-map "\C-ch" 'hyperify)
set-keyboard-coding-system
¤òÍѤ¤¤¿
¥¡¼¥Ü¡¼¥Éʸ»ú½¸¹ç¤ÎÉü¹æ²½¤ò͸ú¤Ë¤·¤Æ¤¤¤ë¤È¤¤Ë¤Ï¡¢
¾å¤Ë½Ò¤Ù¤¿ÊÑ´¹¤ò½ª¤¨¤Æ¤«¤éÉü¹æ²½¤ò¹Ô¤¤¤Þ¤¹¡£
See Specifying Coding Systems¡£
Emacs¤Î¾Íè¤ÎÈǤǤϡ¢Â¾¤ÎÊÑ´¹¤Î¤Þ¤¨¤ËÉü¹æ²½¤ò¹Ô¤¦¤Ç¤·¤ç¤¦¡£
Next: Recording Input, Previous: Input Modes, Up: Terminal Input [Contents][Index]