文章目录
- 一、什么是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
如果有所帮助可以留下你的点赞和关注,谢谢你的观看