mirror of
https://gitlab.com/wsdjeg/vim-galore-zh_cn.git
synced 2025-01-19 03:39:29 +08:00
Address comments. Update quotes to fullwidth
This commit is contained in:
parent
d092313801
commit
1286be839a
34
README.md
34
README.md
@ -23,7 +23,7 @@
|
||||
- [当前缓冲区,加载缓冲区,缓冲区列表,命名缓冲区](#已激活已载入已列出已命名缓冲区)
|
||||
- [参数列表](#参数列表)
|
||||
- [按键映射](#按键映射)
|
||||
- [快捷键前缀](#快捷键前缀)
|
||||
- [映射占位符](#映射占位符)
|
||||
- [寄存器](#寄存器)
|
||||
- [范围](#范围)
|
||||
- [标注](#标注)
|
||||
@ -331,9 +331,9 @@ Vim 是一个文本编辑器。每次文本都是作为**缓冲区**的一部分
|
||||
:h mapping
|
||||
:h 05.3
|
||||
|
||||
## 快捷键前缀
|
||||
## 映射占位符
|
||||
|
||||
快捷键前缀(Leader 键)是一个触发器,默认为 <kbd>\\</kbd>。我们可以通过在 `map` 中调用 `<leader>` 来为它设置映射。
|
||||
映射占位符(Leader 键)本身就是一个按键映射,默认为 <kbd>\\</kbd>。我们可以通过在 `map` 中调用 `<leader>` 来为把它添加到其他按键映射中。
|
||||
|
||||
```vim
|
||||
nnoremap <leader>h :helpgrep<space>
|
||||
@ -354,7 +354,7 @@ nnoremap <leader>h :helpgrep<space>
|
||||
|
||||
## 寄存器
|
||||
|
||||
寄存器就是存储文本的地方。我们常用的"复制"操作就是把文本存储到寄存器,"粘贴"操作就是把文本从寄存器中读出来。顺便,在 Vim 中复制的快捷键是 <kbd>y</kbd>,粘贴的快捷键是 <kbd>p</kbd>。
|
||||
寄存器就是存储文本的地方。我们常用的「复制」操作就是把文本存储到寄存器,「 粘贴」 操作就是把文本从寄存器中读出来。顺便,在 Vim 中复制的快捷键是 <kbd>y</kbd>,粘贴的快捷键是 <kbd>p</kbd>。
|
||||
|
||||
Vim 为我们提供了如下的寄存器:
|
||||
|
||||
@ -378,11 +378,11 @@ Vim 为我们提供了如下的寄存器:
|
||||
:let @/ = 'register'
|
||||
```
|
||||
|
||||
这样,我们按 <kbd>n</kbd> 的时候就会跳转到单词 "register" 出现的地方。
|
||||
这样,我们按 <kbd>n</kbd> 的时候就会跳转到单词"register" 出现的地方。
|
||||
|
||||
有些时候,你的操作可能已经修改了寄存器,而你没有察觉到。请参阅 `:h registers` 获取更多帮助。
|
||||
|
||||
上面提到过,复制的命令是 <kbd>y</kbd>,粘贴的命令是 <kbd>p</kbd> 或者 <kbd>P</kbd>。但请注意,Vim 会区分"字符选取"与"行选取"。请参阅 `:h linewise` 获取更多帮助。
|
||||
上面提到过,复制的命令是 <kbd>y</kbd>,粘贴的命令是 <kbd>p</kbd> 或者 <kbd>P</kbd>。但请注意,Vim 会区分「字符选取」与「行选取」。请参阅 `:h linewise` 获取更多帮助。
|
||||
|
||||
**行选取**:
|
||||
命令 `yy` 或 `Y` 都是复制当前行。这时移动光标至其他位置,按下 `p` 就可以在光标下方粘贴复制的行,按下 `P` 就可以在光标上方粘贴至复制的行。
|
||||
@ -455,7 +455,7 @@ Vim 为我们提供了如下的寄存器:
|
||||
| 标注 | 设置者 | 使用 |
|
||||
| ---- | ------ | ---- |
|
||||
| `a`-`z` | 用户 | 仅对当前的一个文件生效,也就意味着只可以在当前文件中跳转 |
|
||||
| `A`-`Z` | 用户 | 全局标注,可以作用于不同文件。大写标注也称为"文件标注"。跳转时有可能会切换到另一个缓冲区 |
|
||||
| `A`-`Z` | 用户 | 全局标注,可以作用于不同文件。大写标注也称为「文件标注」。跳转时有可能会切换到另一个缓冲区 |
|
||||
| `0`-`9` | viminfo | `0` 代表 viminfo 最后一次被写入的位置。实际使用中,就代表 Vim 进程最后一次结束的位置。`1` 代表 Vim 进程倒数第二次结束的位置,以此类推 |
|
||||
|
||||
如果想跳转到指定的标注,你可以先按下 `'`、`g'`、`\`` 或 `g\`` 然后按下标注名。
|
||||
@ -496,7 +496,7 @@ Vim 在插入模式中为我们提供了多种补全方案。如果有多个补
|
||||
| 映射 | 类型 | 帮助文档 |
|
||||
| ---- | ---- | -------- |
|
||||
| `<c-x><c-l>` | 整行 | `:h i^x^l` |
|
||||
| `<c-x><c-n>` | 当前文件中的关键字 | `:h i^x^n` |
|
||||
| `<c-x><c-n>` | 当前缓冲区中的关键字 | `:h i^x^n` |
|
||||
| `<c-x><c-k>` | 字典(请参阅 `:h 'dictionary'`)中的关键字 | `:h i^x^k` |
|
||||
| `<c-x><c-t>` | 同义词字典(请参阅 `:h 'thesaurus'`)中的关键字 | `:h i^x^t` |
|
||||
| `<c-x><c-i>` | 当前文件以及包含的文件中的关键字 | `:h i^x^i` |
|
||||
@ -603,9 +603,9 @@ Vim 中的跳转命令,包括 `'`、`` ` ``、`G`、`/`、`?`、`n`、`N`、`%
|
||||
|
||||
## 内容变更历史记录
|
||||
|
||||
Vim 会记录文本改变之前的状态。因此,你可以使用"撤销"操作 <kbd>u</kbd> 来取消更改,也可以通过"重做"操作 <kbd>Ctrl + r</kbd> 来恢复更改。
|
||||
Vim 会记录文本改变之前的状态。因此,你可以使用「撤销」操作 <kbd>u</kbd> 来取消更改,也可以通过「重做」操作 <kbd>Ctrl + r</kbd> 来恢复更改。
|
||||
|
||||
值得注意的是,Vim 采用 [tree](https://en.wikipedia.org/wiki/Tree_(data_structure)) 数据结构来存储内容变更的历史记录,而不是采用 [queue](https://en.wikipedia.org/wiki/Queue_(abstract_data_type))。你的每次改动都会成为存储为树的节点。而且,除了第一次改动(根节点),之后的每次改动都可以找到一个对应的父节点。每一个节点都会记录改动的内容和时间。其中,"分支" 代表从任一节点到根节点的路径。当你进行了撤销操作,然后又输入了新的内容,这时候就相当于创建了分支。这个原理和 git 中的 branch(分支)十分类似。
|
||||
值得注意的是,Vim 采用 [tree](https://en.wikipedia.org/wiki/Tree_(data_structure)) 数据结构来存储内容变更的历史记录,而不是采用 [queue](https://en.wikipedia.org/wiki/Queue_(abstract_data_type))。你的每次改动都会成为存储为树的节点。而且,除了第一次改动(根节点),之后的每次改动都可以找到一个对应的父节点。每一个节点都会记录改动的内容和时间。其中,「分支」代表从任一节点到根节点的路径。当你进行了撤销操作,然后又输入了新的内容,这时候就相当于创建了分支。这个原理和 git 中的 branch(分支)十分类似。
|
||||
|
||||
考虑以下这一系列按键操作:
|
||||
|
||||
@ -629,7 +629,7 @@ baz(3) quux(4)
|
||||
|
||||
这个树形结构共包含四次改动,括号中的数字就代表时间顺序。
|
||||
|
||||
现在,我们有两种方式遍历这个树结构。一种叫"按分支遍历",一种叫"按时间遍历"。
|
||||
现在,我们有两种方式遍历这个树结构。一种叫「按分支遍历」,一种叫「按时间遍历」。
|
||||
|
||||
撤销 <kbd>u</kbd> 与重做 <kbd>Ctrl + r</kbd> 操作是按分支遍历。对于上面的例子,现在我们有三行字符。这时候按 <kbd>u</kbd> 会回退到 "bar" 节点,如果再按一次 <kbd>u</kbd> 则会回退到 "foo" 节点。这时,如果我们按下 <kbd>Ctrl + r</kbd> 就会前进至 "bar" 节点,再按一次就回前进至 "quux" 节点。在这种方式下,我们无法访问到兄弟节点(即 "baz" 节点)。
|
||||
|
||||
@ -656,7 +656,7 @@ baz(3) quux(4)
|
||||
|
||||
## 全局位置信息表,局部位置信息表
|
||||
|
||||
在某一个动作返回一系列"位置"的时候,我们可以利用"全局位置信息表"和"局部位置信息表"来存储这些位置信息,方便以后跳转回对应的位置。每一个存储的位置包括文件名、行号和列号。
|
||||
在某一个动作返回一系列「位置」的时候,我们可以利用「全局位置信息表」和「局部位置信息表」来存储这些位置信息,方便以后跳转回对应的位置。每一个存储的位置包括文件名、行号和列号。
|
||||
|
||||
比如,编译代码是出现错误,这时候我们就可以把错误的位置直接显示在全局位置信息表,或者通过外部抓取工具使位置显示在局部位置信息表中。
|
||||
|
||||
@ -722,7 +722,7 @@ q
|
||||
1000 @q
|
||||
```
|
||||
|
||||
这里能实现功能,是因为我们假定了文件最多只有 1000 行。但更好的方式是使用"递归"宏,它会一直执行,知道不能执行为止:
|
||||
这里能实现功能,是因为我们假定了文件最多只有 1000 行。但更好的方式是使用「递归」宏,它会一直执行,知道不能执行为止:
|
||||
|
||||
```vim
|
||||
qq
|
||||
@ -774,7 +774,7 @@ q
|
||||
|
||||
| 折叠方式 | 概述 |
|
||||
| -------- | ---- |
|
||||
| diff | 在"比较窗口"中折叠未改变的文本 |
|
||||
| diff | 在「比较窗口」中折叠未改变的文本 |
|
||||
| expr | 使用 `'foldexpr'` 来创建新的折叠逻辑 |
|
||||
| indent | 基于缩进折叠 |
|
||||
| manual | 使用 `zf`、`zF` 或 `:fold` 来自定义折叠 |
|
||||
@ -792,11 +792,11 @@ q
|
||||
|
||||
## 会话
|
||||
|
||||
如果你保存了当前的"视图"(请参阅 `:h :mkview`),那么当前窗口、配置和按键映射都会被保存下来(请参阅 `:h :loadview`)。
|
||||
如果你保存了当前的「视图」(请参阅 `:h :mkview`),那么当前窗口、配置和按键映射都会被保存下来(请参阅 `:h :loadview`)。
|
||||
|
||||
"会话"就是存储所有窗口的相关设置,以及全局设置。简单来说,就是给当前的 Vim 运行实例拍个照,然后把相关信息存储到会话文件中。存储之后的改动就不会在会话文件中显示,你只需要在改动后更新一下会话文件就可以了。
|
||||
「会话」就是存储所有窗口的相关设置,以及全局设置。简单来说,就是给当前的 Vim 运行实例拍个照,然后把相关信息存储到会话文件中。存储之后的改动就不会在会话文件中显示,你只需要在改动后更新一下会话文件就可以了。
|
||||
|
||||
你可以把当前工作的"项目"存储起来,然后可以在不同的"项目"之间切换。
|
||||
你可以把当前工作的「项目」存储起来,然后可以在不同的「项目」之间切换。
|
||||
|
||||
现在就来试试吧。打开几个窗口和标签,然后执行 `:mksession Foo.vim`。如果你没有指定文件名,那就会默认保存为 `Session.vim`。这个文件会保存在当前的目录下,你可以通过 `:pwd` 来显示当前路径。重启 Vim 之后,你只需要执行 `:source Foo.vim`,就可以恢复刚才的会话了。所有的缓冲区、窗口布局、按键映射以及工作路径都会恢复到保存时的状态。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user