mirror of
https://gitlab.com/wsdjeg/vim-galore-zh_cn.git
synced 2025-01-19 03:29:27 +08:00
Done with ## Completion
This commit is contained in:
parent
f8bb29df36
commit
c66380e5b6
47
README.md
47
README.md
@ -2,7 +2,6 @@
|
||||
|
||||
[![掘金翻译计划](https://rawgit.com/aleen42/badges/master/src/juejin_translation.svg)](https://github.com/xitu/gold-miner/)
|
||||
|
||||
<<<<<<< HEAD
|
||||
> Vim from zero to hero - Vim 从入门到精通
|
||||
|
||||
- 原文地址:https://github.com/mhinz/vim-galore
|
||||
@ -333,11 +332,7 @@ Vim 是一个文本编辑器。每次文本都是作为**缓冲区**的一部分
|
||||
:h 05.3
|
||||
|
||||
## 快捷键前缀
|
||||
"Leader" 键是一个触发器,默认为 `\\`。我们可以通过在 `map` 中调用 `<leader>` 来为 `<leader>` 键设置映射
|
||||
=======
|
||||
## 使用 Leader 键
|
||||
"Leader" 键是一个触发器,默认为 <kbd>\\</kbd>。我们可以通过在 `map` 中调用 `<leader>` 来为 `<leader>` 键设置映射
|
||||
>>>>>>> Update before ##Completion. Addressed comments before
|
||||
快捷键前缀(Leader 键)是一个触发器,默认为 <kbd>\\</kbd>。我们可以通过在 `map` 中调用 `<leader>` 来为它设置映射
|
||||
|
||||
```vim
|
||||
nnoremap <leader>h :helpgrep<space>
|
||||
@ -456,9 +451,9 @@ Vim 为我们提供了如下的寄存器:
|
||||
|
||||
| 标注 | 设置者 | 使用 |
|
||||
| ---- | ------ | ---- |
|
||||
| `a` - `z` | 用户 | 仅对当前的一个文件生效,也就意味着只可以在当前文件中跳转 |
|
||||
| `A` - `Z` | 用户 | 全局标注,可以作用于不同文件。大写标注也称为"文件标注"。跳转时有可能会切换到另一个缓冲区 |
|
||||
| `0` - `9` | viminfo | `0` 代表 viminfo 最后一次被写入的位置。实际使用中,就代表 Vim 进程最后一次结束的位置。`1` 代表 Vim 进程倒数第二次结束的位置,以此类推 |
|
||||
| `a`-`z` | 用户 | 仅对当前的一个文件生效,也就意味着只可以在当前文件中跳转 |
|
||||
| `A`-`Z` | 用户 | 全局标注,可以作用于不同文件。大写标注也称为"文件标注"。跳转时有可能会切换到另一个缓冲区 |
|
||||
| `0`-`9` | viminfo | `0` 代表 viminfo 最后一次被写入的位置。实际使用中,就代表 Vim 进程最后一次结束的位置。`1` 代表 Vim 进程倒数第二次结束的位置,以此类推 |
|
||||
|
||||
如果想跳转到指定的标注,你可以先按下 `'`、`g'`、`\`` 或 `g\`` 然后按下标注名
|
||||
|
||||
@ -485,6 +480,40 @@ Vim 为我们提供了如下的寄存器:
|
||||
|
||||
标注也可以搭配 [范围](#范围) 一起使用。前面提到过,如果你在可视模式下选取一些文本,然后按下 `:`,这时候你会发现命令行已经被填充了 `:'<,'>`。对照上面的表格,现在你应该明白了,这段代表的就是可视模式下选取的范围
|
||||
|
||||
## 补全
|
||||
Vim 在插入模式中为我们提供了多种补全方案。如果有多个补全结果,Vim 会弹出一个菜单供你选择。
|
||||
|
||||
常见的补全有标签、项目中引入的模块或库中的方法名、文件名、字典及当前缓冲区的字段。
|
||||
|
||||
针对不同的补全方案,Vim 为我们提供了不同的按键映射。这些映射都是在**插入模式中**通过 <kbd>Ctrl</kbd> + <kbd>x</kbd> 来触发:
|
||||
|
||||
| 映射 | 类型 | 帮助文档 |
|
||||
| ---- | ---- | -------- |
|
||||
| `<c-x><c-l>` | 整行 | `:h i^x^l` |
|
||||
| `<c-x><c-n>` | 当前文件中的关键字 | `:h i^x^n` |
|
||||
| `<c-x><c-k>` | 字典中的关键字 | `:h i^x^k` |
|
||||
| `<c-x><c-t>` | 同义词字典中的关键字 | `:h i^x^t` |
|
||||
| `<c-x><c-i>` | 当前文件以及包含的文件中的关键字 | `:h i^x^i` |
|
||||
| `<c-x><c-]>` | 标签 | `:h i^x^]` |
|
||||
| `<c-x><c-f>` | 文件名 | `:h i^x^f` |
|
||||
| `<c-x><c-d>` | 定义或宏定义 | `:h i^x^d` |
|
||||
| `<c-x><c-v>` | Vim 命令 | `:h i^x^v` |
|
||||
| `<c-x><c-u>` | 用户自定义补全(通过 `'completefunc'` 定义) | `:h i^x^u` |
|
||||
| `<c-x><c-o>` | Omni Completion(通过 `'omnifunc'` 定义) | `:h i^x^o` |
|
||||
| `<c-x>s` | 拼写建议 | `:h i^Xs` |
|
||||
|
||||
尽管用户自定义补全与 Omni Completion 是不同的,但他们做的事情基本一致。共同点在于,他们都是一个监听当前光标位置的函数,返回值为一系列的补全建议。用户自定义补全是由用户定义的,基于用户的个人用途,因此你可以根据自己的喜好和需求随意定制。而 Omni Completion 是针对文件类型的补全,比如补全一个结构体(struct)的成员(members),或者补全一个类的方法,因而它通常都是由文件类型插件设置和调用的。
|
||||
|
||||
如果你设置了 `'complete'` 选项,那么你就可以在一次操作中采用多种补全方案。这个选项默认包含了多种可能性,因此请按照自己的需求来配置。你可以通过 `<c-n>` 来调用下一个补全建议,或通过 `<c-p>` 来调用上一个补全建议。当然,这两个映射同样可以直接调用补全函数。请参阅 `:h i^n` 与 `:h 'complete'` 来获得更多帮助。
|
||||
|
||||
如果你想配置弹出菜单的行为,请一定要看一看 `:h 'completeopt'` 这篇帮助文档。默认的配置已经不错了,但我个人(原作者)更倾向于把 "noselect" 加上。
|
||||
|
||||
请参阅以下文档获取更多帮助:
|
||||
```vim
|
||||
:h ins-completion
|
||||
:h popupmenu-keys
|
||||
:h new-omni-completion
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user