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