一、vi和vim
vi编辑器是所有Unix及 Linux系统下标准的编辑器,类似于Windows 系统下的记事本。很多软件默认使用vi作为他们编辑的接口。vim是进阶版的vi,vim可以视为一种程序编辑器。
复制letc/passwd文件到自己的目录下(不要直接修改letc/passwd),后面使用passwd文件演示 vim命令
下载vim: sudo apt-get install vim
●用法1: #vim文件路径
含义:打开指定的文件
●用法2: #vim +数字文件的路径
含义:打开指定的文件,并且将光标移动到指定行
●用法3: #vim +/关键词文件的路径
含义:打开指定的文件,并且高亮显示关键词
●用法4: #vim文件路径1文件路径2文件路径3
含义:同时打开多个文件
二、vim三种模式
vim 中存在三种模式:命令模式、编辑模式(输入模式)、末行模式。
●命令模式:打开文件之后默认进入该模式,可以输入快捷键进行一些操作:删除、复制、粘贴、移动光标等
●编辑模式:可以对文件的内容进行编辑
●末行模式:可以在末行输入命令来对文件进行操作:搜索、替换、保存、退出、撤销、高亮等
模式切换按键说明:
●进入编辑模式:
i: insert,光标处
l:行首(第一个非空字符)
a: append,下一个字符o
A:行尾
o: open,下边插入一空行
O:上边插入一空行
s: subst,取代当前字符
S:取代当前行
●退回命令模式:[Esc]
●进入末行模式:
:
/或?:进入末行模式,后面接字符串进行查找
●退出vim:
q:退出
wq:保存并退出
q!:强制退出
x:文件没有修改时直接退出,在文件修改的情况下保存并退出(不要使用×,×是文件进行加密)
异常退出:在编辑文件之后并没有正常wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出
解决办法:删除隐藏的临时文件(以.swp结尾)
三、命令模式
打开文件之后默认进入该模式
1.光标移动
●光标上下左右移动: 方向键 或kjhl
●光标上下左右移动指定行或字符: [数字]方向键 或[数字]kjhl
●光标移动到行首: ^
●光标移动到行尾: $
●光标移动到首行: gg
●光标移动到末行: G
●<font color='cornflowerblue'>自动格式化程序: gg=G</font>
●光标移动到指定行: [数字]G 或[数字]gg
●向上翻屏:按键ctrl+ b 或PgUp
●向下翻屏:按键ctrl + f 或PgDn
2.复制/粘贴/剪切
●复制光标所在行: yy
●光标所在行的下一行新开一行粘贴(paste) : p
●以光标所在行为准(包含当前行),向下复制指定的行数: [数字]yy
●剪切/删除光标所在行(剪切了不粘贴就是删除)(delete) : dd
●剪切/删除光标所在行为准(包含当前行),向下剪切/删除指定行 :[数字]dd
●剪切/删除光标所在的当前行之后的内容:D
●可视化操作(view) : v(可视模式).V(可视行)、ctrl +v(可视块),然后按下方向键来选中需要操作的区块按下y复制或按下d删除
3.撤销/恢复
●撤销(undo) : u 或者:u(末行模式)
●恢复(取消)之前的撤销操作: ctrl + r
四、末行模式
1.保存与退出文件
●保存操作(write)
●保存::w
●另存为::w路径
●退出(quit) : :q
●保存并退出: :wq
●强制执行:!
●不保存,强制退出::q!
●文件没有修改时直接退出,在文件修改的情况下保存并退出(不要使用×,X是文件进行加密): x
2.查找与替换
●查找:l关键词或?关键词
●在搜索结果中切换上/下一个结果(next) : N/n
●替换
●替换光标所在行第一条原数据::s/原数据/新数据
●替换光标所在行全部原数据::s/原数据/新数据/g
●替换整个文件每行第一条原数据: :%s/原数据/新数据
●替换整个文件全部原数据::%s/原数据/新数据/g
●符号含义:
%表示整个文件
g表示全局(global)
3.显示行号
●显示行号(临时)(number) : :set nu
●取消显示行号: :set nonu
4.执行shell指令
●执行shell指令*: :![shell指令]
举例: :!ls /
当外部命令执行结束之后按下任意键回到vim
5.*切换文件
●查看当前已经打开的文件名称: :files
●切换指定文件: :open已经打开的文件名
●切换到上一个文件(back prev) : :bp
●切换到下一个文件(back next) : :bn
五、vim的配置
●临时配置:末行模式下输入的配置
●全局配置文件(vim自带) : letc/vim/vimrc
●个人配置文件(优先级更高): ~l.vimrc