缺省时 UNIX 绑定不可用。
下面的过程指定了:
DtEditor 小部件应用程序,例如桌面文本编辑器 (dtpad) 和邮件程序 (dtmail) 的 EMACS 式样转换
与这些转换冲突的 DtEditor 小部件应用程序菜单加速器的替换物。
在文件 HomeDirectory /.Xdefaults 中添加下行:
#include“/usr/dt/app-defaults/language/UNIXbindings”
其中 language 是 LANG
环境变量的值。
重新启动会话。
将文件 /usr/dt/app-defaults/language /UNIXbindings 的内容插入 HomeDirectory/.Xdefaults。
在 .Xdefaults 文件中编辑绑定。
完成后重新启动会话。
/usr/dt/app-defaults/language /UNIXbindings 文件提供的绑定如下表所述。
当 UNIX 绑定启用时,“Delete”键删除前一个字符,而 “Shift-Delete”键删除下一个字符。
表 17–1 列出和 UNIX 绑定冲突的菜单加速器和加速器文本的 dtpad 覆盖。
表 17–1 dtpad 覆盖
菜单加速器和加速器文本 |
覆盖 |
---|---|
Dtpad*fileMenu.print.acceleratorText: |
|
Dtpad*fileMenu.print.accelerator: |
|
Dtpad*editMenu.undo.acceleratorText: |
Ctrl+_ |
Dtpad*editMenu.undo.accelerator: |
Ctrl<Key>_ |
Dtpad*editMenu.paste.acceleratorText: |
Shift+Insert |
Dtpad*editMenu.paste.accelerator: |
Shift<Key>osfInsert |
Dtpad*editMenu.findChange.acceleratorText: |
Ctrl+S |
Dtpad*editMenu.findChange.accelerator: |
Ctrl<Key>s |
表 17–2 列出和 UNIX 绑定冲突的菜单加速器和加速器文本的 dtmail 创作窗口的覆盖。
表 17–2 dtmail 创作窗口覆盖
菜单加速器和加速器文本 |
覆盖 |
---|---|
Dtmail*ComposeDialog*menubar*Edit.Undo.acceleratorText: |
Ctrl+_ |
Dtmail*ComposeDialog*menubar*Edit.Undo.accelerator: |
Ctrl<Key>_ |
Dtmail*ComposeDialog*menubar*Edit.Paste.acceleratorText: |
Shift+Insert |
Dtmail*ComposeDialog*menubar*Edit.Paste.accelerator: |
Shift<Key>osfInsert |
Dtmail*ComposeDialog*menubar*Edit.Find/Change.acceleratorText: |
Ctrl+S |
Dtmail*ComposeDialog*menubar*Edit.Find/Change.accelerator: |
Ctrl<Key>s |
下面的转换提供 (GNU 式样) EMACS 控制和元键绑定以及一些附加绑定。在适当的时候,它们也允许“Shift”键和正常绑定进行组合使用,以便反转操作的方向。例如,“Ctrl+Shift+F” 键将使光标后移一个字符,而正常情况下,“Ctrl+F” 键 使光标前移一个字符。
附加绑定是:
Ctrl+comma—后移一个单词
Ctrl+Shift+comma—前移一个单词
Ctrl+period—前移一个单词
Ctrl+Shift+period—后移一个单词
Ctrl+Return—文件结尾
Ctrl+Shift+Return—文件开头
GNU EMACS 将 delete-previous-character(),而不是 delete-next-character() 绑定到“Delete”键。正常情况下,“Meta+F”是文件菜单的助记符,所以将忽略 forward-word() 的绑定。使用 forward-word 的其它一种绑定 (例如,Ctrl+period)。
表 17–3 列出 DtEditor.text 转换
表 17–3 DtEditor.text 转换
修饰符键 |
键 |
操作例程 |
---|---|---|
c ~s |
<Key>a: |
行开头()\n\ |
c s |
<Key>a: |
行结尾()\n\ |
c ~s |
<Key>b: |
向后一个字符()\n\ |
c s |
<Key>b: |
向前一个字符()\n\ |
c ~s |
<Key>b: |
向后一个字符()\n\ |
c s |
<Key>b: |
向后一词()\n\ |
m ~s |
<Key>b: |
向后一词()\n\ |
m s |
<Key>b: |
向前一词()\n\ |
c ~s |
<Key>d: |
删除下一个字符()\n\ |
c s |
<Key>d: |
删除前一字符()\n\ |
m ~s |
<Key>d: |
kill (删除) 下一个词()\n\ |
m s |
<Key>d: |
kill (删除) 前一个词()\n\ |
c ~s |
<Key>e: |
行结尾()\n\ |
c s |
<Key>e: |
行开头()\n\ |
c ~s |
<Key>f: |
向前一个字符()\n\ |
c s |
<Key>f: |
向后一个字符()\n\ |
m ~s |
<Key>f: |
向前一词()\n\ |
m s |
<Key>f: |
向后一词()\n\ |
c |
<Key>j: |
新行并缩进()\n\ |
c ~s |
<Key>k: |
kill (删) 到行结尾()\n\ |
c s |
<Key>k: |
kill (删) 到行开头()\n\ |
c |
<Key>l: |
重画显示()\n\ |
c |
<Key>m: |
新行()\n\ |
c s |
<Key>n: |
进程继续()\n\ |
c ~s |
<Key>n: |
进程关闭()\n\ |
c |
<Key>o: |
新行并备份()\n\ |
c ~s |
<Key>p: |
进程继续()\n\ |
c s |
<Key>p: |
进程关闭()\n\ |
c ~s |
<Key>u: |
kill (删) 到行开头()\n\ |
c s |
<Key>u: |
kill (删) 到行结尾()\n\ |
c ~s |
<Key>v: |
下一页()\n\ |
c s |
<Key>v: |
前一页()\n\ |
m ~s |
<Key>v: |
前一页()\n\ |
m s |
<Key>v: |
下一页()\n\ |
c |
<Key>w: |
kill (删除) 选择部分()\n\ |
c ~s |
<Key>y: |
unkill (不删除) ()\n\ |
m |
<Key>]: |
向前一段()\n\ |
m |
<Key>[: |
向后一段()\n\ |
c ~s |
<Key>comma: |
向后一词()\n\ |
c s |
<Key>comma: |
向前一词()\n\ |
m |
<Key>\\<: |
文件开头()\n\ |
c ~s |
<Key>period: |
向前一词()\n\ |
c s |
<Key>period: |
向后一词()\n\ |
m |
<Key>\\>: |
文件结尾()\n\ |
c ~s |
<Key>Return: |
文件结尾()\n\ |
c s |
<Key>Return: |
文件开头()\n\ |
~c ~s ~m ~a |
<Key>osfDelete: |
删除前一字符()\n\ |
~c s ~m ~a |
<Key>osfDelete: |
删除下一字符() |