
文章目录
- 一、什么是vim
- 二、vim模式
- 2.1 正常模式下的快捷键
- 2.2 vim的基本操作
- 2.3 vim末行模式命令
- 2.4 vim操作总结
 
- 三、配置vim
- 3.1 配置文件的位置
- 3.2 常用配置选项,用来测试
- 3.3 使用插件
- 3.4 使用git
 
一、什么是vim

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且
 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、
 windows。我们课堂上,统一按照vim来进行讲解。
 
二、vim模式
vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
-  正常/普通/命令模式(Normal mode) 
 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
-  插入模式(Insert mode) 
 只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
-  末行模式(last line mode) 
 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes
我这里一共有12种模式:six BASIC modes和six ADDITIONAL modes.
按下i键可以进入插入模式,可以编写代码。退回正常模式按[ESC],要保存退出末行模式输入:wq(保存退出).
无论进入哪个模式,按[ESC]即可退回到正常模式
 
2.1 正常模式下的快捷键
注意:大写的字母都可以通过shift+按键实现
 文本编辑:
| 快捷键 | 功能 | 
|---|---|
| i | 在当前光标位置前插入文本 | 
| I | 在当前行的行首插入文本 | 
| a | 在当前光标位置后插入文本 | 
| A | 在当前行的行尾插入文本 | 
| o | 在当前行下方插入新行并进入插入模式 | 
| O | 在当前行上方插入新行并进入插入模式 | 
| x | 删除当前光标所在处的字符 | 
| X | 删除当前光标前一个字符 | 
| dd | 剪切当前行 | 
| n + dd | 剪切n行 | 
| yy | 复制从当前行开始的n行 | 
| n+ yy  | 复制从当前行开始的n行 | 
| p | 粘贴剪贴板内容 | 
| P | 粘贴剪贴板内容到光标前 | 
| u | 撤销上一次操作 | 
| Ctrl + r | 重做上一次被撤销的操作 | 
| shift+~ | 将光标位置的小写字母大写,或大写字母小写 | 
| 光标移动 : | 
| 快捷键 | 功能 | 
|---|---|
| h | 向左移动一个字符 | 
| j | 向下移动一行 | 
| k | 向上移动一行 | 
| l | 向右移动一个字符 | 
| w | 向后移动一个单词 | 
| b | 向前移动一个单词 | 
| 0 | 移动到行首 | 
| $ | 移动到行尾 | 
| gg | 移动到文件开头 | 
| n+gg | 定位到指定n行 | 
| G | 移动到文件末尾 | 
| n+G | 定位到指定n行 | 
| Ctrl + f | 向下滚动一页 | 
| Ctrl + b | 向上滚动一页 | 
| Ctrl + d | 向下滚动半页 | 
| Ctrl + u | 向上滚动半页 | 
| Ctrl + e | 向下滚动一行 | 
| Ctrl + y | 向上滚动一行 | 
| shift + 4= $ | 光标定位到当前行结尾 | 
| shift + 6= ^ | 定位到当前行开头 | 
替换:
| 快捷键 | 功能 | 
|---|---|
| r | 替换当前字母为输入字母 | 
| n + r | 替换n个字符 | 
| shift + r | 进入替换模式 | 
查找和替换:
| 快捷键 | 功能 | 
|---|---|
| /pattern | 向后查找指定的模式 | 
| ?pattern | 向前查找指定的模式 | 
| n | 跳转到下一个匹配项 | 
| N | 跳转到上一个匹配项 | 
| :%s/old/new/g | 全局替换文本中的 old 字符串为 new 字符串 | 
撤销和重做:
| 快捷键 | 功能 | 
|---|---|
| u | 销上一次操作 | 
| Ctrl + r | 重做上一次被撤销的操作 | 
| 「 cw」 | 更改光标所在处的字到字尾处 | 
| 「 c#w」 | 例如,「c3w」表示更改3个字 | 
退出 Vim:
| 快捷键 | 功能 | 
|---|---|
| :q | 退出 Vim | 
| :q! | 强制退出 Vim,忽略未保存的修改 | 
| :w | 保存文件 | 
| :wq | 保存文件并退出 Vim | 
2.2 vim的基本操作
-  进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面: - $ vim test.c
- 不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。
 
-  [正常模式]切换至[插入模式] - 输入a
- 输入i
- 输入o 新起一行
 
-  [插入模式]切换至[正常模式] - 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
 
-  [正常模式]切换至[末行模式] - 「shift + ;」, 其实就是输入「:」
 
- 「
-  退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「 Last line mode」,例如:- : w (保存当前文件)
- : wq (输入「wq」,存盘并退出vim)
- : q! (输入q!,不存盘强制退出vim)
 
-  注释代码 - 底行模式[ctrl + v] + h/l :进行选择行数,然后[shift + i] 输入//,再按[ESC]即可。
 [ctrl + v]进入的是一种模式。可以进行选择行数,进行批量化操作。
 取注释时,进入该模式,选中所有//再按d即可。
 
- 底行模式[ctrl + v] + h/l :进行选择行数,然后[shift + i] 输入
2.3 vim末行模式命令
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
-  列出行号 - 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
- 「set nonu」: 输入「set nonu」后,消除行号。
 
-  跳到文件中的某一行 - 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
 
-  查找字符 - 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
- 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
- 问题:/ 和 ?查找有和区别?操作实验一下
 
-  保存文件 - 「w」: 在冒号输入字母「w」就可以将文件保存起来
- [shift + zz] : 保存退出
 
-  离开vim - 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
- 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
 
-  在vim中打开另一个文件: - 「vs xxx」: 打开另一个文件,光标所在文件为所编辑文件。
- 「:b + 文件名 」: 切换到指定文件
- [ctrl + ww] : 快速切换
- [ctrl + w + h/l] : 左右切换
 
2.4 vim操作总结
-  三种模式 - 正常模式
- 插入模式
- 底行模式
 
-  我们一共有12种总模式,大家下来可以研究一下 
-  vim操作 - 打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。
 底行模式下输入[help]可以查看帮助。
 
- 打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。
三、配置vim
3.1 配置文件的位置
vim在开启前会自己执行配置文件中的命令。
- 在目录 /etc/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
- 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
- 切换用户成为自己执行su ,进入自己的主工作目录,执行 cd ~
- 打开自己目录下的.vimrc文件,执行vim .vimrc
但是该配置文件只会在当前用户下,当使用其他用户时则需要重新配置。
3.2 常用配置选项,用来测试
设置语法高亮: syntax on
 显示行号: set nu
 设置缩进的空格数为4: set shiftwidth=4
3.3 使用插件
要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来:
- 安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
- 在~/.vimrc 中添加:let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1
- 安装文件浏览器和窗口管理器插件: WinManager
- 下载winmanager.zip,2.X版本以上的
- 解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
- 在~/.vimrc 中添加let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm:WMToggle<cr>
- 然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 你将看到上图的效果。
  
3.4 使用git
方便的配置
 在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 “不推荐” 直接在 root 下执行):
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
需要按照提示输入 root 密码. 您的 root 密码不会被上传, 请放心输入.
卸载方法
 在安装了 VimForCpp 的用户下执行:
bash ~/.VimForCpp/uninstall.sh
如果有所帮助可以留下你的点赞和关注,谢谢你的观看
