⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usr_45.cnx

📁 Vim 中文文档
💻 CNX
📖 第 1 页 / 共 2 页
字号:
在 UNICODE 终 端 内 使 用 UNICODE也有直接支持 Unicode 的终端。XFree86 自带的标准 xterm 就是其中之一。我们就用它作为例子。   首先,Unicode 支持要被编译进 xterm。参阅 |UTF8-xterm|。   用 "-u8" 参数启动 xterm。你可能还需要指定一个字体。例如: >   xterm -u8 -fn -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1现在你就可以在终端内运行 Vim 了。象前面一样将 'encoding' 设定为 "utf-8"。这样就行了。在 普 通 终 端 里 使 用 UNICODE假定你希望编辑 Unicode 文件,但是手头又没有一个支持 Unicode 的终端。你还是可以用 Vim 这样作,但是那些字符就不能被正确的显示了。文本的编排格式会被保留。 >	:let &termencoding = &encoding	:set encoding=utf-8这和 GUI 的那个例子一样。但内部工作机制不同:Vim 会把显示的字符转换后再送给终端程序。 这样屏幕就不会显示一堆毫无意义的字符。   这需要 'termencoding' 和 'encoding' 之间的转换。Vim 会自己处理 latin1 和 Unicode 之间的转化。其它的转换需要将 |+iconv| 特性编译进来。   试着编辑一个含有 Unicode 的文件。你会注意到 Vim 会在那些无法显示的字符处显示问号(或下划线等)。将光标移动到问号的地方并使用下面的命令: >	gaVim 会显示该字符的代码。这样你就会大概知道那个字符是什么。你可以去查 Unicode表。如果你有很多很多时间的话,你甚至可以这样来阅读一个文件的内容。	Note:	因为 Vim 对所有的文本都使用 'encoding' 选项。改变该选项的值会使所有的非	ASCII 码字符无效。你在使用寄存器和 'viminfo' 文件 (例如,一个被存储的查	找模式) 时就会注意到了。建议在 vimrc 文件里设置 'encoding' 选项,然后就	别再碰它。==============================================================================*45.4*	编辑其它编码的文件假定你已经配置 Vim 使用 Unicode 了,你现在想编辑一个 16 位 Unicode 的文件。听起来很简单,是吗? 事实上,Vim 在内部使用 utf-8 编码,所以 16 为的编码必须被转换。这样就存在一个字符集 (Unicode) 和编码格式 (utf-8 或 16 位) 的差别。   Vim 会试着用 'fileencodings' 选项中的编码名称检测你在编辑那种文件。当使用Unicode 时,缺省的选项值是: "ucs-bom,utf-8,latin1".  也就是说 Vim 会检查编辑的文件看看是下面的编码之一:	ucs-bom		文件必须以 Byte Order Mark (BOM) 开始。这允许对 16			位,32 位和 utf-8 Unicode 编码的检测。	utf-8		utf-8 Unicode. 当一个字节序列在 utf-8			中是非法时此设定将被拒绝。	latin1		保证有效的 8 位编码。当你开始编辑一个 16 位的 Unicode 编码,而该文件有 BOM 时, Vim 会检测到这些并在读取文件时将其转换为 utf-8 编码。 'fileencoding' 选项 (后面没有 s) 被设为检测到的值,在本情况下是 "ucs-2le"。 表示是 Unicode, 双字节以及 little-endian 的编码。这样的文件格式在 MS-Windows 上很常用 (例如,注册表文件)。   当写入文件时,Vim 会比较 'fileencoding' 和 'encoding' 的值。如果它们的值不同,文本会被转换。   如果 'fileencoding' 的值是空的,意味着不作任何转换。这样文本就会被以'encoding' 的值来编码。如果缺省的 'fileencodings' 值不行的话,你可以将其设成你希望 Vim 尝试使用的编码。只有当一个值无效时下一个才会被使用。将 "latin1" 放到第一位是不行的,因为它永远都不会是无效的。举个例子,要在文件没有 BOM 也不是 utf-8 编码的时候换回日语: >	:set fileencodings=ucs-bom,utf-8,sjis|encoding-values| 有建议值。其它的值也可能有效。这取决于系统提供的转换功能。强 制 编 码如果编码的自动检测对你不起作用的话,你就得告诉 Vim 你要编辑的文件是什么编码。例如: >	:edit ++enc=koi8-r russian.txt"++enc" 部分指定编辑该文件时应该使用的编码。Vim 会把指定的编码 (在这是俄语)转换为 'encoding'。 'fileencoding' 也会被设为指定的编码,这样当写入文件时就会发生编码的反转换。   在写入文件是也可以用到一样的参数。这样你事实上可以用 Vim 来转换一个文件。例如: >	:write ++enc=utf-8 russian.txt<	Note:	转换可能导致字符丢失。在 Unicode 和其他编码之间的相互转换不会有这	个麻烦,除非你有非法字符。当文件包括多于一种语言的字符时,从 Unicode	转换为其它编码很可能会丢失信息。==============================================================================*45.5*	文本录入计算机键盘只有那么多键。有些语言包括几千个字符。Unicode 有超过一万。那你怎么才能输入这些字符呢?   首先,如果你不需要很多的特殊字符,你可以用 digraphs. 这已经在 |24.9| 讲述过了。   当你使用一种有很多字符的语言,你的键盘应付不了,你就得使用一种输入法(IM)。这需要学习如何把输入的键变成要输入的字符。你所用的系统很可能已经提供了一种。Vim 应该可以很好的与其合作。更多的细节请参阅 |mbyte-XIM| (X-Windows) 和 |mbyte-IME| (MS-Windows).键 图对于某些语言来说字符集可能不同但是可用的字符数目和拉丁字符集差不多。这样就有可能在字符和键盘之间定义一个一对一的对应。 Vim 用键图来解决这个问题。   假定你想输入西伯来语,你可以这样载入西伯来语的键图: >	:set keymap=hebrewVim 会为你找到一个键图文件。这取决于 'encodings' 选项的值。如果找不到相应的文件,你会得到一个错误信息。现在你就可以在插入方式下输入西伯来语了。普通模式下,当你键入 ":",Vim 会自动切换到英语。你也可以用下面这个命令来在西伯语和英语之间切换: >	CTRL-^这只在插入模式和命令行模式下才有效。在普通模式下会产生完全不同的效果 (跳转到 alternate 文件)。   如果你打开 'showmode' 选项的话,键图的使用情况会在状态信息里指出。 在 GUI的 Vim 中这些信息会使用不同的光标颜色。   你可以用 'iminsert' 和 'imsearch' 选项来改变键图的用法。要查看键图的列表,用这个命令: >	:lmap要查看系统有那些键图文件,在 GUI 里你可以用 Edit/Keymap 菜单。否则你可以用: >	:echo globpath(&rtp, "keymap/*.vim")自定义键图你也可以创建你自己的键图。不是很难。从一个和你要使用语言类似的键图开始。将其拷贝到你的运行时目录。例如,在 Unix 上,你可以用 "~/.vim/keymap" 目录。   键图的文件名必须遵守下面的规则:	keymap/{name}.vim ~	keymap/{name}_{encoding}.vim ~{name} 是键图的名字。选择一个容易识别,又和系统中其它键图不同的名字 (除非你希望替换一个现存的键图)。名字不能包括下划线。使用的编码名是可选的。 例如:	keymap/hebrew.vim ~	keymap/hebrew_utf-8.vim ~文件的内容应该很容易理解。看看随 Vim 一起发布的几个键图。更详细的,请参阅|mbyte-keymap|。最 后 的 办 法如果其它的方法都行不通,你可以用 CTRL-V 来输入任何字符:	编码       键入			范围 ~	8-bit	   CTRL-V 123		十进制 0-255	8-bit	   CTRL-V x a1		十六进制 00-ff	16-bit     CTRL-V u 013b	十六进制 0000-ffff	31-bit	   CTRL-V U 001303a4	十六进制 00000000-7fffffff不要输入空格。更详细的,参阅 |i_CTRL-V_digit|。==============================================================================下一章: |usr_90.txt|  安装 Vim版权: 参见 |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -