📄 gui_x11.cnx
字号:
包含在 $VIMRUNTIME/vim32x32.xpm 。在 GTK+ ,这是内建的图标。不幸的是,你该怎样安装它依赖于你的窗口管理器。你可以从 'guioptions' 除去 'i'标志,来除去黑白按钮: > :set guioptions-=i如果你使用 fvwm* 系列窗口管理器,只要在 .fvwm2rc 配置文件中加入: > Style "vim" Icon vim32x32.xpm确定图标文件的位置在窗口管理器图标路径的声明中。或在 .fvwm2rc 修改图标路径,或将图标放入以下已定义的任一目录中: IconPath /usr/X11R6/include/X11/pixmaps:/usr/X11R6/include/X11/bitmaps >在 CDE "dtwm" (Motif 的延伸版)的 .Xdefaults 中加入这一行: > Dtwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm在 "mwm" (Motif 窗口管理器)用: > Mwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpmX11 中可用鼠标指针 *X11_mouse_shapes*当使用 |'mouseshape'| 选项时,vim 进入各种模式时鼠标指针都会自动改变(例如,在插入,或命令模式中)。当前,可用的指针是: 箭头 一个箭头指向西北 片状 象I的竖直条 型号 一个箭头指着上下 忙时 一个时间漏斗 空白 一个不可见的指针 十字 一个瘦 "+" 符号 手1 一个暗手指向西北 手2 一个亮手指向西北 笔形 一支笔指向东南 疑问 带问号的箭头 右箭头 一个箭头指向东南 上箭头 一个箭头指向上面另外,任何一个 X11 内建的鼠标指针都可以使用,通过在 X11/cursorfont.h 指定一个整数来实现。如果那个名字被用在其他系统中,而不是在 X11 中,那就调用默认的 "arrow"。==============================================================================5. GTK 版本 *gui-gtk* *GTK+* *GTK*GUI 的 GTK 版本的使用略有不同。GTK 不使用传统的 X 资源设置。所以,你的~/.Xdefaults 或 应用程序设置文件就没被调用。许多传统的 X 命令行参数就不被支持。(例如,-bg,-fg,等等)。支持的有: 命令行参数 资源名称 意义 ~ -fn 或 -font .font 文字字体名称 -geom 或 -geometry .geometry gvim 窗口尺寸 -rv 或 -reverse *reverseVideo 白字黑底 -display 使用显示要设置字体看|'guifont'|。对 GTK,也有相应的菜单选项设置。另外,在 GTK 内部也有命令行参数。要知道如何使用以下的参数,请查看 GTK 文档: --sync --gdk-debug --gdk-no-debug --no-xshm --xim-preedit --xim-status --gtk-debug --gtk-no-debug --g-fatal-warnings --gtk-module --display (GTK+ 对应的是 -display;作用相同)vim 的颜色设置(语法加亮)仍然一致。参考 |:highlight| 如果你想设置其他的 gui 组件(如,菜单栏,滚动条,其他等等),那些是 GTK 的特别设置,你需要改动 gtkrc 文件。至于如何改动,虽然文档很少,但可参考 GTK 文档。 *gtk-tooltip-colors*如, 设定工具提示条为黑字亮黄色背景: > style "tooltips" { bg[NORMAL] = "#ffffcc" fg[NORMAL] = "#000000" } widget "gtk-tooltips*" style "tooltips"将这些写如文件 ~/.gtkrc 并是自生效于 GTK。不要忘了去掉第一栏中的 ">" 字符。使用 Vim 作为 GTK+ 的插件 *gui-gtk-socketid*当 GTK+ 版本的 Vim 启动时,它创建了它自己的顶层窗口(就是'GtkWindow')。GTK+ 提供了用 GtkSocket 和 GtkPlug 容器嵌入的便利手段。如果一 GTK+ 应用程序在它的一个窗口里创建了 GtkSocket 容器,通过使用 GtkSocket ID 来创建一个 GtkPlug 容器,一个完全不同的 GTK+ 应用程序就可以把自己嵌入上一个应用程序中。如果你通过命令行参数 '--socketid' 传给 Vim 一个十进制或十六进制的值,Vim将使用那个值,而不是普通的 GtkWindow 的值来创建一个 GtkPlug 容器。这使 Vim 作为GTK 的插件来运行。这是一个真正的编程接口,专为了支持在应用程序中正确启动 Vim 而设。有关更多的 GTK+ socket 信息,参考http://www.gtk.org/api/注意:这个功能需要最新的 GTK 版本。GTK 1.2.10 仍然有小问题。==============================================================================6. GNOME 版本 *gui-gnome* *Gnome* *GNOME*Gnome GUI 就想 GTK 一样工作,只是看上去有一点不同。有关细节参考 |GTK|以下是不同之处:- 使用 Gnome 对话框。- 使用 Gnome 浮动框,这使得工具栏、菜单栏可以移至不同的地方(如,工具栏可以放 在上下左右任何一处)。但目前他们的位置不能被保存,我认为这是 GNOME 回话管理 器(还)不支持的原因。- 那意味着菜单栏和工具栏的句柄回来了!Yeah!并且重设网格尺寸仍然可以工作。在配置时发现 GNOME时,它将被自动编译进来。==============================================================================7. 编译 *gui-x11-compiling*如果使用 X11,Vim 的Makefile将首先试着在你的系统里找到需要的 GTK+ 的文件。如果找不到,就试着找 Motif 文件。最后,还是找不到,就找 Athena 文件。如果全失败,GUI 将无法使用。对于 GTK+,Vim的配置过程需要 GTK+ 被正确安装。就是说,shell 脚本 'gtk-config'必须在你的 PATH 中, 并且你已可以成功的编译,安装,执行 GTK+ 程序了。这样做的原因是,编译、连接选项是通过 'gtk-config' shell 脚本中包含的。如果你使用 Motif 或 Athena,且配置程序无法找到它们所在的目录时,更改 Makefile,使之含有它们所在的目录名称。如,查找 "GUI_INC_LOC" 来设置 Motif 的目录,或"GUI_OPT_X"来设置 Athena 的目录。 *gui-x11-gtk*在写这篇文档时,你或许在 GTK+ 1.0.6 或 1.2 版本。建议使用v1.2,因为在另外的版本中,不是所有的 GUI 功能都支持的。如,它没有 tearoff 菜单。使用 CVS 树中的GTK+ 可能不能工作,这是不推荐的。最后,尽管 GTK+ 已被移植到 Win32 平台上,这还没有连同 Vim 测试过,所以也不支持。 *gui-x11-motif*对于 Motif,你需要至少 1.2 或 X11R5 版本。Motif 2.0 和 X11R6 也可以。Motif 1.1 和 X11R4 可能可以工作,但没有保证(可能有些问题,但稍作改动你可以使之编译、运行成功。如果你这样做了,请将补丁发给我 )。最新版的 LessTif 支持的。 *gui-x11-athena*Athena 版本默认使用 Xaw 容器。如果你有 3D 版本的,有可能要用 Xaw3d 来连接。这使菜单看上去好看些。更改 Makefile 文件,查找 "XAW_LIB"。滚动条仍然一样,因为 Vim 使用它自己的。它已经有 3D 效果了。(事实上,它更象 Motif 里的滚动条)。 *gui-x11-misc*总的来说,不要混合 不同版本的 GTK+,Motif,Athena,和X11的文件。这将引起问题。如,使用 X11R5 的头文件给 X11R6 的库,大半不能工作(尽管连接不报错,Vim之后的运行将崩溃)。==============================================================================8. X11 选择机制 *x11-selection*如果使用 X11,无论是 GUI 的还是 xterm 中用类 X11 的 Vim,Vim都提供了多种方式访问 X11 的选中板和粘贴板。它们是通过两个选择寄存器 "* 和 "+来实现的。X11 提供了两种基本类型的全局存储方式,选中和剪切缓冲。在一个重要方面他们是有区别的:选中是程序拥有的,并在程序退出时(如,Vim)消失,这样数据就消失了。而剪切缓冲无论在哪里,是存储在 X 自己的服务器里的,并且保持到被重写或 X 服务器退出(如,登出)。原始程序保存这选中的内容(如,拷贝),仅当其他程序要求时再传递过去(如,粘贴)。剪切缓冲立即被写入,是直接通过 X 服务器的,没有同原始程序交流。 *quoteplus* *quote+*有3种可记录的 X 选中:PRIMARY(要用来重现所选择的内容的,就象 Vim 的 Visual 模式),SECONDARY(缺少定义)和 CLIPBOARD(要用于剪切、复制和粘贴的操作)。对于以上3种,Vim 使用 PRIMARY 用于读写 "* 寄存器(这就是之所以当 X11 选中后,Vim 为 |'clipboard'| 的 "autoselect" 设了个缺省值。)。CLIPBOARD 用于读写 "+寄存器。Vim 不使用 SECONDARY 方式。如:(设定了默认值)- 选中了一个 URL 在 Vim 的 Visual 模式里。转到 Netscape 的文本框里并单击鼠标中键。所选择的文字将被粘贴上(很有希望!)。- 通过在 Netscape 中拖动鼠标选中文字。再到 Vim 中并按鼠标中键:选中的文字被插 入。- 在 Vim 里选中文字并做 "+y。到 Netscape,拖动鼠标选中文字。现在使用鼠标右键 并在弹出菜单里选择 "Paste" 。所选择的文字被 Vim 中的文字替换。注意:在使用 Visual 选择时, "+ 寄存器中的文字仍然存在。Visual 选择的文字存在于 "* 寄存器中。这样就可以覆盖所选的文字了。 *x11-cut-buffer*默认的有8个剪切缓冲:CUT_BUFFER0 到 CUT_BUFFER7。Vim 仅使用 CUT_BUFFER0,就是xterm 默认使用的那一个。无论何时 Vim 要不活动(或是通过退出或挂起),并且因此不能响应另一个程序的选中请求时,Vim 将选中内容写入它自己的 CUT_BUFFER0 中。如果是 "+ CLIPBOARD 选中,就按预先设定写入,否则如果是 "* PRIMARY 选中,就写入其中。类似的,当 Vim 试图从 "* 或 "+ 来粘贴时(或明确的,或通过点击鼠标中键对 "* 寄存器操作),如果被请求的 X 选中是空的或不可用,Vim 反过来读取 CUT_BUFFER0 的值。注意:当用这种方式拷贝文字到 CUT_BUFFER0 时,选中的类型(字符,行或块)总是被丢失,甚至是 Vim 以后要粘贴它。默认的 Xterm 总是将 可视的选中内容同时写入 PRIMARY 和 CUT_BUFFER0 中。当粘贴时,如果 PRIMARY 可用就使用它,如果失败就回过来要求 CUT_BUFFER0 的。因此,在 Vim 和 Xterm 中剪切、粘贴时,你应该使用 "* 寄存器。Xterm 不用 CLIPBOARD,所以 "+ 在 xterm 中无用。多数较新的应用程序提供它们当前的选中内容通过 PRIMARY ("*) 并使用 CLIPBOARD ("+) 为了剪切、拷贝、粘贴操作。你可以通过选择 "* 或 "+ 缓冲器来访问。 vim:tw=78:sw=4:ts=8:ft=help:norl:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -