blob: a33623f45708132fdb84d0b4450b10a88094ac60 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: docs-vim-zh_CN.xml,v 1.2 2005/12/17 13:28:38 bbbush Exp $ --><chapter id="ch-vim">
<title>VIM 与 DocBook</title>
<indexterm>
<primary>VIM</primary>
</indexterm>
<para>VIM 有很多特性,有助于撰写类似 DocBook 的 XML 文档,包括语法高亮和可定制的按键绑定。另外,还可以用外部程序辅助 VIM 完成拼写检查等操作。本章假定您已知悉 VIM 一般用法;如果您要学习一般用法,执行 <command>vimtutor</command> 或在 VIM 中执行 <userinput>:help tutor</userinput>。</para>
<sect1 id="s1-vimrc-file">
<title>设置 <filename>.vimrc</filename> 文件</title>
<indexterm>
<primary>VIM</primary>
<secondary>配置文件</secondary>
</indexterm>
<para>下面是一个示例 <filename>.vimrc</filename> 文件,打开了一些 VIM 特性,便于编辑类似 DocBook 的 SGML 或 XML 文档: <screen><computeroutput>
" 关闭 vi 兼容特性,类似有限的撤销
set nocompatible
" 基于文件扩展名的语法高亮
syntax on
" 在 80 个字符后面自动插入新行
set textwidth=80
" 自动缩进
set autoindent
" 使用 % 匹配 SGML 标记
source $VIMRUNTIME/macros/matchit.vim
</computeroutput></screen></para>
<note>
<para>一些特性需要安装 <filename>vim-enhanced</filename>。如果您使用的是 <filename>vim-minimal</filename>,或者是旧版本的 VIM,可能不包含 <filename>$VIMRUNTIME/macros/matchit.vim</filename> 文件,那么可以在 Vim.org 下载 <ulink url="http://vim.org/scripts/script.php?script_id=39">matchit.zip</ulink> 并加载。</para>
</note>
</sect1>
<sect1 id="s1-vim-keymapping">
<title>VIM 中的按键映射</title>
<para>VIM 可以使创建 DocBook 文档更加快捷,只要将经常使用的标记 (或任何词汇短语) 定义为快捷键。默认情况下,键盘映射以反斜线 (<literal>\</literal>) 开始,但是也可以用命令定义,类似 <userinput>let mapleader =
","</userinput>。有两种方式来使用下面的例子;您可以将它写在 <filename>.vimrc</filename> 文件中,或者将它保存为单独的文件,并在 <filename>.vimrc</filename> 文件中以 <userinput>source</userinput> 命令加载。<screen><programlisting><![CDATA[
let mapleader = ","
" skip ahead to after next tag without leaving insert mode
imap <leader>e <esc>/><cr>:nohlsearch<cr>a
" common tags that start a new text block
imap<leader>pa <para><cr></para><esc>O
imap<leader>s1 <sect1 id=""><cr><para><esc>jo</sect1><esc>O
imap<leader>pl <programlisting><cr></programlisting><esc>O<esc>0i
imap<leader>cp <computeroutput></computeroutput><esc>O<esc>0i
" common tags that are placed inline
" use <esc>F>a
imap<leader>en <envar></envar><esc>F>a
imap<leader>fi <filename></filename><esc>F>a
imap<leader>lt <literal></literal><esc>F>a
imap<leader>re <replaceable></replaceable><esc>F>a
imap<leader>ui <userinput></userinput><esc>F>a
imap<leader>ul <ulink url=""></ulink><esc>F>a
imap<leader>si <systemitem></systemitem><esc>F>a
imap<leader>us <systemitem class="username"></systemitem><esc>F>a
imap<leader>sy <systemitem class="systemname"></systemitem><esc>F>a
imap<leader>cm <command></command><esc>F>a
" entities
imap <leader>> >
imap <leader>< <
]]></programlisting></screen></para>
<para>不幸的是,这不是所有 DocBook 命令的完整集合,因此您需要自行定义,或定制 <xref linkend="s1-vim-additional-resources"/> 范例中的定义。</para>
</sect1>
<sect1 id="s1-vim-additional-resources">
<title>其他 VIM 资源</title>
<para>其他 VIM 相关的资源可以在这里找到:</para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://newbiedoc.sourceforge.net/text_editing/vim.html#JESSE-SGMLRC"> 示例 sgml-vimrc</ulink>,来自 <citetitle>Beginner's guide to Vi Improved (VIM)</citetitle></para>
</listitem>
<listitem>
<para>
<ulink url="http://tnerual.eriogerg.free.fr/vim.html">VIM Quick Reference Card</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.pinkjuice.com/howto/vimxml/">Vim 作为 XML 编辑器</ulink>
</para>
</listitem>
<listitem>
<para>
<citetitle>VIM REFERENCE MANUAL</citetitle>,包含在 <filename>vim-common</filename> 软件包中 — <filename>/usr/share/vim/<replaceable><version></replaceable>/doc/intro.txt</filename>,可以在 VIM 中执行 <userinput>:help intro</userinput> 查看。</para>
</listitem>
</itemizedlist>
</sect1>
</chapter>
|