一、Vim三种模式

Vim是一款文本编辑器。存在三种模式:命令模式、编辑模式(输入模式)、末行模式(尾行模式)。

1. 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、粘贴等等)【打开文件之后默认进入的模式】;
2. 编辑模式:在该模式下可以对文件的内容进行编辑;
3. 末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)

Vim打开文件的方式(4种):
#vim 文件路径 作用:打开指定的文件
#vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行。
#vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词。
#vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件。

重点:先复制出一个/etc/passwd,复制到当前家目录下。
【Linux】Vim编辑器
后续一切命令都是基于root/passwd文件下的。
【Linux】Vim编辑器
高亮显示如下:
【Linux】Vim编辑器
退出方式:shift+:(英文冒号),输入q,按下回车即可。

二、命令模式

注意:该模式是打开文件第一个看到的模式(打开文件即可进入)。
1. 光标移动
(1)光标移动到行首
按键:shift + 6 或 ^(不要按小键盘的6)

(2)光标移动到行尾
按键:shift + 4 或 $

(3)光标移动到首行
按键:gg

(4)光标移动到末行
按键:G

(5)翻屏
向上翻屏:按键ctrl + b(before) 或者 pageup
向下翻屏:按键ctrl + f(after) 或者 pagedown

2. 复制操作
(1)复制光标所在行
按键:yy(copy
粘贴:在想要粘贴的地方按下P(paste)键

(2)以光标所在行为准(包含当前行),向下复制指定的行数
按键:数字 yy

(3)可视化复制
按键:ctrl + v,然后按下 ↑ ↓ ← →方向键来选中需要复制的区块,按下yy键进行复制,最后按下p键粘贴。

3. 剪切/删除

(1)剪切/删除光标所在行
按键:dd(delete) (删除之后下一行上移)
注意:dd严格意义上说是剪切的命令,但是如果剪切了不粘贴就是删除的效果。

(2)剪切/删除光标所在行(包含当前行),向下删除/剪切指定的行。
按键:数字 dd (删除之后下一行上移)

(3)剪切/删除光标所在的当前行,但是删除之后下一行不上移。
按键:D (删除之后下一行不上移,当前行变成空白行)

4. 撤销/恢复

撤销:按下shfit + u(小写)或者 输入u ( undo)【不属于命令模式】
恢复:ctrl + r (recover) 恢复之前的操作

5. 扩展1:光标的快速移动
(1)快速将光标移动到指定的行
按键:数字 G

(2)以当前光标为准向上/向下移动n行。
按键:数字 ↑,数字 ↓

(3)以当前光标为准,向左/向右移动n个字符
按键:数字 ← ,数字 →

(4)末行模式下的快速移动方式:移动到指定的行。
按键:输入英文+”:“,其后输入 行数数字,按下回车。

三、模式间的切换(重点)

【Linux】Vim编辑器

四、末行模式

进入方式:由命令模式进入,按下shift + ":"或者“/”(表示查找)即可进入。
退出方式:
①按下esc
②连按两次esc键
③删除末行输入的全部字符

(1)保存操作
输入:“:w”(write) 保存文件
输入:“:w 路径” 另存为

(2)退出
输入:“:q”

(3)保存并退出
输入:“:wq” 保存并且退出

(4)强制
输入:“:q!” 表示强制退出,刚才做的操作不做保存

(5)调用外部命令
输入:“!外部命令”
例如:
【Linux】Vim编辑器
【Linux】Vim编辑器
当外部命令执行结束之后按下任意键回到vim编辑器打开的内容。

(6)搜索/查找
输入:“/关键词”
例如:在passwd文件中搜索"sbin"关键词。
【Linux】Vim编辑器
在搜索结果中切换上/下一个结果:N/n(next)

取消高亮,输入“:nohl”【no highlight】

(7)替换
:s(strreplace)/搜索的关键词/新的内容    替换光标所在行的第一处符合条件的内容
:s/搜索的关键词/新的内容/g     替换光标所在行的全部符合条件的内容
:%s/搜索的关键词/新的内容      替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/新的内容/g     替换整个文档的符合条件的内容

%表示整个文件
g表示全局(global)

(8)显示行号
输入:“:set nu”【number】
【Linux】Vim编辑器
取消显示行号:“:set nonu”
【Linux】Vim编辑器
(9)使用vim同时打开多个文件,在末行模式下进行切换文件。
查看当前已经打开的文件名称:“:files”
【Linux】Vim编辑器
在“%a”的位置有两种可能显示:
%a(active):表示当前正在打开的文件。
#:表示上一个打开的文件。

切换文件的方式:
①:如果需要指定切换文件的名称,则可以输入:“:open 已经打开文件的文件名”。
【Linux】Vim编辑器
②可以通过其它命令来切换上一个/下一个文件。
输入:“:bn” ,切换到下一个文件(back next)
输出:“:bp” ,切换到上一个文件(back previous)

五、编辑模式

【Linux】Vim编辑器
前两个较为常用 i(insert)、a(after)。
退出方式:按下esc。

六、实用功能

  1. 代码着色
    【Linux】Vim编辑器
    如何控制是否显示着色?
    显示:“:syntax on”
    关闭显示:“:syntax off”

  2. vim种计算器的使用
    (1)进入编辑模式。
    (2)按下“ctrl + R”,然后输入“=”,此时光标会移动到最后一行
    (3)输入需要计算的内容,按下回车。
    【Linux】Vim编辑器

七、扩展

1. vim的配置
vim配置有三种情况:
① 在文件打开的时候在末行模式下输入的配置(临时的)
② 个人的配置文件(~/.vimrc,如果没有可以自行新建)
③ 全局配置文件(vim自带,/etc/vimrc)

(1)新建好个人配置文件之后进入编辑。
(2)在配置文件种进行配置。
比如显示行号:set nu

【Linux】Vim编辑器
注意:
【Linux】Vim编辑器

2. 异常退出
异常退出:在编辑文件之后并没有正常的wq(保存退出),而是遇到突然关闭终端或者断电的情况,当再次打开文件时,则会显示如下的效果。

【Linux】Vim编辑器
解决办法:将交换文件(在编辑过程种产生的临时文件)删除即可。
#rm -f .passwd.swp

【Linux】Vim编辑器
删除成功之后,再次打开文件,即可正常打开。

3. 别名机制

作用:相当于创建一些自定义的命令。

例如:在windows下有cls命令,我们也可以在linux下自己自定义cls命令。

别名机制依靠一个映射文件:~/.bashrc
【Linux】Vim编辑器
【Linux】Vim编辑器
注意:要想新创建的命令生效,必须重新登陆当前账号。

4. 退出方式
vim中退出的方式:“:q”或者“:wq”。

<font color="red"vim中更加实用的保存退出的指令:“:x”(建议使用,注意x小写)。
输入X(大写):会将文件加密。

说明:①:“:x”在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出。
②:如果文件没有被修改,但是使用wq进行退出的话,则文件的修改时间会被更新;但是如果文件没有被修改,使用 x 进行退出的话,则文件修改时间是不会被更新的。

如有错误,欢迎指正~

分类:

技术点:

相关文章: