mirror of
https://gitlab.com/wsdjeg/vim-galore-zh_cn.git
synced 2025-01-19 08:19:28 +08:00
separate the chinese and english character
This commit is contained in:
parent
b6487484b9
commit
ae231c73ee
@ -4,21 +4,21 @@
|
||||
|
||||
Vim 自带了一个非常棒的用特殊格式排版的单文本文件的文档。Vim 采用基于标签的系统来访问这些帮助文件的特定部分。
|
||||
|
||||
首先,读一下这个章节: `:help :help`。执行这个命令以后会在新窗口打开 `$VIMRUNTIME/doc/helphelp.txt` 文件并跳转到这个文件中 `:help` 标签的位置。
|
||||
首先,读一下这个章节: `:help :help`。执行这个命令以后会在新窗口打开 `$VIMRUNTIME/doc/helphelp.txt` 文件并跳转到这个文件中 `:help` 标签的位置。
|
||||
|
||||
一些简化的技巧:
|
||||
|
||||
* 用单引号把文本包起来表示选项,如 `:h 'textwidth'`
|
||||
* 以小括号结尾表示VimL函数,如:`:h reverse()`
|
||||
* 以冒号开头表示命令,如: `:h :echo`
|
||||
* 以冒号开头表示命令,如: `:h :echo`
|
||||
|
||||
可以使用 `<c-d>` (这是<kbd>ctrl</kbd>+<kbd>d</kbd>) 来列出所有匹配你当前输入的内容的帮助标签。如:`:h tab<c-d>` 会显示所有与 `tab` 相关的标签,从 `softtabstop` 到 `setting-guitablabel` 。
|
||||
可以使用 `<c-d>` (这是 <kbd>ctrl</kbd>+<kbd>d</kbd>)来列出所有匹配你当前输入的内容的帮助标签。如:`:h tab<c-d>` 会显示所有与 `tab` 相关的标签,从 `softtabstop` 到 `setting-guitablabel` 。
|
||||
|
||||
你想查看所有的 VimL 方法吗?很简单,只要输入:`:h ()<c-d>`。你想查看所有与窗口相关的 VimL 函数?输入 `:h win*()<c-d>`。
|
||||
|
||||
这很快就能成功你的第二天性,但是在刚开始的时候,你可能对于你要查找的标签一点线索都没有。这时你可以想象一些相关的关键字,再用 `:helpgrep` 来救场。
|
||||
这很快就能成功你的第二天性,但是在刚开始的时候,你可能对于要查找的标签一点线索都没有。这时你可以想象一些相关的关键字,再用 `:helpgrep` 来救场。
|
||||
|
||||
```
|
||||
```vim
|
||||
:helpgrep backwards
|
||||
```
|
||||
|
||||
@ -41,13 +41,13 @@ Vim自带了一个非常棒的用特殊格式排版的单文本文件的文档
|
||||
|
||||
(译者注:下面介绍的都是如何快速的定位你想要的不同类型的帮助文档)
|
||||
|
||||
1. 选项用单引号引起来。你可以使用 `:h 'list'` 来跳转到列表选项。只有当你明确的了解你要找这么一个选项的时候才可以这么做,当然你也可以用 `:h options.txt` 来打开所有选项的帮助页,再用表达式进行搜索,如:`/width`。某些选项有它们自己的命名空间,如: `:h cpo-a`,`:h cpo-A`, `:h cpo-b`等等。
|
||||
1. 选项用单引号引起来。你可以使用 `:h 'list'` 来跳转到列表选项。只有当你明确的了解你要找这么一个选项的时候才可以这么做,当然你也可以用 `:h options.txt` 来打开所有选项的帮助页,再用表达式进行搜索,如:`/width`。某些选项有它们自己的命名空间,如: `:h cpo-a`,`:h cpo-A`, `:h cpo-b` 等等。
|
||||
|
||||
2. 普通模式的命令不必用冒号作为前缀。使用 `:h gt` 来转到“gt”命令的帮助页面。
|
||||
|
||||
3. 正则表达式以“/”开头,所以 `:h /\+` 会带你到正则表达式中量词“+”的帮助页面。
|
||||
|
||||
4. 组合键经常以一个字母开头表示它们可以在哪些模式中使用。如:`:h i_CTRL-X` 会带你到插入模式下的 CTRL-X 命令的用法帮助页面,这是一个自动完成类的组合键。需要注意的是某些键是有固定写法的,如Control键写成CTRL。还有,查找普通模式下的组合键帮助时,可以省略开头的字母“n”,如: `:h CTRL-A`。而 `:h c_CTRL-A`(译者注:原文为`:h c_CRTL-R`,感觉改为A更符合上下文语境)会解释CTRL-A在命令模式下输入命令时的作用;`:h v_CTRL-A`说的是在可见模式下把光标所在处的数字加1;`:h g_CTRL-A`则说的是g命令(你需要先按"g"的命令)。这里的"g"代表一个普通的命令,这个命令总是与其它的按键组合使用才生效,与"z"开始的命令相似。
|
||||
4. 组合键经常以一个字母开头表示它们可以在哪些模式中使用。如:`:h i_CTRL-X` 会带你到插入模式下的 CTRL-X 命令的用法帮助页面,这是一个自动完成类的组合键。需要注意的是某些键是有固定写法的,如Control键写成CTRL。还有,查找普通模式下的组合键帮助时,可以省略开头的字母“n”,如: `:h CTRL-A`。而 `:h c_CTRL-A`(译者注:原文为`:h c_CRTL-R`,感觉改为A更符合上下文语境)会解释CTRL-A在命令模式下输入命令时的作用;`:h v_CTRL-A`说的是在可见模式下把光标所在处的数字加1;`:h g_CTRL-A`则说的是g命令(你需要先按"g"的命令)。这里的"g"代表一个普通的命令,这个命令总是与其它的按键组合使用才生效,与"z"开始的命令相似。
|
||||
|
||||
5. 寄存器是以"quote"开头的。如: `:h quote:` (译者注:原文为`:h quote`,感觉作者想以":"来举例)来查看关于":"寄存器的说明。
|
||||
|
||||
@ -59,7 +59,7 @@ Vim自带了一个非常棒的用特殊格式排版的单文本文件的文档
|
||||
|
||||
9. 窗口管理类的命令是以"CTRL-W"开头的,所以你可以用 `:h CTRL-W_*` 来查找相应的帮助(译者注:'*'同样为占位符)(如: `:h CTRL-W_p` 查看切换到之前访问的窗口命令的解释)。如果你想找窗口处理的命令,还可以通过访问 `:h windows.txt` 并逐行向下浏览,所有窗口管理的命令都在这里了。
|
||||
|
||||
10. 执行类的命令以":"开头,即:`:h :s`讲的是":s"命令。
|
||||
10. 执行类的命令以":"开头,即:`:h :s` 讲的是 “:s” 命令。
|
||||
|
||||
11. 在输入某个话题时按 CTRL-D,让 Vim 来帮你填写剩下的部分或者列出所有的匹配项辅助你输入。
|
||||
|
||||
@ -69,7 +69,7 @@ Vim自带了一个非常棒的用特殊格式排版的单文本文件的文档
|
||||
|
||||
14. 用户手册。它采用了一种对初学者更加友好的方式来展示帮助话题。用 `:h usr_toc.txt` 打开内容目录(你可能已经猜到这个命令的用处了)。浏览用户手册能帮助你找出某些你想了解的话题,如你可以在第24章看到关于“复合字符”以及“输入特殊字符”的讲解(用 `:h usr_24.txt` 可以快速打开相关章节)。
|
||||
|
||||
15. 高亮分组的帮助以 `hl-` 开头。如: `:h hl-WarningMsg` 说的是警告信息分组的高亮。
|
||||
15. 高亮分组的帮助以 `hl-` 开头。如: `:h hl-WarningMsg` 说的是警告信息分组的高亮。
|
||||
|
||||
16. 语法高亮以`:syc-` 开头,如:`:h :syn-conceal` 讲的是 `:syn` 命令的对于隐藏字符是如何显示的。
|
||||
|
||||
@ -77,9 +77,9 @@ Vim自带了一个非常棒的用特殊格式排版的单文本文件的文档
|
||||
|
||||
18. `:h BufWinLeave` 讲的是 BufWinLeave 自动命令。还有, `:h autocommand-events` (译者注:原文是 `:h autocommands-events`,但是该没有该帮助)讲的是所有可用的事件。
|
||||
|
||||
19. 启动参数都以"-"开头,如:`:h -f` 会告诉你 Vim "-f" 参数的作用。
|
||||
19. 启动参数都以“-”开头,如:`:h -f` 会告诉你 Vim 中 “-f” 参数的作用。
|
||||
|
||||
20. 额外的特性都以"+"开头,如:`:h +conceal`讲的是关于隐藏字符的支持。
|
||||
20. 额外的特性都以“+”开头,如:`:h +conceal` 讲的是关于隐藏字符的支持。
|
||||
|
||||
21. 错误代码可以在帮助系统中直接查到。`:h E297` 会带你到关于这一错误的详细解释。但是有时并没有转到错误描述,而是列出了经常导出这一错误的 Vim 命令,如 `:h E128` (译者注:原文为`:h hE128`,但是并没有该帮助)会直接跳转到 `:function` 命令。
|
||||
|
||||
@ -91,7 +91,7 @@ Vim自带了一个非常棒的用特殊格式排版的单文本文件的文档
|
||||
|
||||
### 获取在线帮助
|
||||
|
||||
如果你遇到了无法解决的问题,或者需要指引的话,可以参考[Vim使用](https://groups.google.com/forum/#!forum/vim_use)邮件列表。[IRC](https://de.wikipedia.org/wiki/Internet_Relay_Chat)也是一个很不错的资源。[Freenode](https://freenode.net/)上的 `#vim` 频道很庞大,并且里面都是乐于助人的人。
|
||||
如果你遇到了无法解决的问题,或者需要指引的话,可以参考 [Vim 使用](https://groups.google.com/forum/#!forum/vim_use)邮件列表。 [IRC](https://de.wikipedia.org/wiki/Internet_Relay_Chat) 也是一个很不错的资源。 [Freenode](https://freenode.net/) 上的 `#vim` 频道很庞大,并且里面有许多乐于助人的人。
|
||||
|
||||
如果你想给 Vim 提交Bug的话,可以使用 [vim_dev](https://groups.google.com/forum/#!forum/vim_dev)邮件列表。
|
||||
|
||||
@ -155,11 +155,11 @@ autocmd VimEnter * nested edit $MYVIMRC
|
||||
|
||||
### 剪贴板
|
||||
|
||||
如果你想在没有GUI支持的Unix系统中使用Vim的 `'clipboard`选项,则需要[特性](#what-kind-of-vim-am-i-running)支持: `+clipboard` 以及可选的 `+xterm_clipboard`。
|
||||
如果你想在没有GUI支持的Unix系统中使用 Vim 的 `'clipboard` 选项,则需要[特性](#what-kind-of-vim-am-i-running)支持: `+clipboard` 以及可选的 `+xterm_clipboard`。
|
||||
|
||||
帮助文档:
|
||||
|
||||
```
|
||||
```vim
|
||||
:h 'clipboard'
|
||||
:h gui-clipboard
|
||||
:h gui-selections
|
||||
@ -167,7 +167,7 @@ autocmd VimEnter * nested edit $MYVIMRC
|
||||
|
||||
另外请参考:[持续粘贴(为什么我每次都要设置'paste'模式](#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time)
|
||||
|
||||
#### 剪贴板的使用(Windows, OSX)
|
||||
#### 剪贴板的使用(Windows, OSX)
|
||||
|
||||
Windows 自带了[剪贴板](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649012(v=vs.85).aspx),OSX带了一个[粘贴板](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PasteboardGuide106/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008100-SW1)
|
||||
|
||||
@ -196,13 +196,13 @@ set guioptions+=a
|
||||
|
||||
帮助文档:
|
||||
|
||||
```
|
||||
```vim
|
||||
:h clipboard-unnamed
|
||||
:h autoselect
|
||||
:h 'go_a'
|
||||
```
|
||||
|
||||
#### 剪贴板的使用(Linux, BSD)
|
||||
#### 剪贴板的使用(Linux, BSD)
|
||||
|
||||
如果你的系统使用了[X图形界面](http://www.x.org/wiki),事情会变得有一点不同。X图形界面实现了[X窗口系统协议](http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html), 这个协议在1987年发布的主版本11,因此X也通常被称为 X11。
|
||||
|
||||
@ -213,10 +213,10 @@ set guioptions+=a
|
||||
选择的工作工模大致是这样的:
|
||||
|
||||
```
|
||||
Program A: <ctrl+c>
|
||||
Program A: 声称对 CLIPBOARD 的所有权
|
||||
Program A: <ctrl+c>
|
||||
Program A:声称对 CLIPBOARD 的所有权
|
||||
Program B: <ctrl+v>
|
||||
Program B: 发现CLIPBOARD的所有权被Program A持有
|
||||
Program B:发现CLIPBOARD的所有权被Program A持有
|
||||
Program B:从Program A请求数据
|
||||
Program A:响应这个请求并发送数据给Program B
|
||||
Program B:从Program A接收数据并插入到窗口中
|
||||
@ -227,7 +227,7 @@ Program B:从Program A接收数据并插入到窗口中
|
||||
| PRIMARY | 选择文本 | 鼠标中键, shift+insert | `*` 寄存器 |
|
||||
| CLIPBOARD | 选择文本并按 `ctrl+c` | `ctrl+v` | `+`寄存器 |
|
||||
|
||||
**注意**: X服务器并不会保存选择(不仅仅是CLIPBOARD选择)!因此在关闭了相应的程序后,你用 `ctrl+c` 复制的内容将丢失。
|
||||
**注意**: X服务器并不会保存选择(不仅仅是CLIPBOARD选择)!因此在关闭了相应的程序后,你用 `ctrl+c` 复制的内容将丢失。
|
||||
|
||||
使用 `"*p` 来贴粘 PRIMARY 选择中的内容,或者使用 `"+y1G` 来将整个文件的内容复制到CLIPBOARD选择。
|
||||
|
||||
@ -245,7 +245,7 @@ set clipboard^=unnamedplus " + 寄存器
|
||||
|
||||
帮助文档:
|
||||
|
||||
```
|
||||
```vim
|
||||
:h clipboard-unnamed
|
||||
:h clipboard-unnamedplus
|
||||
```
|
||||
@ -263,7 +263,7 @@ autocmd BufReadPost *
|
||||
\ endif
|
||||
```
|
||||
|
||||
这只是简单的判断位置是否存在(文件可能由于其它程序修改的原因而导致所记录的位置已经超过实际行数了),如果存在的话就执行 ``g`"`` (转到你离开时的光标位置但是不更改跳转列表)。
|
||||
这只是简单的判断位置是否存在(文件可能由于其它程序修改的原因而导致所记录的位置已经超过实际行数了),如果存在的话就执行 ``g`"`` (转到你离开时的光标位置但是不更改跳转列表)。
|
||||
|
||||
这需要使用 viminfo 文件: `:h viminfo-`。
|
||||
|
||||
@ -271,13 +271,13 @@ autocmd BufReadPost *
|
||||
|
||||
根据选项的不同, Vim 最多会创建4种工作文件。
|
||||
|
||||
**备份文件**:
|
||||
**备份文件**:
|
||||
|
||||
你可以让 Vim 在将修改写入到文件之前先备份原文件。默认情况下, Vim 会保存一个备份文件但是当修改写入成功后会立即删除这个备份(`:set writebackup`)。如果你想让这个备份文件一直存在的话,可以使用 `:set backup`。而如果你想禁用备份,可以使用 `:set nobackup nowritebackup`。
|
||||
|
||||
我们来看一下我上次在自己的 vimrc 中加了什么:
|
||||
|
||||
```
|
||||
```sh
|
||||
$ diff ~/.vim/vimrc ~/.vim/files/backup/vimrc-vimbackup
|
||||
390d389
|
||||
< command! -bar -nargs=* -complete=help H helpgrep <args>
|
||||
@ -286,7 +286,7 @@ $ diff ~/.vim/vimrc ~/.vim/files/backup/vimrc-vimbackup
|
||||
帮助文档: `:h backup`
|
||||
|
||||
|
||||
**交换文件**:
|
||||
**交换文件**:
|
||||
|
||||
假设你有一个非常棒的科幻小说的构思。在按照故事情节写了好几个小时几十万字的时候..忽然停电了!而那时你想起来你上次保存你的 `~/来自外太空的邪恶入侵者.txt` 是.. 好吧,你从来没有保存过。
|
||||
|
||||
@ -299,14 +299,14 @@ $ diff ~/.vim/vimrc ~/.vim/files/backup/vimrc-vimbackup
|
||||
帮助文档:`:h swap-file` 和 `:h usr_11`
|
||||
|
||||
|
||||
**撤销文件**:
|
||||
**撤销文件**:
|
||||
|
||||
[撤销树](#undo-tree)是保存在内存中的,并且会在 Vim 退出时清空。如果你想让它持久化到磁盘中,可以设置 `:set undofile`。这会把文件 `~/foo.c` 的撤销文件保存在 `~/foo.c.un~`。
|
||||
|
||||
帮助文档: `:h 'undofile'` 和 `:h undo-persistence`
|
||||
|
||||
|
||||
**viminfo文件**:
|
||||
**viminfo 文件**:
|
||||
|
||||
备份文件、交换文件和撤销文件都是与文本状态相关的,而 viminfo 文件是用来保存在 Vim 退出时可能会丢失的其它的信息的。包括历史(命令、搜索、输入)、寄存器、标注、缓冲区列表、全局变量等等。
|
||||
|
||||
@ -347,7 +347,7 @@ Vim自带的netrw插件支持对远程文件的编辑。实际上它将远程的
|
||||
|
||||
这在你本地的配置与SSH远程服务器上管理理想让你使用的配置有冲突时尤其有用:
|
||||
|
||||
```
|
||||
```vim
|
||||
:e scp://bram@awesome.site.com/.vimrc
|
||||
```
|
||||
|
||||
@ -362,7 +362,7 @@ Host awesome
|
||||
|
||||
假设你的 `~/.ssh/config` 中有以上的内容,那么下面的命令就可以正常执行了:
|
||||
|
||||
```
|
||||
```vim
|
||||
:e scp://awesome/.vimrc
|
||||
```
|
||||
|
||||
@ -377,7 +377,7 @@ Host awesome
|
||||
|
||||
### 插件管理
|
||||
|
||||
[Pathogen](https://github.com/tpope/vim-pathogen)是第一个比较流行的插件管理工具。实际上它只是修改了 _runtimepath_ (`:h 'rtp'`) 来引入所有放到该目录下的文件。你需要自己克隆插件的代码仓库到那个目录。
|
||||
[Pathogen](https://github.com/tpope/vim-pathogen)是第一个比较流行的插件管理工具。实际上它只是修改了 _runtimepath_ (`:h 'rtp'`) 来引入所有放到该目录下的文件。你需要自己克隆插件的代码仓库到那个目录。
|
||||
|
||||
真正的插件管理工具会在 Vim 中提供帮助你安装或更新插件的命令。在下文中是一些常用的插件管理工具:
|
||||
|
||||
@ -401,7 +401,7 @@ Host awesome
|
||||
|
||||
有时你可能需要把光标放到当前行末尾之后,默认情况下你是不可能做到的,但是可能通过设置 `virtualedit` 选项达到目的:
|
||||
|
||||
```
|
||||
```vim
|
||||
set virtualedit=all
|
||||
```
|
||||
|
||||
@ -421,7 +421,7 @@ set virtualedit=all
|
||||
|
||||
没有使用范围时(译者注:范围就是 `:` 和 `!` 之间的内容,`.` 表示当前行,`+4` 表示向下偏移4行,`$` 表示最末行等,多行时用 `,` 将它们分开,如 `.,$` 表示从当前行到末行),`:!` 会显示在一个可滚动的窗口中(译者注:在 GVim 和在终端里运行的结果稍有不同)。相反的,如果指定了范围,这些行会被[过滤](https://en.wikipedia.org/wiki/Filter_(software))。这意味着它们会通过管道被重定向到过滤程序的 [stdin](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_.28stdin.29),在处理后再通过过滤程序的 [stdout](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_.28stdout.29) 输出,用输出结果替换范围内的文本。例如:为接下来的5行文本添加行号,可以使用:
|
||||
|
||||
```
|
||||
```vim
|
||||
:.,+4!nl -ba -w1 -s' '
|
||||
```
|
||||
|
||||
@ -500,14 +500,14 @@ $ cscope -bq
|
||||
|
||||
| Kind | 说明 |
|
||||
|------|-------------|
|
||||
| s | **s**ymbol: 查找使用该符号的引用 |
|
||||
| g | **g**lobal: 查找该全局符号的定义 |
|
||||
| c | **c**alls: 查找调用当前方法的位置 |
|
||||
| t | **t**ext: 查找出现该文本的位置 |
|
||||
| e | **e**grep: 使用egrep搜索当前单词 |
|
||||
| f | **f**ile: 打开文件名 |
|
||||
| i | **i**ncludes: 查询引入了当前文件的文件 |
|
||||
| d | **d**epends: 查找当前方法调用的方法 |
|
||||
| s | **s**ymbol: 查找使用该符号的引用 |
|
||||
| g | **g**lobal: 查找该全局符号的定义 |
|
||||
| c | **c**alls: 查找调用当前方法的位置 |
|
||||
| t | **t**ext: 查找出现该文本的位置 |
|
||||
| e | **e**grep: 使用 egrep 搜索当前单词 |
|
||||
| f | **f**ile: 打开文件名 |
|
||||
| i | **i**ncludes: 查询引入了当前文件的文件 |
|
||||
| d | **d**epends: 查找当前方法调用的方法 |
|
||||
|
||||
推荐一些比较方便的映射,如:
|
||||
|
||||
@ -571,7 +571,7 @@ autocmd FileType python let b:match_words = '\<if\>:\<elif\>:\<else\>'
|
||||
|
||||
帮助文档:
|
||||
|
||||
```
|
||||
```vim
|
||||
:h matchit-install
|
||||
:h matchit
|
||||
:h b:match_words
|
||||
|
Loading…
x
Reference in New Issue
Block a user