系列文章目录
第三章 开发工具的认识与使用
文章目录
- 系列文章目录
- 前言
- [一、 认识 vim](#一、 认识 vim)
- [二、vim 的多模式](#二、vim 的多模式)
-
- [2.1 如何理解多模式](#2.1 如何理解多模式)
- [2.2 vim的常用模式](#2.2 vim的常用模式)
- [2.3 模式的常用操作](#2.3 模式的常用操作)
-
- [2.3.1 命令模式](#2.3.1 命令模式)
- [2.3.2 插入模式](#2.3.2 插入模式)
- [2.3.3 底行模式](#2.3.3 底行模式)
- [2.3.4 替换模式](#2.3.4 替换模式)
- [2.3.5 视图模式](#2.3.5 视图模式)
- [2.4 vim 技巧](#2.4 vim 技巧)
- 三、vim的配置
-
- [3.1 个人配置](#3.1 个人配置)
- [3.2 全局配置](#3.2 全局配置)
- [3.3 配置操作](#3.3 配置操作)
- 总结
前言
上一节我们了解如何安装软件,今天我们学习新的开发工具vim,这个工具可以实现便捷的修改文本代码,这意味着我们可以更快的敲代码了,废话不说开始今天的学习吧。
一、 认识 vim
Vim(Vi IMproved) 是一款免费开源、高度可定制的终端文本编辑器,是经典 Unix 编辑器 vi 的增强版,1991 年由 Bram Moolenaar 发布,如今几乎所有 Linux/macOS 系统都默认自带。
vim作为编辑器的一种,上手难度高,但只要上手后以后无论在哪里写代码都会得心应手。vim为系统自带的编辑器,我们可以直接使用通过指令vim 进入。

退出方法: Esc + q 或 ZZ
二、vim 的多模式
2.1 如何理解多模式
vim是一种多编辑器,因此它具有多种模式:类比在我们日常使用时word就是一种多编辑器,它不仅具有输出"Abcd"的字符的能力,还有复制拷贝的能力,这看着就是一种功能的体现,其实这是多模式的整合体现,因为图形化界面省略了这一切换模式的步骤。
2.2 vim的常用模式
虽然vim具有十几种操作模式,但对于我们学习开发五种常用模式已经足够使用了 (这里先讲解三种模式后两种根据具体使用进行讲解) ,这三种模式分别为:命令模式、插入模式、底行模式(末行模式)
-
命令模式: 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进⼊Insertmode下,或者到last
line mode**(默认模式)
** -
插入模式: 处于命令模式时按"i"进入该模式,只有在Insertmode下,才可以做⽂字输⼊,按「ESC」键可回到命令⾏模式。该模式是我们后⾯⽤的最频繁的编辑模式。

-
底行模式: ⽂件保存或退出,也可以进⾏⽂件替换,找字符串,列出⾏号等操作。在命令模式下,''shift + :''即可进⼊该模式。要查看你的所有模式:打开vim,底⾏模式直接输入 :help vim-modes

综上,三种模式的切换总结为:

2.3 模式的常用操作
上面我们已经了解了常用的模式以及模式之间的切换,接下来让我们深入了解,熟悉各个模式的具体操作。
2.3.1 命令模式
命令模式即实现快速编辑的主体,能够方便快捷地处理光标的移动,一下为光标移动的操作方法:。
| 操作 | 作用 |
|---|---|
| gg | 快速使光标移动到文件开始处 |
| G | 快速使光标移动至文件结尾处 |
| n + G | 快速移动到第n行 |
| $ | 跳到当前行的第一个非空白字符 |
| ^ | 跳到当前行的最后一个非空白字符 |
| n + h j k l | 光标的左下上右移动n个距离(现在小键盘的箭头已可支持) |
| n + w b | 光标以单词为单位向后/ 前 移动n个单词(默认为1) |
当然我们在写入时不仅需要移动光标的移动,还需要对文件进行编辑,以下为文件的编辑操作:
| 操作 | 作用 |
|---|---|
| n + yy | 复制当前行的所有内容(复制n行) |
| n + p | 在光标所处的下一行粘贴所复制的内容(粘贴n次) |
| n + dd | 剪切当前行(剪切n行)/ 也可以视为删除操作 |
| n + x | 删除当前光标位置的n个字符 |
| n + X | 删除当前光标位置前的n个字符 |
| n + r + 字符 | 替换当前光标位置后n个字符为某字符 |
| shift + ~ | 大小写替换 |
| u | 撤销上一步的操作 |
| ctrl + r | 撤销 u 操作 |
还有具体的查看操作
| 操作 | 作用 |
|---|---|
| ctrl b f | 屏幕往后 / 前 移动一页 |
| ctrl f d | 屏幕往后 / 前 移动半页 |
| # | 选中单词 |
| n | 逆向查找(# 与 n 一般 联合使用) |
2.3.2 插入模式
由命令模式切换而来,一般可以使用i、a、o 这三个按键进入插入模式,插入模式即输出字符,没有什么特别的快捷操作。
a: 向后一个字符进入插入模式
o: 开启新空行并进入插入模式
i: 直接进入插入模式
2.3.3 底行模式
由命令模式切换而来,一般可以使用:进入,在底行输入相应指令。
| 操作 | 作用 |
|---|---|
| w | 保存 |
| q | 退出 |
| wq! | 强制保存并退出 |
| ZZ | 保存退出 |
| set nu / nonu | 开启/取消 行号 |
| ! + 命令 | 相当于命令行执行命令 |
| % / a/ b / | 将a字符串替换为b字符串 |
| vs + 文件名 | 分屏操作(光标位于哪操作哪个文件,ctrl + w直接切换) |
| / + 字符串 | 高亮显示输入的字符串 |
分屏操作演示(分屏可以分多个):

2.3.4 替换模式
R进入替换模式 ,依次替换光标位置的字符。

2.3.5 视图模式
疲惫于一行行修改代码吗?尝试使用区域化的修改吧,ctrl + v 进视图模式 ,进行批量化处理代码

批量化操作方法:
- ctrl + v 进入视图模式
- 移动光标操作(即命令模式中移动光标的操作)
- I 进入插入模式,输入字符操作命令(也是命令模式中的操作)
- Esc 应用操作

2.4 vim 技巧
我们发现打开文件时,光标默认处于文件的开头,如果我们编译时发现错误在15行,那么我们可以直接vim 文件 + 15,将光标直接移动到15行。

你是否对重复使用指令打开文件感到厌倦?这个!v指令可以直接匹配到最近使用的vim指令,从而直接打开上一次的文件。
三、vim的配置
当我们使用vim打开文件时,我们发现它还是跟普通的编辑器一样,难道只有这些便捷方式吗?其实不然,它有着高亮、补全、行号标志等功能,只是这些功能还需要配置。
3.1 个人配置
配置文件名为.vimrc,因为每个用户都有自己的vim需求,因此它的路径为: /home/用户名目录当中*(若没有,则需要自己创建该文件)*

打开该文件后输入配置信息,即可为vim修改配置。这是因为vim作为软件位于 /uer/bin/vim 路径下,用户使用时会自动检测配置文件 若没有则使用默认配置。
3.2 全局配置
vim 作为所有用户都可使用的编译器,自然也可以统筹全局的配置,通过修改/etc/vimrc 这个配置文件,可以实现对全局配置信息的修改 (该配置优先级较低)

3.3 配置操作
手动修改vim的常用配置信息为:
bash
syntax on " 自动语法高亮
set number " 显示行号
set smartindent " 智能自动缩进
set shiftwidth=4 " 设置自动缩进时,每一级缩进4个空格的宽度
set tabstop=4 " 设定 tab 长度为 4
set expandtab " 将tab转换为等量的空格
set softtabstop=4 " 按退格键时一次删掉4个空格
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
set backupcopy=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
set matchtime=2 " 短暂跳转到匹配括号的时间
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set cmdheight=1 " 设定命令行的行数为 1
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
当然如果不想使用手写的方法,也可以直接应用gitee上整合好的开源项目,出现一下提示即代表安装成功。

总结
本节的讲解就到这里了,在本节我们学习了vim的操作方法和五个常用模式,以及vim的详细配置,今后的代码修改离不开vim的使用,感谢您的阅读,谢谢大家。
`