OS_RISC
*os_risc.txt* For Vim version 7.3. 最近更新: 2010年8月
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 的可执行发布版本 (如有可能)
解压:
- 新建一个 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: