南方Linux论坛   首页 | 行业 | 下载 | Blog | 桌面应用 | 数据库 | 电子商务 | 文摘 | 网络服务 | 开源 | 系统管理 | 内核代码 | 教程

返回   南方Linux论坛 > Linux基础技术支持区 > 命令行使用与SHELL编程
注册账号 Blog 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记讨论区已读

发表新主题 回复
 
主题工具 显示模式
旧 2007-05-16, 05:48 PM   #1
TOM
级别:10 | 在线时长:143小时 | 升级还需:22小时级别:10 | 在线时长:143小时 | 升级还需:22小时级别:10 | 在线时长:143小时 | 升级还需:22小时级别:10 | 在线时长:143小时 | 升级还需:22小时
论坛义工
 
注册日期: 2006-07-05
帖子: 477
精华: 0
现金: 1632 金币
资产: 1632 金币
声望: 16 TOM 正向着好的方向发展
默认 VIM 参考手册-Vim 和 Vi 的差异 (3)

6. 命令行参数 *cmdline-arguments*

不同版本的 Vi 有不同的命令行参数。这会引起混乱。为了帮助你,本节给出这些差别的
概述。

这里考虑五个 Vi 的不同版本:
Elvis Elvis 2.1b 版本
Nvi Nvi 1.79 版本
Posix Posix 1003.2
Vi Vi 3.7 版本 (Sun 4.1.x 版本)
Vile Vile 7.4 版本 (不完整)
Vim Vim 5.2 版本

只有 Vim 支持在文件名之间和之后接受选项。

+{command} Elvis、Nvi、Posix、Vi、Vim: 和 "-c {command}" 相同。

- Nvi、Posix、Vi: 在批处理模式下运行 Ex。
Vim: 从标准输入读取文件 (批处理模式用 -s)。

-- Vim: 选项结束,其后的全被解释为文件名。

--cmd {command} Vim: 在执行 vimrc 文件前执行 {command} 命令。

--echo-wid Vim: GTK+ 在标准输出回显窗口 ID。

--help Vim: 显示帮助信息并退出。

--literal Vim: 按本义接受文件名,不扩展通配符。

--nofork Vim: 和 |-f| 相同。

--noplugin[s] Vim: 跳过插件的载入。

--remote Vim: 在另外一个 Vim 服务器编辑文件

--remote-expr {expr} Vim: 在另外一个 Vim 服务器执行 {expr}

--remote-send {keys} Vim: 发送键序列 {keys} 到 Vim 服务器并退出

--remote-silent {file} Vim: 如有可能,在另外一个 Vim 服务器编辑文件

--remote-wait Vim: 在另外一个 Vim 服务器编辑文件,并等待之

--remote-wait-silent Vim: 和 --remote-wait 类似,但如果不可能不会抱怨

--role {role} Vim: GTK+ 2: 设置主窗口的角色

--serverlist Vim: 输出 Vim 服务器的列表并退出

--servername {name} Vim: 指定 Vim 服务器名

--socketid {id} Vim: 运行 Vim 的 GTK 窗口套接字

--version Vim: 显示版本信息并退出。

-? Vile: 显示使用小结并退出。

-a Elvis: 同一个窗口载入所有指定的文件 (Vim 使用 -o)。

-A Vim: 以阿拉伯模式启动 (如果编译时加入阿拉伯语功能)。

-b {blksize} Elvis: 会话文件使用 {blksize} 块大小。
-b Vim: 置位 'binary' 模式。

-C Vim: 兼容模式。

-c {command} Elvis、Nvi、Posix、Vim: 在载入编辑缓冲区后,运行 Ex 命令
{command}。
Vim: 允许至多 10 个 "-c" 参数

-d {device} Vim: 使用 {device} 作为 I/O (仅限于 Amiga)。{仅当编译时加入
|+diff| 特性才有效}
-d Vim: 开始时置位 'diff'。|vimdiff|

-dev {device} Vim: 使用 {device} 作为 I/O (仅限于 Amiga)。

-D Vim: 调试模式。

-e Elvis、Nvi、Vim: 以 Ex 模式启动,就像可执行程序叫 "ex" 那样。

-E Vim: 以改进的 Ex 模式启动 |gQ|,就像 "exim" 那样。

-f Vim: 在前台运行 GUI (Amiga: 不打开新窗口)。
-f {session} Elvis: 使用 {session} 作为会话文件。

-F Vim: 以波斯语模式启动 (如果编译时加入波斯语功能)。
Nvi: 快速启动,编辑开始时不读入整个文件。

-G {gui} Elvis: 使用 {gui} 作为用户界面。

-g Vim: 启动 GUI。
-g N Vile: 开始编辑第 N 行

-h Vim: 给出帮助消息。
Vile: 编辑帮助文件

-H Vim: 以希伯来语模式启动 (如果编译时加入该功能的话)。

-i Elvis: 以插入模式开始编辑每个窗口。
-i {viminfo} Vim: 使用 {viminfo} 作为 viminfo 文件。

-L Vim: 和 "-r" 相同 (也在某些 Vi 版本里存在)。

-l Nvi、Vi、Vim: 置位 'lisp' 和 'showmatch' 选项。

-m Vim: 修改不允许被写入,复位 'write' 选项。

-M Vim: 不允许修改,复位 'modifiable' 和 'write' 选项。

-N Vim: 非兼容模式。

-n Vim: 不用交换文件。

-nb[args] Vim: 打开一个 NetBeans 接口连接

-O[N] Vim: 和 -o 类似,但使用垂直分割的窗口。

