diff options
| author | Richard M. Stallman | 2005-03-06 18:22:28 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2005-03-06 18:22:28 +0000 |
| commit | 07ea73bb981382a7a47a37fbf4c21eb417758ad3 (patch) | |
| tree | 7666e8ead3aacbf94b24a3e9ca6d9e80fab56aa2 | |
| parent | 4ccd1968d9420a8e20b74ffd35d1ef7c4a8576e5 (diff) | |
| download | emacs-07ea73bb981382a7a47a37fbf4c21eb417758ad3.tar.gz emacs-07ea73bb981382a7a47a37fbf4c21eb417758ad3.zip | |
(Translating Input): Replace flow-control example
with a less obsolete example that uses `keyboard-translate'.
| -rw-r--r-- | lispref/os.texi | 49 |
1 files changed, 20 insertions, 29 deletions
diff --git a/lispref/os.texi b/lispref/os.texi index 58bab17e139..1358e3421db 100644 --- a/lispref/os.texi +++ b/lispref/os.texi | |||
| @@ -1618,35 +1618,6 @@ If @code{keyboard-translate-table} is a char-table | |||
| 1618 | looked up in this char-table. If the value found there is | 1618 | looked up in this char-table. If the value found there is |
| 1619 | non-@code{nil}, then it is used instead of the actual input character. | 1619 | non-@code{nil}, then it is used instead of the actual input character. |
| 1620 | 1620 | ||
| 1621 | In the example below, we set @code{keyboard-translate-table} to a | ||
| 1622 | char-table. Then we fill it in to swap the characters @kbd{C-s} and | ||
| 1623 | @kbd{C-\} and the characters @kbd{C-q} and @kbd{C-^}. Subsequently, | ||
| 1624 | typing @kbd{C-\} has all the usual effects of typing @kbd{C-s}, and vice | ||
| 1625 | versa. | ||
| 1626 | |||
| 1627 | @cindex flow control example | ||
| 1628 | @example | ||
| 1629 | @group | ||
| 1630 | (defun evade-flow-control () | ||
| 1631 | "Replace C-s with C-\ and C-q with C-^." | ||
| 1632 | (interactive) | ||
| 1633 | @end group | ||
| 1634 | @group | ||
| 1635 | (setq keyboard-translate-table | ||
| 1636 | (make-char-table 'keyboard-translate-table nil)) | ||
| 1637 | @end group | ||
| 1638 | @group | ||
| 1639 | ;; @r{Swap @kbd{C-s} and @kbd{C-\}.} | ||
| 1640 | (aset keyboard-translate-table ?\034 ?\^s) | ||
| 1641 | (aset keyboard-translate-table ?\^s ?\034) | ||
| 1642 | @end group | ||
| 1643 | @group | ||
| 1644 | ;; @r{Swap @kbd{C-q} and @kbd{C-^}.} | ||
| 1645 | (aset keyboard-translate-table ?\036 ?\^q) | ||
| 1646 | (aset keyboard-translate-table ?\^q ?\036)) | ||
| 1647 | @end group | ||
| 1648 | @end example | ||
| 1649 | |||
| 1650 | Note that this translation is the first thing that happens to a | 1621 | Note that this translation is the first thing that happens to a |
| 1651 | character after it is read from the terminal. Record-keeping features | 1622 | character after it is read from the terminal. Record-keeping features |
| 1652 | such as @code{recent-keys} and dribble files record the characters after | 1623 | such as @code{recent-keys} and dribble files record the characters after |
| @@ -1664,6 +1635,26 @@ character code @var{from} into character code @var{to}. It creates | |||
| 1664 | the keyboard translate table if necessary. | 1635 | the keyboard translate table if necessary. |
| 1665 | @end defun | 1636 | @end defun |
| 1666 | 1637 | ||
| 1638 | Here's an example of using the @code{keyboard-translate-table} to | ||
| 1639 | make @kbd{C-x}, @kbd{C-c} and @kbd{C-v} perform the cut, copy and paste | ||
| 1640 | operations: | ||
| 1641 | |||
| 1642 | @example | ||
| 1643 | (keyboard-translate ?\C-x 'control-x) | ||
| 1644 | (keyboard-translate ?\C-c 'control-c) | ||
| 1645 | (keyboard-translate ?\C-v 'control-v) | ||
| 1646 | (global-set-key [control-x] 'kill-region) | ||
| 1647 | (global-set-key [control-c] 'kill-ring-save) | ||
| 1648 | (global-set-key [control-v] 'yank) | ||
| 1649 | @end example | ||
| 1650 | |||
| 1651 | @noindent | ||
| 1652 | On a graphical terminal that supports extended @acronym{ASCII} input, | ||
| 1653 | you can still get the standard Emacs meanings of one of those | ||
| 1654 | characters by typing it with the shift key. That makes it a different | ||
| 1655 | character as far as keyboard translation is concerned, but it has the | ||
| 1656 | same usual meaning. | ||
| 1657 | |||
| 1667 | The remaining translation features translate subsequences of key | 1658 | The remaining translation features translate subsequences of key |
| 1668 | sequences being read. They are implemented in @code{read-key-sequence} | 1659 | sequences being read. They are implemented in @code{read-key-sequence} |
| 1669 | and have no effect on input read with @code{read-event}. | 1660 | and have no effect on input read with @code{read-event}. |