OS_RISC

*os_risc.txt*   For Vim version 7.1.  最近更新: 2006年2月


		  VIM 参考手册    by Thomas Leonard
				译者: Willis
				http://vimcdoc.sf.net


						*riscos* *RISCOS* *RISC-OS*
本文包含了 Vim 的 RISC OS 版本的特点。

这个 RISC OS 移植版本是一个全新的版本,不是基于旧的 `archi' 版本。

1.  文件位置			|riscos-locations|
2.  文件名改写 (munging)	|riscos-munging|
3.  命令行的使用		|riscos-commandline|
4.  桌面 (GUI) 的使用		|riscos-gui|
5.  远程的使用 (telnet)		|riscos-remote|
6.  临时文件			|riscos-temp-files|
7.  中断			|riscos-interrupt|
8.  内存使用			|riscos-memory|
9.  文件类型			|riscos-filetypes|
10. 外壳			|riscos-shell|
11. 移植新的发布版本		|riscos-porting|

如果我漏掉什么,给我发 email,我会试图修正的。事实上,即使我没有漏掉什么,也给
我发 email 吧,让我有自信自己的程序很好用!

Thomas Leonard <tal197@ecs.soton.ac.uk>

	[这些 URLs 都不能用了...]
	移植版本主页:	http://www.ecs.soton.ac.uk/~tal197/
	或者试试:	http://www.soton.ac.uk/~tal197/


							*riscos-locations*
1. 文件位置

Vim 可执行文件和共享资源文件都存在 !Vim 应用程序目录里。

当 filer 第一次看到 !Vim 的时候,它会使得 *vi 和 *ex 命令成为 Vim 命令行版本的
别名 (参看 |riscos-commandline|)。

!Vim.Resources 和 !Vim.Resources2 包含标准 Vim 发布的所有文件。不过有些轻微的
修改,使其满足 ADFS 的限制;它们也包含了窗口模版等的附加文件。

用户的选择从 `Choice:*' 里读取,而保存到 '<Choices$Write>.*’ 里。如果你有新的
!Boot 结构,那么这些都已经设定好了。如果没有,把 Choices$Path 设为能搜索到用户
配置文件的搜索目录列表。把 Choices$Write 设为你想存储文件的目录 (这样你就可以
记住上次会话的自己的搜索模式和位置标记)。


							*riscos-munging*
2. 文件名改写 (munging)

缺省地,所有路径名改写都被关闭。所以 Vim 应该和一个正常的 RISC OS 应用一样。因
此,如果你想编辑 'doc/html',那就可以输入 `*vi doc/html'。

只有以下情况需要改写:

- C 程序里搜索被包含的文件,因为它们的文件名总是被改写的。参看 |[I|。
  注意: 确保你使用这个命令的时候在正确的目录上 (那就是,在子目录 'c' 和 'h'
        里)。

- 用 |:so| 执行脚本
  `$VIM/' 开始的路径被这样改写:

  $VIM/syntax/help.vim  ->  Vim:syntax.help

  另外,'vim' 结尾的文件的扩展名被去掉,而且斜杠被替换成句号。

有些 tag 文件和脚本文件也许需要重新改写才能在这个移植版本中应用。


							*riscos-commandline*
3. 命令行的使用

要在命令行中启动 Vim,用 `*vi' 命令 (或者要进入 |Ex-mode|,用 '*ex')。

输入 `*vi -h' 得到可用之选项。

在高彩模式里,运行命令行版本的 Vim 可能会使得滚屏很慢。切换到一个色彩低的模
式,或者用 GUI 的版本。

另外,就像一般的文本程序一样,按住 Ctrl 会更慢,而 Ctrl-Shift 甚至会使之冻结。


							*riscos-gui*
4. 桌面的使用

限制:

- 左侧的滚动条不能正常工作 (右侧和底部的则没问题)。
- 如果它落在后面,滚动速度不会增加。

即使右下方没有相应的图标,你也可以通过拖拽窗口的右下角来改变窗口大小,

你还可以使用 --rows 和 --columns 参数来设定 Vim 窗口的初始大小,类似这样:

  *Vi -g --rows 20 --columns 80

支持全局剪贴板。所以你可以选择一些文本,把它直接贴到另一个应用程序里 (只要后者
也支持剪贴板)。