-o[N] Vim: 打开 [N] 个窗口,或者每个文件一个。

-p[N] Vim: 打开 [N] 个标签页,或者每个文件一个。

-P {parent-title} Win32 Vim: 在父应用窗口内部打开 Vim

-q {name} Vim: 使用 quickfix 错误文件 {name}。
-q{name} Vim: 同上。

-R Elvis、Nvi、Posix、Vile、Vim: 置位 'readonly' 选项。

-r Elvis、Nvi、Posix、Vi、Vim: 恢复模式。

-S Nvi: 置位 'secure' 选项。
-S {script} Vim: 在启动后执行 script 脚本。

-s Nvi、Posix、Vim: 在 Ex 模式时,和 "-" 相同 (安静模式)。
Elvis: 置位 'safer' 选项。
-s {scriptin} Vim: 读入 {scriptin} 脚本文件;只有在非 Ex 模式下才有效。
-s {pattern} Vile: 搜索 {pattern}

-t {tag} Elvis、Nvi、Posix、Vi、Vim: 编辑包含 {tag} 的文件。
-t{tag} Vim: 同上。

-T {term} Vim: 设置终端名为 {term}。

-u {vimrc} Vim: 从 {vimrc} 文件读入初始化设置。

-U {gvimrc} Vim: 从 {gvimrc} 文件读入 GUI 初始化设置。

-v Nvi、Posix、Vi、Vim: 以普通模式启动 (Vi 的术语是可视模式
(Visual))。
Vile: 阅读模式,不允许修改。

-V Elvis、Vim: 详细模式。
-V{nr} Vim: 指定特定级别的详细模式。

-w {size} Elvis、Posix、Nvi、Vi、Vim: 设置 'window' 的值为 {size}。
-w{size} Nvi、Vi: 和 "-w {size}" 相同。
-w {name} Vim: 写入脚本文件 {name} (必须以非数值字符启动)。

-W {name} Vim: 附加到脚本文件 {name} 里。

-x Vi、Vim: 要求输入加密密钥。见 |encryption|。

-X Vim: 不连接到 X 服务器。

-y Vim: 以简易模式启动,类似于 |evim|。

-Z Vim: 受限模式

@{cmdfile} Vile: 使用 {cmdfile} 作为启动文件。


7. POSIX 相容性 *posix* *posix-compliance*

2005 年,运行了 POSIX 测试包以对 Vim 的相容性进行了检查。大多数测试都能正确执
行。有一些行为 Vim 和 POSIX 不相容,即使运行于 Vi 兼容模式也是如此。

Vim 启动时设置 $VIM_POSIX 环境变量会使得 'cpoptions' 包含 POSIX 的标志位。这使
Vim 尽可能地照 POSIX 方式运行。这和 Vi 兼容模式稍有不同。

这里是 Vim 和 POSIX 指定行为不同之处以及原因:

*posix-screen-size*
如果终端获得的屏幕大小信息更加可靠,Vim 忽略 $COLUMNS 和 $LINES 环境变
量。在 'cpoptions' 里加入 '|' 标志位使 $COLUMNS 和 $LINES 可以否决另一
种方式获得的大小。

在原来的 Vi 上,"{" 和 "}" 命令不停在 "{" 上,但 POSIX 指定应该如此。
如果你希望 POSIX 方式,在 'cpoptions' 里加入 '{' 标志位。

"D"、"o" 和 "O" 命令接受计数,它们被重复时也是如此。
如果你希望忽略计数,在 'cpoptions' 里加入 '#' 标志位。

如果 'cpoptions' 里加入 '.' 标志位,那么当前缓冲区被修改时 ":cd" 命令
失败。

如果 'shortmess' 里加入 "A" 标志位,没有 ATTENTION 消息。

以下是运行 POSIX 测试包相关的评注:
- vi 测试 33 有时因为不明原因失败
- vi 测试 250 失败;新版本的行为会有改变
http://www.opengroup.org/austin/mail.../msg01710.html
- vi 测试 310 失败;任何错误出现时返回代码必须非零?
- ex 测试 24 失败,因为测试有问题。SUSv2 和 SUSv3 之间已修改。
- ex 测试 47、48、49、72、73 失败,因为安静模式下不读入 .exrc 文件也不使用
$EXINIT。
- ex 测试 76、78 失败,因为使用 echo 代替了 printf。(已修正)
另: \s 没有被换成空格的问题。
- ex 测试 355 失败,因为 'window' 不在 "30z" 里应用。
- ex 测试 368 失败,因为外壳命令在安静模式下不回显。
- ex 测试 394 失败,因为 "=" 命令输出在安静模式下不可见。
- ex 测试 411 失败,因为测试文件不正确,包含了多余的 ':'。
- ex 测试 475 和 476 失败,因为 reprint 输出在安静模式下不可见。
- ex 测试 480 和 481 失败,因为标签文件使用空格而不是制表。
- ex 测试 502 失败,因为安静模式下不读入 .exrc。
- ex 测试 509 失败,因为安静模式下不读入 .exrc。而且退出代码是 1 而不是 2。
- ex 测试 534 失败,因为安静模式下不读入 .exrc。


vim:tw=78:ts=8:ft=help:norl:
TOM 当前离线  
回复时引用此帖
发表新主题 回复


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 
主题工具
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

论坛启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


所有时间均为北京时间。现在的时间是 05:49 AM


vBulletin 3.6.8 Powered by 南方Linux联盟
版权所有 ©2004 - 2009, bbs.linuxunion.net