总览 (SYNOPSIS)

vim [options] [file ..]
vim
[options] -
vim [options] -t tag
vim [options] -q
[errorfile]

ex
view
gvim gview
rvim
rview rgvim rgview

描述 (DESCRIPTION)

Vim 是 一个 同 Vi 向上兼容的 文本 编辑器, 可以 用来 编辑任何 ASCII 文本,
特别 适合 用来 编辑 程序.

它对 Vi 作了 许多 增强: 多层撤销, 多窗口, 多缓冲区(buffer), 高亮度 语法显示, 命令行编辑, 文件名匹配, 在线帮助, 可视选定,
等等. 用 ":help vi_diff.txt" 看 Vim 和 Vi 的差别 的 摘要.

在运行 Vim 的时候 可以用 ":help" 命令 获得 很多 帮助. 参考 下面的 在线帮助 一节.

一般 可用

       vim file

命令 打开 Vim 来 编辑 一个 文件. 概括的说, 可以用

       vim [options] [filelist]

命令 来运行 Vim . 如果 没有 文件名, 编辑器 就会 打开 一个 空的 缓冲区. 否则 就会用 下面 四个中的一个 来选择 要编辑的
文件.

file ..
文件名列表. 第一个 会 作为 当前 文件 读入 缓冲区, 光标 会停在 缓冲区的 第一行. 你 可以用 ":next" 命令 转到 其它的 文件.
如果 要编辑 一个以 "-" 开头的 文件. 在文件 列表 前面 加上 "--".
-
从 标准输入 读取 被编辑的 文件. 从 标准 错误输出 (应该 是个终端) 读入 命令.
-t {tag}
被 编辑的 文件 和 光标的 初始位置 由 标记 (tag) 决定, 标记有点像 一种 goto 标签 (goto label). 在 标记文件中 找到
标记, 相应的 文件 成为 当前文件, 相应的 命令被执行. 这种方式 常用于 C 程序, 标记 就是 函数名, 当前文件 就是包含 那个函数的 文件, 光标
停留在 函数的 开始处. 见 ":help tag-commands"。
-q [errorfile]
运行时 进入 快速修复模式. 读取 [errorfile] 文件 并显示 第一个 错误. 如果 没有 [errorfile] 文件, 文件名 由
'errorfile' 选项 决定 (在 Amiga 为 "AztecC.Err", 在其他系统中 为 "errors.vim"). 可以 用 ":cn" 命令
跳到 其它错误处. 见 ":help quickfix"。

Vim 会 根据 不同命令 有 不同的 表现, 尽管 它们 可能 是 一个 可执行 文件.

vim
正常 模式, 所有 都是 默认状态.
ex
以 Ex 模式 运行. 用 ":vi" 命令 进入 正常模式. 也可以 加上 "-e" 选项进入 此模式.
view
以 只读模式 运行. 你被禁止 写文件. 也可以 加上 "-R" 选项 进入 此模式.
gvim gview
GUI 版本。开启 一个 新的窗口. 也可以 加上 "-g" 选项 进入 此模式.
rvim rview rgvim rgview
同 上面的 相同, 只是 加上了 限制, 不能运行 shell 程序, 也 不能 暂停 Vim . 也 可以 加上 "-Z" 选项 进入
此模式.

选项 (OPTIONS)

所有选项 都可以 以 任何顺序 出现, 可以 在文件名前, 也可以 在文件名后. 没有 参数的 选项 可以 出现在
一个 "-" 后面.

