👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++和算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍
目录
- 一、vim的三种模式
- 二、命令模式切换到底行模式的常用按键
- 2.1 保存与退出
- 2.2 在底行模式下执行基本指令
- 2.3 多个文件编辑窗口
- 2.4 设置行号(vim环境的修改 )
- 三、命令模式切换到编辑模式的常用按键
- 3.1 进入编辑模式
- 3.2 替换字符
- 四、命令模式常用的按键
- 4.1 上下左右移动光标的方法
- 4.2 屏幕移动的方法
- 4.3 光标在行内移动的方法
- 4.4 光标在整个文本移动的方法
- 4.5 查找的方法
- 4.6 替换的方法
- 4.7 删除/剪切的方法
- 4.8 复制的方法
- 4.9 粘贴的方法
- 4.10 撤销的方法
- 五、vim的配置
- 5.1 自定义配置
- 5.2 自动化配置
一、vim的三种模式
基本上vim
共分3
种模式,分别是命令模式、编辑模式与底行模式。这3
种模式的作用分别是:
- 命令模式(
command mode
)
输入指令vim [文件]
就可以直接进入命令模式了。在这个模式中,你是不能进行编辑操作的,但你可以使用【上下左右】按键来移动光标;你还可以使用vim
的【删除、复制、粘贴】等指令来处理你的文件内容(后面会详细介绍)
- 编辑模式(
insert mode
)
当你在命令模式下想要编辑文件内容,你会发现它不会反馈到屏幕上。这时你只需要按下i
后(按键有很多种,但是常用的是i
),然后你就可以对文件进行编辑了。注意了,通常在Linux
中,按下i
键后,界面的左下方会出现【INSERT
】或【REPLACE
】的字样,这是提示你可以对文件进行编辑。而如果要返回命令模式,则需要按下【Esc】按键即可退出编辑模式。
- 底行模式(
command-line mode
)
在命令模式中,只要你输入【:
/
?
】三个其中一个按键,就可以进入底行模式。你会发现左下角会有光标。在这个模式中(命令行模式)中,可以退出vim
、还可以有设置行号、查找等操作(这些操作后面都会提到)
简单地说,我们可以将这三个模式关系用下面这幅图来表示
注意:命令模式可与编辑模式及底行模式切换,但编辑模式与底行模式之间不可互相转换
二、命令模式切换到底行模式的常用按键
2.1 保存与退出
-
:w
- 保存编辑的文本内容 -
:q
- 退出vim
-
:wq
- 保存内容并退出(最常用) -
:q!
- 强制退出,但是不会保存之前修改的内容
2.2 在底行模式下执行基本指令
:! command
- 暂时退出vim到命令行模式下执行command
的显示结果
以下是编译代码 + ls
+ 执行可执行文件的动图演示
2.3 多个文件编辑窗口
:vs [文件名]
- 多个文件编辑窗口ctrl + ww
- 切换编辑窗口
2.4 设置行号(vim环境的修改 )
-
:set nu
- 显示行号 -
:set nonu
- 取消行号
三、命令模式切换到编辑模式的常用按键
3.1 进入编辑模式
在开头我说过,进入编辑模式有按键i
(大写I
也可以),接下来我为大家总结了其他进入编辑模式的按键:
i | 从目前光标所在处插入 |
---|---|
I | 在目前所在行的第一个非空格符处开始插入 |
a | 从目前光标所在的下一个字符串开始插入 |
A | 从光标所在行的最后一个字符处开始插入 |
o | 在目前光标所在的下一行开始插入 |
O | 在目前光标所在的上一行开始插入 |
全记住肯定是不太可能的事,因此大家还是选一个记吧hh
3.2 替换字符
-
r
- 只会替换光标所在的那一个字符一次 -
R
- 替换完光标所在的字符后,光标会自动跳到下一个字符等待替换,按下Esc
键就会停止 (本人认为:R
比较常用) -
shift + ~
:光标所在字符会进行大小写转换。(转换后光标会自动向后移)
四、命令模式常用的按键
4.1 上下左右移动光标的方法
h /← | 光标左移 |
---|---|
j / ↓ | 光标下移 |
k / ↑ | 光标上移 |
l / → | 光标右移 |
如果想要进行多次用的话,例如向下移动30
行,可以使用30j
或者30↓
4.2 屏幕移动的方法
Ctrl + f / 【Page Down】 | 屏幕向下移动一页 |
---|---|
Ctrl + b / 【Page Up】 | 屏幕向上移动一页 |
4.3 光标在行内移动的方法
n + 空格 | n 代表数字。按下数字后再按空格键,光标会向右移动n 个字符 |
---|---|
shift + $ | 定位到当前行末尾 |
shift + ^ | 定位当前行开头 |
w | 以单词为单位向右移动 |
b | 以单词为单位向左移动 |
4.4 光标在整个文本移动的方法
gg | 定位到整个文本的开头 |
---|---|
shift +g | 定位到整个文本的最后一行的开头 |
4.5 查找的方法
/word | 向光标之下寻找名称为word 的字符串 |
---|---|
?word | 向光标之上寻找名称为word 的字符串 |
n | 重复前一个查找操作。例如:一开始执行/word ,按下n 则会继续向下查找word |
N | 反向进行前一个查找操作。例如:执行完/word 后,按下N ,则是向上查找 |
4.6 替换的方法
:n1,n2s/word1/word2/g | 在n1 到n2 行寻找word1 ,并将该字符替换成word2 |
---|---|
:1,$s/word1/word2/g | 在第一行到最后一行寻找word1 字符串,并将该字符替换成word2 |
:1,$s/word1/word2/gc | 在其基础上加上了询问 |
4.7 删除/剪切的方法
x | 删除光标下的字符 |
---|---|
dd | 剪切 / 删除光标所在行 |
ndd | 删除 / 剪切光标后的n行(包括光标所在行) |
4.8 复制的方法
yy | 复制光标所在行 |
---|---|
nyy | 复制光标所在行的向下n 行(包括光标所在行) |
4.9 粘贴的方法
p (小写) | 粘贴到光标所在行的下一行 |
---|
4.10 撤销的方法
u | 撤销 |
---|---|
ctrl + u | 对撤销返回 |
五、vim的配置
5.1 自定义配置
我们发现,裸vim
下写代码非常难受,没有行号、没有高亮、没有补全、没有缩进等功能。我们可以自己配置一个。
vim
的配置文件在自己的家目录下,有一个 隐藏文件.vimrc
(如果没有就自己创建一个),然后vim
进入文件输入配置选项进行配置,保存并退出即可,配置在保存后会立即生效(提示:不建议给超级用户root
做配置)
比如我可以配置以下功能:
set nu
- 设置行号set autoindent
- 自动缩进set cursorline
- 突出显示当前行- 还有很多功能大家可以自行上百度搜索
配置完后,我们往后打开vim
,就会有以上功能
注意:是在自己的家目录路径下创建.vimrc
文件,这个配置只对当前用户生效
5.2 自动化配置
我们也可以直接copy
别人的配置
以下有一个我认为比较好用的配置(只适合CentOs 7.x
的用户)
- 复制指令:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
(不要在root
下执行) - 此时提示输入
root
密码
- 最后根据提示安装即可
最后的vim
展示