Solaris 公用桌面环境:高级用户和系统管理员指南

定义 UNIX 绑定

缺省时 UNIX 绑定不可用。

指定 EMACS 式样转换

下面的过程指定了:

  1. 在文件 HomeDirectory /.Xdefaults 中添加下行:

    #include“/usr/dt/app-defaults/language/UNIXbindings”

    其中 languageLANG 环境变量的值。

  2. 重新启动会话。

修改 EMACS-Style 转换

  1. 将文件 /usr/dt/app-defaults/language /UNIXbindings 的内容插入 HomeDirectory/.Xdefaults

  2. .Xdefaults 文件中编辑绑定。

  3. 完成后重新启动会话。

由 UNIXbindings 文件提供的 UNIXbindings 绑定

/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\ 

<Key>j: 

新行并缩进()\n\ 

c ~s 

<Key>k: 

kill (删) 到行结尾()\n\ 

c s 

<Key>k: 

kill (删) 到行开头()\n\ 

<Key>l: 

重画显示()\n\ 

<Key>m: 

新行()\n\ 

c s 

<Key>n: 

进程继续()\n\ 

c ~s 

<Key>n: 

进程关闭()\n\ 

<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\ 

<Key>w: 

kill (删除) 选择部分()\n\ 

c ~s 

<Key>y: 

unkill (不删除) ()\n\ 

<Key>]: 

向前一段()\n\ 

<Key>[: 

向后一段()\n\ 

c ~s 

<Key>comma: 

向后一词()\n\ 

c s 

<Key>comma: 

向前一词()\n\ 

<Key>\\<: 

文件开头()\n\ 

c ~s 

<Key>period: 

向前一词()\n\ 

c s 

<Key>period: 

向后一词()\n\ 

<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: 

删除下一字符()