+[num]
对于 第一个 文件, 光标 会停在 第 "num" 行. 如果 没有 "num" , 则 光标会停在 最后一行.
+/{pat}
对于 第一个文件, 光标 会停在 {pat} 第一次 出现的 地方. 搜寻 模式见 ":help search-pattern"。
+{command}
-c {command}
读入 第一个 文件后 会 执行 {command} 命令. {command} 应为 Ex 命令. 如果 {command} 中 包含有 空格, 必须
用双引号 括住 (这个取决于所用的 shell). 例: Vim "+set si" main.c
注意: 你 最多 可以用 10 个 "+" 或者
"-c" 命令.
-b
二进制模式. 设置 一些选项, 这样 就可以 用来 编辑 二进制 和 可执行 文件 了.
-C
兼容. 设置 'compatible' 选项. 这样 就算 存在 .vimrc 文件 Vim 也会 基本上 象 Vi 一样了.
-d {device}
打开 {device} 用作终端, 只在 Amiga 下。例: "-d con:20/30/600/150".
-e
以 Ex 模式 运行 Vim , 就像 运行 "ex" 一样。
-f
前台 运行。 对于 GUI 版本, Vim 不会 同运行它的 shell 分离。在 Amiga 中, Vim 不会 重新启动
来 开启一个 新窗口. 这个选项 会用在当 Vim 被 另外一个 程序执行, 并且 这个程序 想等编辑动作 结束后 再运行的 时候 (如
mail). 在 Amiga 上 ":sh" 和 ":!" 不会起作用.
-F
如果 Vim 编译时 加入了 对 从右到左 书写的 文件 FKMAP 以及 Farsi 键盘映射 的支持, Vim 会 以
Farsi 模式 运行, 比如 设置 'fkmap' 和 'rightleft' 选项.不然 Vim 会 显示 一条 错误信息 并 终止.
-g
如果 Vim 编译时 加入 GUI 支持, 会开启 GUI, 不然 Vim 会 显示 一条 错误信息 并 终止.
-h
Vim 显示 命令行 参数 和 选项的 帮助, 然后 终止.
-H
如果 Vim 编译时 加入了 对 从右到左 书写的 文件 RIGHTLEFT 以及 Hebrew 键盘映射的支持, Vim
会以 Hebrew 模式 运行, 比如 设置 'hkmap' 和 'rightleft' 选项. 不然 Vim 会 显示 一条 错误信息 并
终止.
-i {viminfo}
准许 使用 viminfo 文件, 这个 选项 设置 使用的 文件名, 默认的 是 "~/.viminfo". 用 "NONE" 文件名 也可以 跳过
使用 .viminfo 文件.
-L
同 -r 一样.
-l
Lisp 模式. 打开 'lisp' 和 'showmatch' 选项.
-m
禁止 修改文件. 设置 'write' 选项, 这样 就不能 写文件了.
-N
非兼容 模式. 设置 'compatible' 选项. 这样 Vim 会 表现得 更好, 就算 .vimrc 文件 不存在 也会 同 Vi
不兼容.
-n
禁止 交换文件, 这样 在崩溃后 就 不能 恢复 文件了. 对于 编辑在很慢的 媒体中的 文件 很有好处 (比如软盘), 也可以 用 ":set
uc=0" 禁止交换, 用 ":set uc=200" 开启 交换.
-o[N]
打开 N 个窗口. 如果没有 N, 为 每个文件 开一个 窗口.
-R
只读 模式. 设置 'readonly' 选项. 你 仍然 可以 编辑 缓冲区, 但是 不能重写文件. 如果 你要 重写文件, 必须在 Ex 命令中
用惊叹号, 比如 ":w!". -R 选项 隐含了 -n 选项 (见下). 'readonly' 选项 可以 用 ":set noro" 设置. 见
":help 'readonly'".
-r
列出 交换文件, 显示 关于 恢复文件的 信息.
-r {file}
恢复 模式. 交换文件 是 用来 恢复 在 编辑过程中 崩溃了的 文件. 交换 文件名 是 被编辑文件名 后面 加上 ".swp". 见 ":help
recovery".
-s
安静 模式. 只在 用 "Ex" 启动 或者 用了 "-e" 选项 才有用.
-s {scriptin}
读入 脚本文件 {scriptin}. 文件里的 字符 就像 你 直接 输入 一样的, 也可以 用 ":source! {scriptin}" 命令
实现 这个功能. 如果 在 编辑器 结束前就 读到了 文件尾, 就 接着 从键盘 读入.
-T {terminal}
告诉 Vim 你 用的 终端的 名字, 只有 当 不能 自动确定 的时候 才这样. 它 必须是 Vim (builtin)
能辨认的 终端 或者是 在 termcap 或者 terminfo 文件中 定义了的.
-u {vimrc}
用 {vimrc} 文件 里的 命令 来初始化, 跳过 所有 其它的 初始化, 用 这个来编辑 特殊类型的 文件. 也可以 用 "NONE" 来 跳过
所有初始化. 在 vim 中用 ":help initialization" 查看 更多信息.
-U {gvimrc}
用 {gvimrc} 文件 里的 命令 来初始化 GUI, 跳过 所有 其它的 GUI 初始化, 也可以 用 "NONE" 来跳过 所有 GUI
初始化. 在 vim 中 用 ":help gui-init" 查看更多信息.
-V
冗长 显示. 显示 执行 初始化代码 和 读入的 文件, 并且 写 viminfo 文件.
-v
以 Vi 模式运行 Vim , 就像 运行 "vi" 一样, 只有 运行 "ex" 时 才有用.
-w {scriptout}
所有 在 Vim 退出前 你键入的 字符 都会被 存入 {scriptout} 文件. 这 用来 创建一个脚本文件, 你 可以用 "vim
-s" 和 ":source!" 来使用. 如果 {scriptout} 存在, 会把 字符 追加到 后面.
-W {scriptout}
同 -w 一样, 但是 是覆盖 原来的文件.
-x
写文件时 加密. 会提示你 输入密码.
-Z
受限 模式. 同运行 以 "r" 开头的 程序 同效.
--
表明 选项结束. 在此之后的 参数 都会被认为 是 文件名, 可以 用这个来编辑 一个 以 '-' 开头 的文件.

在线帮助 (ON-LINE HELP)

在 Vim 中键入 ":help" 来 获得 帮助. 用 ":help subject"
来 获得 关于 一个特定主题的 帮助. 例如 用 ":help ZZ" 来 获得 关于 "ZZ" 的帮助. 用 <Tab> 和 CTRL-D 来
完成 帮助主题 (":help cmdline-completion"). 可以 用 标记 从 一个地方 跳到 另一个 地方 (有点像 超文本连接, 见
":help"). 所有的 文档 都可以 这样 来浏览, 比如 ":help syntax.txt".

