Commit fe5537f0 authored by NachtgeistW's avatar NachtgeistW
Browse files

typo(vim.md): 修改一些文本

parent bbdc2715
Loading
Loading
Loading
Loading
+23 −26
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ Vim,编辑器之神。

## 简介

Vim 是从 vi 发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。
Vim 是从 vi 发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和 [Emacs](emacs.md) 并列成为类 Unix 系统用户最喜欢的编辑器。

## 安装

@@ -12,11 +12,9 @@ Vim 是从 vi 发展出来的一个文本编辑器。其代码补完、编译及

Linux 系统通常自带 Vim ,打开终端输入 `vim` 即可启用。

Vim 依附于终端,所以调整终端设置也可以达到美化效果。比如背景透明这种极具美感的东西。而 Gvim 则可以通过图形界面的菜单栏来调节。

### 手动安装

自带的 Vim 多半有功能残缺(比如不能与系统剪切板交互,各种“未开启支持”的情况);或者想要使用一些新版的功能的话(比如 Vim 内部调出终端以及自带的调试功能),就需要手动安装。
自带的 Vim 多半有功能残缺(比如不能与系统剪切板交互,各种“未开启支持”的情况);或者想要使用一些新版的功能的话(比如 Vim 内部调出终端以及自带的调试功能 termdebug),就需要手动安装。

如果没有相关需求,就没有必要手动安装了,可以直接略过本节。

@@ -26,7 +24,7 @@ Vim 依附于终端,所以调整终端设置也可以达到美化效果。比
sudo apt-get remove vim
```

然后安装有两种做法。
安装有两种做法。

做法一,使用命令安装。但因为系统安装的时候 Vim 是从默认软件源安装的,所以软件源里 Vim 的版本并不是最新的。这个时候应使用第三方软件源安装,命令如下:

@@ -125,7 +123,7 @@ h < > l

`y` 命令可以复制被选中的区域。需要按 `v` 进入可视模式操作。

`w` 可以跳到下个单词的开头;`e` 可以跳到当前单词结尾;`0` 可以跳至行首;`$` 可以跳至行尾。`w`  `e`  `0`  `$` 还可以与其他命令组合,比如 `de``dw``d0``d&` 分别对应删至单词尾、删至下个单词头、删至行首和删至行尾。
`w` 可以跳到下个单词的开头;`e` 可以跳到当前单词结尾;`0` 可以跳至行首;`$` 可以跳至行尾。`w`  `e`  `0`  `$` 还可以与其他命令组合,比如 `de``dw``d0``d&` 分别对应删至单词尾、删至下个单词头、删至行首和删至行尾。

由于对行命令的使用很频繁,所以大部分的单键命令都可以通过按两次来实现对行操作。例如,`dd` 可以删除一整行;`yy` 可以复制当前行。

@@ -149,9 +147,9 @@ asdasdasd

其实这并不能称作是一个模式。

普通模式下只需要按 <kbd>:</kbd> ,下方就会蹦出命令框,继续输入相关命令即可。
普通模式下只需要按 <kbd>:</kbd> ,下方就会蹦出命令框,继续输入相关命令即可。

输入 `:help` 可以查看英文版 Vim 在线帮助文档(看不懂英文可以下载 Vim 中文用户手册,或者移步插件篇)。
输入 `:help` 可以查看英文版 Vim 在线帮助文档(看不懂英文可以下载 Vim 中文用户手册,或者移步插件篇下载 vimcdoc)。

`:q` 是退出; `:w` 是保存; `:wq` 是保存并退出; `:q!` 是不保存并退出。

@@ -224,19 +222,17 @@ sudo vim /usr/share/X11/xkb/symbols/pc
xmodmap -e 'clear Lock' -e 'keycode x042=Escape'
```

该映射重启设备失效。
该映射重启设备失效,因此不用担心修改考场设备的问题

### 重复!效率!重复
### 重复,重复,重复

毫无疑问,对动作的重复是提高效率最直接的办法,也是对效率最直接的反映。Vim 中,用于重复执行指令的方式有 <kbd>.</kbd> 命令,简单的录制与重复宏与 `normal` 命令。

#### `.` 命令

Vim 的使用者不可避免地会抗拒重复的文本修改,因为 Vim 注定比其他编辑器会多出两次按键——<kbd>Esc</kbd><kbd>i</kbd>。但是,Vim 其实提供了一台“自行车”—— 重复命令 `.` ,适用于重复的添加、修改、删除文本操作。

`.` 命令可以重复上次执行的命令。但是这个「命令」,其实可以是 `数字 + 命令` 的组合; `进入插入模式 + 输入文本 + Esc` 也是一个命令。
Vim 的使用者不可避免地会抗拒重复的文本修改,因为 Vim 注定比其他编辑器会多出两次按键——<kbd>Esc</kbd><kbd>i</kbd>。但是,Vim 其实提供了重复命令 `.` ,它适用于重复的添加、修改、删除文本操作。

正确使用 `.` 命令才能达到最高的效率。
`.` 命令可以重复上次执行的命令。但是这个「命令」并不只限于单一的命令,它也可以是 `数字 + 命令` 的组合; `进入插入模式 + 输入文本 + Esc` 也是命令的一种。所以,适当使用 `.` 命令才能达到最高的效率。

例如,如下代码的每一行末尾都少了分号:

