vim编辑器
- 1.1. 什么是vim?
- 1.2. 下载vim:
- 1.3. 💫配置vim
- 214😸四种常见模式
- 1.2.1正常/普通/命令模式
- 1.2.2插入模式
- 1.2.3 底行模式
- 1.2.3 可视化模式
- 1.3 模式切换
- 1.4 基础使用
- 1)使用vim打开文件
- 2)编辑输入
- 4)vim编辑器强制退出(不保存)
- 1.5 小技巧补充
- 1)异常退出解决方案
- 2)退出vim编辑器
- 3)快捷键--命令模式
1.1. 什么是vim?
vim是Linux编辑器,功能上和记事本没有区别。
不仅仅可以用来写c语言和c++,其它语言也可以在上面写。
1.2. 下载vim:
(1)判断是否已经安装vim
可以先在系统上,输入 vim ,查看是否已经安装了vim.
能进入到一个新页面,就是已经安装了vim。可以直接跳到下一步。进行 vim 的配置。
vim的退出比较特殊,所以进入到新页面之后,先不要随意动键盘。确认是vim打开页面就可以了,然后使用 键盘的左上角的 Esc,然后再 shift + ;,然后输入 q!
vim
(2)安装vim
执行指令需要root权限。
要么加上sudo进行提权,要么以root身份执行。
[sudo / root] yum install -y vim
下载好vim后,我们就可以用它来编辑文本了,vim既可以直接编辑现有文本,也可以直接创建一个不存在的文件。
1.3. 💫配置vim
详细已经在这篇文章写到啦,大家可以跳转查看:【Linux】vim编辑器的配置(手动配置 + 自动配置 一键配置 超快速 )
214😸四种常见模式
1.2.1正常/普通/命令模式
- 进入vim 的默认模式
- 控制屏幕光标的移动,字符、字或行的删除
- 移动复制某区段及进入Insert mode下
- 或者到 last line mode
1.2.2插入模式
只有在Insert mode下,才可以做文字输入,按**「ESC」键**可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
1.2.3 底行模式
文件保存或退出,
也可以进行文件替换,找字符串,列出行号等操作。
在命令模式下**,shift+:**即可进入该模式。
1.2.3 可视化模式
可以做一些列选操作(通过方向键选择某些列的内容,可以用来做批量化注释)
1.3 模式切换
-
插入模式,底行模式等等各种模式想要切回普通模式,都是按Ecs键。
-
普通模式进入插入模式:
- 按i:从光标位置开始编辑文本
- 按a:从光标位置的下一个位置开始编辑文本
- 按o:在光标位置插入新的一行,并从行首开始编辑文本
-
普通模式进入底行模式:
- 按:,也就是shift + ;
1.4 基础使用
1)使用vim打开文件
基本语法:
vim 文件名称1
① 如果文件已存在,则直接打开
② 如果文件不存在,则vim编辑器会自动在内存中创建一个新文件
案例:使用vim命令打开test.c文件
vim test.c
2)编辑输入
进入vim之后,是处于[正常模式],你要输入 字母 i 切换到[插入模式]才能够输入文字。
3)vim编辑器保存文件
在任何模式下,连续按两次Esc键,即可返回到命令模式。
然后按冒号:,进入到末行模式,输入wq,代表保存并退出。
4)vim编辑器强制退出(不保存)
在任何模式下,连续按两次Esc键,即可返回到命令模式。然后按冒号:,进入到末行模式,输入q!,代表强制退出但是不保存文件。
1.5 小技巧补充
1)异常退出解决方案
出现异常/终端关闭,导致突然退出vim.
再次打开文件总会出现这样的页面。
vim 针对这种特殊情况,会把当前文件另存为一个隐藏文件,方便再次访问,以及内容不会丢失
- 第一种解决方案:直接输入D
- 第二种解决方案:删除那个.swap文件
# rm .test.c.swap
1
缺点:这种方法就不会将异常退出那次编辑的内容保存下来。
2)退出vim编辑器
回顾:在vim中,退出正在编辑的文件可以使用 :q 或者 :wq ,除了上面的这个语法之外,vim 还支持另外一个保存退出(针对内容)方法:x
① :x在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表示保存并退出(:wq)
② 如果文件没有被修改,但是使用wq 进行退出的话,则文件的修改时间会被更新;但是如果文件没有被修改,使用x 进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。
3)快捷键–命令模式
键位 | 功能 |
h | 光标向左移动,相当于←键 |
j | 光标向下移动,相当于↓键 |
k | 光标向上移动,相当于↑键 |
L | 光标向右移动,相当于→键 |
G(shift + g) | 光标移动到文本末尾 |
#G(# + shift + g) | 光标移动到第#行 |
$(shift + 4) | 光标移动到当前行末尾 |
^(shift + 6) | 光标移动到当前行开头 |
w | 以单词为单位,光标移动到下一个单词开头 |
b | 以单词为单位,光标移动到上一个单词开头 |
#l | 光标移动到该行第#个位置 |
gg | 光标移动到文本开始 |
键位 | 功能 |
dd | 剪切当前光标所在行 |
#dd | 剪切当前光标开始的#行 |
yw | 把光标所处的单词,复制到缓冲区 |
#yw | 把光标开始的#个单词,复制到缓冲区 |
yy | 把光标所处的行,复制到缓冲区 |
#yy | 把光标开始的#行,复制到缓冲区 |
p | 将缓冲区的内容,复制到光标开始的位置 |
#p | 将缓冲区的内容,复制到光标开始的位置,连续复制#份 |