文件 (FILES)

/usr/share/vim/vim56/doc/*.txt
Vim 文档文件. 用 ":help doc-file-list" 获得 完整的 列表.
/usr/share/vim/vim56/doc/tags
在 文档文件中 查找信息 用的 标签文件.
/usr/share/vim/vim56/syntax/syntax.vim
系统 语法 初始化 文件.
/usr/share/vim/vim56/syntax/*.vim
各种语言的 语法文件.
/usr/share/vim/vimrc
系统 Vim 初始化文件.
/usr/share/vim/gvimrc
系统 gvim 初始化文件.
/usr/share/vim/vim56/optwin.vim
":options" 命令 所用的 脚本文件, 这是个 查看 和 设置选项的 很好的 办法.
/usr/share/vim/vim56/menu.vim
gvim 的 系统菜单 初始化文件.
/usr/share/vim/vim56/bugreport.vim
用来 生成 错误报告的 脚本文件, 见 ":help bugs".
/usr/share/vim/vim56/filetype.vim
根据 文件名 来判定 文件类型 的 脚本文件, 见 ":help 'filetype'".
/usr/share/vim/vim56/scripts.vim
根据 文件内容 来判定 文件类型 的 脚本文件, 见 ":help 'filetype'". 

vim - Vi IMproved, 一个程序员的文本编辑器的更多相关文章

  1. 如果你恨一个程序员 忽悠他去做iOS开发(戏谑篇)

    .state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow ...

  2. 如果你恨一个程序员,忽悠他去做iOS开发

    如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...

  3. 每一个程序员需要了解的10个Linux命令

    作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...

  4. --专访雷果国: 从1.5K到18K 一个程序员的5年成长之路--

    导语:今年三月份,在CSDN博客和新浪微博上有一篇<从1.5K到18K,一个程序员的5年成长之路>被众人分享和传阅,这篇博文首先介绍了作者自学之初薄弱的基础,然后通过流水账形式分享了那个从 ...

  5. 阅读<构建之法>第13、14、15、16、17章 与 《一个程序员的生命周期》读后感

    第十三章   软件测试 这一章介绍了很多关于测试的方法,比如说单元测试,代码覆盖率测试,构建验证测试,验收测试等,我有一个很纠结的问题,如果我开发软件,是把这么多测试全做完,还是挑一些测试来进行呢?如 ...

  6. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …

    [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...

  7. 【转】每一个程序员需要了解的10个Linux命令

    作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...

  8. 如果恨一个程序员,忽悠他去做iOS开发

    如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...

  9. 作为一个程序员,你了解 win 上有哪些必装的软件吗

    关于 win 的一些基础必知内容之前已经分享过,没有看过的可以戳此处→Windows 使用之那些你还不知道操作 新系统安装的第一个软件 Google Chrome 毫无疑问,作为程序员应该是首选的浏览 ...

随机推荐

  1. [USACO10MAR]伟大的奶牛聚集Great Cow Gat…

    题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...

  2. 【目录】ASP.NET Core 2.1 入门教程

    ASP.NET Core 2.1 快速学习.入门系列教程,这个入门系列教程为了帮助大家快速上手ASP.NET Core. 本教程包含且不限于: 使用VS Code开发ASP.NET Core应用 AS ...

  3. 关于导出Excel出现异常的解决办法。:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败

    异常信息为:System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} ...

  4. Packet for query is too large (1986748 > 1048576). You can change this value on the server by 异常

    场景:mybatis动态拼接,批量添加数据,因为数据太多,凭借过多,导致MySql数据库中插入大于1m的数据时,提示该异常. 解决办法:修改mysql的属性 max_allowed_packet即可. ...

  5. JAVA实现生产消费者模型

    前言 最近面试比较多,发现生产消费者模型在各公司面试的过程中问的还是比较多的,记录一下常见JAVA实现生产者消费模型的代码 思路 我们通过三种模式来实现 通过wait和notify 通过Lock和Co ...

  6. pc端与移动端适配解决方案之rem

    使用方式: 在html页面开头,引入下面的原生js代码 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'ori ...

  7. Docker 部署 nginx 前端项目

    docker pull nginx docker run -itd -p 82:80 -v /opt/soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf ...

  8. Centos剔除在线用户

    CentOS踢除已登录用户的方法: 1.>先按下w查看用户终端号 2.>执行pkill -kill -t pts/1 (pts/1为w指令看到的用户终端号)命令

  9. Yii2的一些问题

    Yii2中删除能不能串着用 Yii2中find.findAll有什么区别 Yii2中User::findOne($id)和User::find->where(['id'=>1])-> ...

  10. redis常用命令建议

    1. Redis查看当前所有的key KEYS * 2. 查看当前redis的配置信息 CONFIG GET * 3. MISCONF Redis is configured to save RDB ...