Update readme

This commit is contained in:
Shidong Wang 2019-05-05 16:41:51 +08:00
parent 349e147826
commit df3efb68cc
4 changed files with 4 additions and 81 deletions

View File

@ -1,7 +1,7 @@
# Vim 从入门到精通
> 本文主要在翻译 [mhinz/vim-galore](https://github.com/mhinz/vim-galore)
的基础添加了一些我在使用 Vim 及开发 Vim 插件的过程中积累的一些细节
> 的基础添加了一些我在使用 Vim 及开发 Vim 插件的过程中积累的一些知识和常用插件列表
**Vim 中文同步聊天室**
@ -100,10 +100,6 @@
- [杂项](#杂项)
- [附加资源](#附加资源)
- [Vim 配置集合](#vim-配置集合)
- [内置插件](#内置插件)
- [将 Control 映射到 CapsLock](#将-control-映射到-capslock)
- [复活节彩蛋](#复活节彩蛋)
- [为何使用 hjkl](#为何使用-hjkl)
- [常见问题](#常见问题)
- [编辑小文件时很慢](#编辑小文件时很慢)
- [编辑大文件的时候很慢](#编辑大文件的时候很慢)
@ -1518,17 +1514,17 @@ Vim 不断地在内存中检查信息只在退出的时候输出出来。N
看一下 `/tmp/profile.log` 文件,检查时运行的所有代码都会被显示出来,包括每一行代码运行的频率和时间。
大多数代码都是用户不熟悉的插件代码,如果你是在解决一个确切的问题,
直接跳到这个日志文件的末尾,那里有 `FUNCTIONS SORTED ON TOTAL TIME``FUNCTIONS SORTED ON SELF TIME` 两个部分如果某个function运行时间过长一眼就可以看到。
直接跳到这个日志文件的末尾,那里有 `FUNCTIONS SORTED ON TOTAL TIME``FUNCTIONS SORTED ON SELF TIME` 两个部分,如果某个 function 运行时间过长一眼就可以看到。
### 查看启动时间
感觉Vim启动的慢到了研究几个数字的时候了
感觉 Vim 启动的慢?到了研究几个数字的时候了:
```vim
vim --startuptime /tmp/startup.log +q && vim /tmp/startup.log
```
第一栏是最重要的因为它显示了**绝对运行时间**如果在前后两行之间时间差有很大的跳跃那么是第二个文件太大或者含有需要检查的错误的VimL代码。
第一栏是最重要的因为它显示了**绝对运行时间**,如果在前后两行之间时间差有很大的跳跃,那么是第二个文件太大或者含有需要检查的错误的 VimL 代码。
## NUL 符用新行表示
@ -1856,14 +1852,6 @@ Vim 现在正在使用的另一个比较有用的方法是增加 debug 信息输
- [amix's vimrc](https://github.com/amix/vimrc)
- [janus](https://github.com/carlhuda/janus)
## 内置插件
## 将 Control 映射到 CapsLock
## 复活节彩蛋
## 为何使用 hjkl
## 常见问题
### 编辑小文件时很慢
@ -1980,7 +1968,6 @@ set ttimeoutlen=10 " unnoticeable small value
- [Vim 插件开发指南](https://github.com/wsdjeg/vim-plugin-dev-guide)
- [常用插件列表](PLUGINS.md)
## 加入我们
可以协助我们核对翻译,或者从[章节列表](CONTRIBUTING.md)中认领章节进行翻译。

View File

@ -1,7 +0,0 @@
## Debugging
- 常用技巧
- 复杂度
- 查看启动时间
- 运行时检测
- 检查Vim脚本
- 检查语法文件

View File

@ -1,44 +0,0 @@
## 使用终端中 Esc 键时的延迟
如果你生活在命令行里,你可能使用 xterm gnome-terminal iTerm2 等等所谓的 _终端虚拟器_。(区别于真正的[终端](https://en.wikipedia.org/wiki/Computer_terminal)
和宿主终端一样,终端虚拟器使用 [退出序列](https://en.wikipedia.org/wiki/Escape_sequence) (或者叫 _控制序列_)来控制光标移动,更换文本颜色等等。
退出序列是一些以退出码(在 [插入符号](https://en.wikipedia.org/wiki/Caret_notation) 中展示为 `^[`)开头的 ASCII 码串。
当接收到码串时,终端虚拟器会从 [terminfo](https://en.wikipedia.org/wiki/Terminfo) 数据库中寻找与之匹配的指令。
为了使问题更清晰,我想先解释一下映射超时。映射超时经常在模糊映射时发生:
```vim
:nnoremap ,a :echo 'foo'<cr>
:nnoremap ,ab :echo 'bar'<cr>
```
两个映射都有可能,键入 `,a` ,就会有一秒钟的延迟,因为 Vim 会等待用户会再键入 `b` 还是不会了。
退出序列也会引起一样的问题:
- `<esc>` 在返回正常模式或退出指令时被大量使用。
- 光标键使用了退出序列进行编码
- Vim 运用 <kbd>Alt</kbd> (也被称为 _Meta key_去发送固定的高位集编码的8位比特但是很多终端虚拟器不支持或者默认不启用而用退出序列代替。
你可以用 `vim -u NONE -N` 试一试上面所说的,然后键入 `i<c-v><left>` ,你就会看见一串以 `^[`(表征退出码)开头的被输入序列。
简而言之,区分键入的 `<esc>` 和一个严格意义上的退出序列对 Vim 来说是一个痛苦的过程。
默认情况下 `:set timeout timeoutlen=1000` Vim 会有1秒的延迟在等 _还有吗_ 的模糊映射。
对于映射来说,这是一个稳健的值,但是通常为了解决整个问题,你可以自定义键入的超时阈值:
```vim
set timeout " 映射超时
set timeoutlen=1000 " 默认值
set ttimeout " 键入超时
set ttimeoutlen=10 " 察觉不到的小值
```
执行 `:h ttimeout` 你可以找到一个小表格展示这些选项的相互关系。
如果你在 Vim 和终端虚拟器之间使用的是 tmux ,请将以下一行放入 `~/.tmux.conf`
```tmux
set -sg escape-time 0
```

View File

@ -1,13 +0,0 @@
## 复活节彩蛋
| 命令 | 消息 |
|-----------|---------|
| `:Ni!` | `你需要灌木丛?` |
| `:h 'sm'` | `注意:这个缩写是限制级` |
| `:h 42` | `生命,宇宙和一切的意义是什么?不幸的是, 道格拉斯・亚当斯Douglas Adams唯一知道这个问题的人现在已经死了。所以现在你可能会想知道死亡的意思是什么……` |
| `:h UserGettingBored` | `什么时候用户会按同一个键42次好吧我只是开个玩笑 :-)` |
| `:h bar` | `这不是一个烟斗。` |
| `:h holy-grail` | `亚瑟,你终究找到了!` |
| `:h map-modes` | `:nunmap 命令在修道院外也能用.` |
| `:help!` | `E478别怕` (故障? 在使用模块帮助时 (`模块类型=帮助`) 这和 `:h help.txt` 一个效果。) |
| `:smile` | `试一试这个表情 ;-) 添加于 7.4.1005.` |