vi编辑器是所有Unix 及 Linux 系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix 及 Linux 系统的任何版本,vi编辑器是完全相同的,因此可以在其它任何介绍vi的地方都能进一步了解它,vi也是Linux中最基本的文字编辑器,学会它后,我们将在Linux的世界里畅行无阻,尤其是在终端中。
创新互联主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务湘潭县,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
关于vim:
vi和vim都是Linux中的编辑器,不同的是,vim比较高级,可以视为vi的升级版本。vi适用于文本编辑,但是vim更适用于coding。
vim的重点是光标的移动,模式切换,删除,查找,替换,复制,粘贴,撤销命令的使用。
vim存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)
命令模式:在该模式下不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、粘贴等)【vim打开文件后默认进入该模式】
编辑模式:在该模式下可以对文件的内容进行编辑
末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)
Vim打开文件的方式(4种,要求掌握前三种):
#vim 文件路径 —— 打开指定文件
#vim +数字 文件路径 —— 打开指定文件,并且把光标移动到指定行
#vim +/关键词 文件路径 —— 打开指定文件,并且高亮显示关键词
#vim 文件路径1 文件路径2 ... —— 同时打开多个文件
:files —— 查看当前已经打开的文件
切换文件方式:
a. 切换到指定文件: :open 文件名
b. 切换上一个/下一个文件: :bp (back prev:上一个)、 :bn (back next:下一个)
重点记住前2种方式, i 和 a
Vim继承自Vi,这种最基础的命令都是一样的。
向右移动一个光标的快捷键是j;如果是向右移动一个光标,并进行编辑的快捷键是a。
Vim的移动
Vim的编辑
Vim帮助手册
参考资料:《Vim8文本处理实战》、Vim帮助手册
vim可以分为三种状态,分别是 命令行模式(command mode) 、 输入模式(Insert mode) 和 底行模式(last line mode) ,这 3 种工作模式可随意切换,如下图所示。
使用vim编辑文件时,默认处于命令行模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
下图所示是vim处于命令行模式的状态示意图。
在输入模式下,vim可以对文件执行写操作,类似于在Windows系统的文档中输入内容。
使vim进行输入模式的方式是在命令模式状态下输入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具体功能下表所示),当编辑文件完成后按 esc 键即可返回命令模式。
下图所示为vim处于输入模式模式下的示意图。
底行模式用于对文件中的指定内容执行保存、查找或替换等操作。
使vim切换到底行模式的方法是在 命令行模式 状态下按 : 键(注意是英文符号),此时vim窗口的左下方出现一个 : 符号,这是就可以输入相关指令进行操作了。
指令执行后vim会自动返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下图所示为vim进入底行模式后的状态。
对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 esc 键返回命令行模式。如果你多按几次 esc 键后听到"嘀————"的声音,则代表你已经处于命令行模式了。
打开文件
打开文件时光标处于文件尾部
打开文件时,光标定位到第几行
字符移动
这些移动键都可以加上数字(5h:向左移动5个字符格)
单词移动
行内跳转
行间移动
在底行模式下,直接给出行号,实现跳转
用法:起始地址,结束地址 s @要替换内容@替换后内容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a换替换成A,全局替换
显示取消行号
设定自动缩进(写脚本时)
查找到的文本高亮显示
语法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :个人配置文件,每个用户的家目录中,若不存在,手动创建
对于第一次用vim的童鞋,有几点需要提醒一下:
命令行下,输入vim xxx.c就会进入vim一般模式,并开始编辑这个xxx.c的文件。
使用vim xxx.c就会默认进入vim一般模式。
在一般模式下,按下i键就会进入编辑模式,也称INSERT MODE(插入模式)。
编辑模式中,按ESC键会退出编辑模式回到一般模式。
按下:键就会进入命令模式。
按下ESC键回到一般模式。
命令模式下,输入
:wq 这个命令再按回车键就会保存并退出vim(write and quit)
:q 退出vim(不会保存)
:q! 强制退出vim(不会保存)
yy 拷贝当前行
5yy 拷贝当前行及下面一共5行
p 粘贴
dd 删除当前行
4dd 删除当前行及下面一共4行
G 定位到最后一行
gg 定位到第一行
快速定位到指定行号:输入一个数字然后按下G(shift+g)
u 撤销前一个操作
/xx 按下回车就会在文件中查找xx,查到会高亮第一个字符,按n会查找下一个xx
:set nu 显示行号
:set nonu 取消显示行号