[toc]
5-Linux-vim编辑器
一、vim编辑器
1、vi介绍
vi
编辑器是所有Unix
及Linux
系统下标准的编辑器,类似于windows
系统下的notepad
(记事本)编辑器,由于在Unix
及Linux
系统的任何版本,vi
编辑器是完全相同的,因此可以在其他任何介绍vi
的地方都能进一步了解它,vi
也是Linux
中最基本的文本编辑器,学会它后,我们将在 Linux
的世界里畅行无阻,尤其是在终端中。
2、vim
编辑器
vi
和vim
都是Linux
中的编辑器,不同的是,Vim
是 一个同Vi
向上兼容的文本
编辑器,可以用来编辑任何ASCII 文本
, 特别 适合 用来编辑程序.
它对Vi
作了许多增强:多层撤销、多窗口、多缓冲区(buffer
)、高亮度语法显示、命令行编辑、文件名匹配、在线帮助、可视选定等等。
Vim
重点是光标的移动,模式切换,删除,查找替换,复制,粘贴,撤销命令的使用。
二、vim
三种模式
1、三种模式
Vim
中存在三种模式:命令模式、末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。
- 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
- 编辑模式:正常的文本录入。
- 末行模式:可以末行输入命令来对文件进行操作,如
保存
或退出
文件、搜索、替换、撤销、以及设置编辑环境等等。
在每次运行Vim
编辑器时,默认进入命令模式
,此时需要先切换到输入模式
后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式
,然后再进入末行模式
,执行文档的保存或退出操作。
在Vim
中,无法直接从输入模式
切换到末行模式
。
2、最基本操作
打开文件
Vim
的打开文件的方式(4种,要求掌握的就前三种):
vim 文件路径
:打开指定的文件[root@localhost test]# vim passwd
vim +数字 文件的路径
:打开指定的文件,并且将光标移动到指定行[root@localhost test]# vim +3 passwd
vim +/关键词 文件的路径
:打开指定的文件,并且高亮显示关键词[root@localhost test]# vim +/tiger passwd
vim 文件路径1 文件路径 2文件路径3
:同时打开多个文件。[root@localhost test]# vim a.txt passwd 还有 2 个文件等待编辑
退出文件
在没有任何改变的情况下,按:
号进入末行模式,输入q
退出文件编辑。
[root@localhost test]# vim passwd
:q #末行模式输入后按回车退出
三、命令模式
注意:该模式是打开文件的第一个看到的模式。
1、光标移动
① 光标移动到行首
按键:shift+6
(需要注意,不是小键盘上的6
)
② 光标移动到行尾
按键:shift+4
(需要注意,不是小键盘上的4
)
③ 光标移动到首行
按键:gg
④ 光标移动到示行
按键:G
⑤ 翻页
向上翻页
按键:
ctrl+b
|PgUp
向下翻页
按键:
ctrl+f
|PgDn
2、复制操作
复制操作往往与粘贴操作一起使用。
① 复制光标所在行
按键:yy
粘贴:在想要粘贴的地方按下p
键
① 以光标所在行为准,向下复制指定的行数
按键:数字+yy
粘贴:在想要粘贴的地方按下p
键
注意:向下复制时包含光标所在行。
① 可视化复制
按键:ctrl+v
,然后按下上、下、左、右
方向键进行选择,最后按下yy
键进行复制
粘贴:在想要粘贴的地方按下p
键
注意:退出可视化按两次esc
3、剪切/删除
① 剪切/删除光标所在行
按键:dd (删除后后面行向上移)
注意:dd是剪切命令,如果不进行粘贴操作,则是删除效果
① 以光标所在行为准,剪切/删除指定的行数
按键:数字+dd
注意:向下剪切/删除时包含光标所在行。
① 剪切/删除光标所在行,但是后面行不上移
按键:D (删除后当前行为空白行)
4、撤销/恢复
① 撤销
按键:u
或未行模式下输入u
回车
① 恢复
按键:ctrl + r
四、末行模式
- 进入方式:由命令模式进入,按下“:”即可进入
- 退出方式:
- a.按下
esc
(延时退出) - b.连按
2
次esc
键 (立即退出) - c.删除末行全部输入字符
- a.按下
1、保存操作(write)
输入::w
保存文件
输入::w 路径
另存文件
2、退出(quit)
输入::q
退出文件
3、保存并退出
输入:
:wq
保存退出文件输入:
:x
保存或退出文件- 在文件没有修改的情况下,表示直接退出
- 在文件被修改的情况下,表示保存并退出
区别:
如果文件没有被修改:
- 使用
wq
退出,文件的修改时间会被更新。 - 使用
x
退出,文件的修改时间不会更新。
推荐使用:x
。但是注意不要写成:X
,大写的x
:X
作用是对文件进行加密码操作。容易才不知情的情况下输入密码后,忘记密码,打不开文件。
4、强制退出
输入::q!
强制退出文件
当文件被修改后,如果不保存文件,那么必需强制退出。
5、调用外部命令
输入::! 外部命令
[root@localhost test]# vim passwd
:! ls
已中断: 请按 ENTER 或其它命令继续
a.txt b.txt passwd
请按 ENTER 或其它命令继续
6、搜索/查找
从上到下搜索
输入::/关键词
从下到上搜索
输入::?关键词
示例:在passwd
文件中搜root
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
:/root
切换搜索结果:
- 上一个:按下
N (shift+n)
- 下一个:按下
n
当搜索完成后会高亮显示搜索结果,而且在文件退出后,再打开,会显示退出时高亮内容。如果不想显示高亮,可在未行模式输入命令取消高亮显示。
输入::nohl
(no high light取消高亮)
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
:nohl
7、替换
替换光标所在行的第一个附和条件的内容
输入::s/搜索的关键词/替换内容
替换光标所在行的所有附和条件的内容
输入::s/搜索的关键词/替换内容/g
替换全文中每行第一个附和条件的内容
输入::%s/搜索的关键词/替换内容
替换全文中所有附和条件的内容
输入::%s/搜索的关键词/替换内容/g
- %:表示整个文件
- g:表示全局(global)
8、 显示/隐藏行号
显示
输入::set nu
隐藏
输入::set nonu
9、跳转到指定行
输入::整数行号
10、多个文件切换
查看当前已经打开的文件名称
输入::files
:files
1 %a "a.txt" 第 5 行
2 # "b.txt" 第 36 行
- %a:active(活动的),代表当前打开的文件
:代表前一个打开的文件
- 第5行:代表光标所在行
切换文件
① 按文件名切换
输入::open 文件名
:files
1 %a "a.txt" 第 1 行
2 "b.txt" 第 0 行
:open b.txt
注意:文件名为打开的文件名,如果打开的文件不存在,则会新建一个,相当于windows
下的记事本新建文件。
② 上一个/下一个
- 上一个:
:bp
(back previous
切换到上一个打开的文件) - 下一个:
:bn
(back next
切换到下一个打开的文件)
五、编辑模式
进入方式:
- i:在光标所在字符前开始插入
- a:在光标所在字符后开始插入
- o:在光标所在行的下面另起一新行插入
- Ⅰ:在行的行首开始插入,如果行首有空格则在空格之后插入
- A:在光标所在行的行尾开始插入
- O:在光标所在行的上面另起一行开始插入
- S:删除光标所在行并开始插入
重点在前三个进入方式:i
、a
和o
;
退出方式:
按下esc
退出编辑模式。
六、实用功能
1、代码着色
案例:创建index.html
编写的代码会以根据内容不同显示不同的颜色。
如何控制着色显示与关闭中呢?
显示::syntax on
关闭::syntax off
2、vim
中的计算器的使用
当编辑文件时候需要使用计算一些公式时,就需要计算器功能了,vim自身集成了一个简易的计算器。
- a、进入编辑模式
- b、按下按键
ctrl+r
,然后输入=
,此时光标会变到最后一行 - c、输入需要计算的内容,按下回车
七、扩展
1、vim
配置
Vim
是一款编辑器,编辑器也是有配置文件的。
vim
配置有三种情况:
- a、在文件打开的时候在末行模式下输入的配置(临时的>
- b、个人配置文件(
~/.vimrc
,在用户家目录下的隐藏文件,如果没有,直接创建即可) - c、全局配置文件(
vim
自带,/etc/vimrc
>
① 创建个人配置文件进入编辑
② 在配置文件中进行配置
显示行号:set nu
[root@localhost test]# vim /etc/vimrc
set nu
………………省略部分输出………………
配置好后,vim再打开文件后就会永远显示行号。
个人配置的优先级高于全局配置。
2、异常退出
什么是异常退出?
当正在编辑文件时没有进行保存,突然关闭终端或者断电的情况下,再次打开文件会出现异常提示的情况。
E325: 注意
发现交换文件 ".passwd.swp"
所有者: root 日期: Fri Feb 19 15:28:23 2021
文件名: ~root/test/passwd
修改过: 是
用户名: root 主机名: localhost.localdomain
进程 ID: 4264
正在打开文件 "passwd"
日期: Fri Feb 19 15:23:45 2021
(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
如果是这样,请用 ":recover" 或 "vim -r passwd"
恢复修改的内容 (请见 ":help recovery")。
如果你已经进行了恢复,请删除交换文件 ".passwd.swp"
以避免再看到此消息。
交换文件 ".passwd.swp" 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):
解决异常方法:
① 在异常提示界面根据提示进行操作解决
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):
如查想保留上次异常退出时编辑的内容,可按R键进行保留。
编辑完成后保存退出,再次打开,还是出现异常退出提示。只能删除swp
才能解决。
② 删除swp
交换文件
交换文件 ".passwd.swp" 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):
出现异常情况后,会在文件夹同目录下创建一个与原文件同名的.swp
交换文件。
将此文件删除即可解决异常,如果未执行第一步的操作直接删除,未保存的修改将会丢失。
3、别名机制
作用:相当于创建一些属于自己的自定义命令
示例:
例如:在windows
下有cls
命令,在Linux
下可能因为没有这个命令而不习惯清屏。现在可以通过别名机制来解决这个问题,可以自己创造出cls
命令。
别名机制实际就是自定义的命令名称与实际命令之间建立了一种映射关系。这种映射关系在~./bashrc
文件中配置。
[root@localhost ~]# vim ~/.bashrc
1 # .bashrc
2
3 # User specific aliases and functions
4
5 alias rm='rm -i'
6 alias cp='cp -i'
7 alias mv='mv -i'
8 alias cls='clear'
在终端使用:
[root@localhost ~]# cls
bash: cls: 未找到命令...
原因:保存后没有及时生效。
解决方法:
① 重启系统
② 输入:source 文件名
[root@localhost ~]# source .bashrc
[root@localhost ~]# cls
作业
1.Vim编辑器的三种模式分别是什么?
答:命令模式、末行模式与输入模式(也叫编辑模式或插入模式)。
2.怎么从输入模式切换到末行模式?
答:需要先敲击Esc键退回到命令模式,然后敲击冒号(:)键后进入末行模式。