点击菜单键,会得到一个和正常 RISC OS 程序类似的菜单界面。按住 Shift 再点击,则
(从全局剪贴板里) 粘贴。

把一个文件拖拽到窗口里,就会用这个文件来替换_当前的_缓冲区 (光标所在的这个,而
不是你拖到的那个)。

按住 Ctrl 再拖拽之则会在一个新的 Vim 窗口里编辑这个文件 (参看 |:sp|)。

在插入模式下,按住 Shift 再拖拽文件会插入这个文件的路径名。

:browse :w 打开一个标准的 RISC OS 保存框。
:browse :e 打开一个目录的查看器。

关于字体部分,你可以选择系统字体、描边 (outline) 字体、通过 ZapRedraw 得到的系
统字体和通过 ZapRedraw 得到的任何字体:

  :set guifont=
			使用 VDU 驱动得到的系统字体。支持粗体和下划线。

  :set guifont=Corpus.Medium
			使用命名的描边字体。你可以使用任何字体,不过只有象
			Corpus 这样的等宽字体才能显示正确。

  :set guifont=Corpus.Medium:w8:h12:b:i
			和前者一样,不过选用 8x12 点的粗体斜体字。
			如果只指定宽度和高度的中的一个,这假定两者都指定相同的
			值。如果都不指定,则假定大小为 10 点。

多谢 John Kortink,Vim 可以使用 ZapRedraw 模块了。字体可以用 '!' (或者要两倍高
度,用 '!!') 开头,就像这样:

  :set guifont=!!
			使用 ZapRedraw 得到的系统字体。在 StrongARM 处理器上,
			刷新能快些。不过你没法得到粗体或者斜体字。两倍高度。

  :set guifont=!script
			用命名的 Zap 字体 (在 VimFont$Path 中的一个目录)。刷新
			速度和 '!!' 一样,而且你能得到一个更好看的字体。
			目前,只提供了 "man+" 和 "script" 两种字体。不过你可以
			使用任何在 VimFont$Path 里的 Zap 字体。
			Vim 会试图从命名的目录中读入字体文件 'O'、'B'、'I' 和
			'IB'。只有 'O' (正常字体) 必须存在。联结文件目前还不支
			持。

要 注意 在使用 ZapRedraw 的时候,编辑条 (译者注: 光标?) 出现在你所在字符的前
面而不是后面。另外,屏幕模式为 8 位 0 时,刷新会不正确。如果字体包括控制字符,
你可以通过改变 Vim 的 'isprint' 选项来显示它们。

如果你发现你的机器上滚动太慢,尝试一下 'scrolljump' 和 'ttyscroll' 选项。

特别的,StrongARM 用户也许会发现:

  :set ttyscroll=0

在高彩模式会滚屏快一些。


							*riscos-remote*
5. 远程的使用 (telnet)

我已经附带了一个内建的 termcap 入口,不过你可以编辑这个文件,从而可以在远程终
端上使用 Vim 的时候能够得到更多的控制编码。

尽管在我的 Acorn 上没有因特网连接,我成功地通过 loopback 连接在一个 FreeTerm
窗口里运行过 Vim。

用 '*vi -T ansi',看起来使用没有问题。


							*riscos-temp-files*
6. 临时文件

如果 Vim 崩溃了,交换文件和备份文件 (如果存在的话),会保存在 'directory' 和
'bdir' 选项指定的目录里。缺省地,交换文件在 <Wimp$ScrapDir> (就是在 !Scrap 里
面),而备份文件在你保存文件所在的同一目录。这样,Vim 允许你在下次编辑时,尝试
修复文件。