@@ -263,7 +259,7 @@ int check() {

一个个改过于麻烦,而命令行模式的 `s` 命令又会全部改掉。

一种改法是搭配普通模式下的 `s` 命令(删除光标处字符并进入插入模式)使用。来到第一个错误的数组名首字母处,按下 `4s` ,输入正确的数组名并退出。之后把光标一个个移过去,再使用 `.` 命令。
一种改法是搭配普通模式下的 `s` 命令(删除光标处字符并进入插入模式)使用。来到第一个错误的数组名首字母处,按下 `4s` ,输入正确的数组名并退出。之后把光标一个个移过去,再使用 `.` 命令。

第二种比较节省时间的改法是利用查找模式修改。键入 `/book` ,接着按下回车,并使用 `n` 键来到第一个错误的数组名首字母处,键入 `4s 新数组名 <Esc>` ,最后重复 `n.`

@@ -273,7 +269,7 @@ int check() {

Vim 的宏功能可以重复任意长的命令。

使用宏之前要先“录制”,即把一串按键操作录下来再回放,这样就达到了重复的效果。录制的方法很简单,普通模式下键入 `q` 开始录制。下一步,为录制的宏指定一个执行的命令键,可以按下 26 个字母中的任意一个来指定。这时左下方会显示 `记录中 @刚刚选择的字母` 。然后就可以开始录制命令了。同理,普通模式下按 `q` 暂停录制。
使用宏之前要先“录制”,即把一串按键操作录下来再回放,这样就达到了重复的效果。录制的方法很简单,普通模式下键入 `q` 开始录制。下一步,为录制的宏指定一个执行的命令键,可以按下 26 个字母中的任意一个来指定。这时左下方会显示 `记录中 @刚刚选择的字母` 。然后就可以开始录制命令了。同理,普通模式下按 `q` 暂停录制。

使用方法为按下 `:` 进入命令行模式,键入 `@选择的记录字母` ,然后之前录制的命令就被调用了。

@@ -295,7 +291,7 @@ Vim 的宏功能可以重复任意长的命令。

#### 数字 + `.` + 宏 + normal

单个命令并不能体现出它们的作用,命令组合使用的时候才是它们最强大的时侯。
单个命令并不能完全体现出它们的强大,命令组合使用的时候才是它们最强大的时侯。

例如:

@@ -373,6 +369,10 @@ set autochdir

### 美化界面

Vim 依附于终端,所以调整终端设置也可以达到美化效果。比如背景透明这种极具美感的东西。而 Gvim 则可以通过图形界面的菜单栏来调节。

字体可以在终端中设置。

**vim-airline** 是一个美化状态栏的插件。当插件正确加载的时候,每个 Vim 窗口的底端都会出现美化后的状态栏,显示效果类似 Oh My Zsh。

美化前:![airline1](./images/vim-1.png)
@@ -381,10 +381,6 @@ set autochdir

vim-airline 的源码托管在 [vim-airline/vim-airline](https://github.com/vim-airline/vim-airline)

字体可以在终端中设置。

Gvim 中有一个图形化的菜单。

主题掌管着语法高亮的色彩、背景颜色等等。以 onedark 主题为例,使用主题的方法如下:

1.`.vim` 文件夹下建立 `colors` 文件夹;
@@ -418,7 +414,7 @@ Gvim 中有一个图形化的菜单。

## 配置篇

Vim 的配置语言称为 vim script,语法和 Vim 命令行下的命令一模一样,存储在配置文件中。基础语法就是 set 开启选项,call xxx() 调用函数,func 与 endfunc 定义函数,exec 执行命令,if 和 endif 描述以下条件表达式," 表示注释,source 表示应用。Vim 开启时会自动执行配置文件中的每一行语句。
Vim 的配置语言称为 vim script,语法和 Vim 命令行下的命令一模一样,存储在配置文件中。基础语法就是 `set` 开启选项,`call xxx()` 调用函数,`func``endfunc` 定义函数,`exec` 执行命令,`if``endif` 描述以下条件表达式,`"` 表示注释,`source` 表示应用。Vim 开启时会自动执行配置文件中的每一行语句。

### 基础配置

@@ -461,7 +457,7 @@ set backspace=indent,eol,start
set number
```

Vim 自带自动折行功能,那就是当某一行超过了 Vim 窗口边界的时候,多出的部分会自动显示在下一行,而这种多出来的行前面是没有行号的,比较好辨认,这些行被称为屏幕行,而根据行号一一对应的便称作实际行(`g + 移动命令` 可以在屏幕行间移动)。但是仅仅凭着看前面的行号来辨认某个折下来的行属于哪个实际行的话,还是不够快。如下命令可以开启高亮显示当前行的功能:
Vim 自带自动折行功能,当某一行超过了 Vim 窗口边界的时候,多出的部分会自动显示在下一行,而这种多出来的行前面是没有行号的,比较好辨认,这些行被称为屏幕行,而根据行号一一对应的便称作实际行(`g + 移动命令` 可以在屏幕行间移动)。但是仅仅凭着看前面的行号来辨认某个折下来的行属于哪个实际行的话,还是不够快。如下命令可以开启高亮显示当前行的功能:

```vim
set cursorline
@@ -680,6 +676,7 @@ Vim 是一款非常优秀的文本编辑器,但由于其陡峭的学习曲线

- [原作者提供的配置](https://github.com/LuoshuiTianyi/Vim-for-OIWiki)
- [Vim 调试:termdebug 入门](https://fzheng.me/2018/05/28/termdebug/)
- [Vim scripting cheatsheet](https://devhints.io/vimscript)

## 参考资料与注释