要看到交换文件的列表,按 <F12> 并输入 `*vi -r'。

如果你试图编辑不同的目录的两个同名文件时,Vim 不会再显示任何 ATTENTION 的警告
了。

不过,如果你试图 (在两个不同的 Vim 里) 编辑同一个文件两次,它也不会警告。当
然,在你保存文件时,它仍然会警告你修改日期已经发生了变化。


							*riscos-interrupt*
7. 中断

要退出一个死循环的宏或者别的什么,在命令行版本里按住 Escape,在 GUI 版本里按下
CTRL-C

							*riscos-memory*
8. 内存使用

在 RISC OS 3.5 或以后的版本里,Vim 会动态使用区域。如果是比较老的机器,编辑
!RunTxt 和 Gvim 文件。我不知道 UnixLib 缺省做什么,所以我还是要保证安全行事。

如果没有动态区域,Vim 不会工作很好,因为它不会在运行以后改变自己的内存分配。所
以,你应该修改 '!Vim.Gvim' 和 '!Vim.!RunTxt' 来选择适合你的最佳大小。你也许需
要至少 1400K。


							*riscos-filetypes*
9. 文件类型

现在,你可以为特定的文件类型指定专门的自动命令了。指定的方式是 &xxx,其中的
xxx 是文件类型。

文件类型必须以数字指定 (例如, &fff 代表文本文件)。

5.3 版本以来的系统已经有了改变。新的事件序列是:

- 读入文件。|'osfiletype'| 设为 RISC OS 的文件类型。
- 基于文件类型和路径名,Vim 试图把 |'filetype'| 设置为相应的 Vim 类型。
- 设置这个选项可能会载入语法文件和执行其他操作。
- 会用文件类型 |'osfiletype'| 保存文件。

以下例子会说明清楚一些:

  读入的文件类型	osfiletype	filetype 
  C 代码 'c.hellow'	Text (&fff)	C
  LaTeX 文档		LaTeX (&2a8)	TeX
  Draw 文档		DrawFile (&aff)	(没有改变)


							*riscos-shell*
10. 外壳

- 因为很多路径名都有感叹号,感叹号 (!) 只有在后面紧跟一个空格或者回车的时候才
  会被替代,

- 你可以在命令前附加一个 '~',这样就不会显示它的输出结果。这也意味着你后来不需
  要再按 <Enter>,而且也不用重新刷新屏幕。{仅在 GUI 版本上才有}


							*riscos-porting*
11. 移植新的 RISC OS 发布版本

下载你所需的一切:

- 得到最新的软件发布版本 (参看 www.vim.org)
- 得到运行时环境文件 (如这些帮助文件)
- 得到 `附加' 文件包 (包含 RISC OS 专门的内容)
- 得到 RISC OS 的可执行发布版本 (如有可能)


解压:

- 新建一个 raFS 盘,并把压缩档放到这里。
- 用 gzip 解压
- 用 tar 从包里释放   (*tar xELf 50 archive/tar)


重新编译源代码:

- 建立 c、s 和 h 目录。
- 把所有的头文件放在 'h' 里。		     \
- 把所有的 C 文件放在 `c' 里。		     | 然后扔掉它们的扩展名
- 把所有的汇编文件 (`swis/s') 放在 's' 里。  /
- 把所有 `proto' 里的文件改名到 `h' 里,就像这样:
    raFS::VimSrc.source.proto.file/pro
	  变成
    raFS::VimSrc.source.h.file_pro
- 在文件 `h.proto' 和 `c.termlib' 里,搜索并替换
    .pro"
       为
    _pro.h"
- 如果想要,建立一个简单的 Makefile 并执行 '*make -k'。
  在 Makefile 里用 'CC = gcc -DRISCOS -DUSE_GUI -O2 -x c'。
- 在可执行的发布版本里,把可执行文件存为 !Vim.Vim。


更新运行时环境:

- 用新文件替换掉 !Vim.Resources 里旧的或者不存在的文件。
- 删除 `doc' 里除了 `tags' 以外不以 `/txt' 结尾的文件。
- 除了 `doc' 里的文件以外,删掉所有文件的扩展名。
- 编辑 `doc.tags' 文件。删除第二列的文件扩展名:
	:%s/^\(.[^\t]*\t.*\)\.txt\t/\1\t/
- 删除语法文件里所有的扩展名。把它们分成两个目录,以绕开旧的 ADFS 文件系统的
  77 个入口项的限制。
- 编辑 `Vim:FileType' 使得同时能匹配 `*.c.*' 和 `*/c',依此类推。
  也加入文件类型的检查。
- 编辑 `Vim:Menu' 并删除菜单里的所有键说明
	:%s/<Tab>[^ \t]*//

 vim:tw=78:ts=8:ft=help:norl:

Generated by vim2html on 2008年 03月 27日 星期四 17:04:45 CST