Vim
三种模式
1、命令模式(打开文件的默认模式)
2、编辑模式
3、末行模式
命令模式:移动、复制、粘贴、删除等
编辑模式:对文件内容进行编辑
末行模式:搜索、替换、保存、退出、撤销、高亮等
打开文件方式
#vim 文件路径 【打开指定文件】
#vim +数字 文件路径 【打开指定文件,并将光标移动到指定行】
#vim +/关键字 文件路径 【打开指定文件,并高亮显示关键字】
#vim 文件路径1 文件路径2 文件路径3...... 【打开多个文件】命令
命令模式
光标移动
1、行首:shift + 6 或(^)
2、行尾:shift + 4 或($)
3、首行:gg
4、末行:G
5、翻屏:
向上翻屏:Ctrl + b (before) 或 按键:PgUp
向下翻屏:Ctrl + f (after) 或 按键:PgDn
光标快速移动
1、快速移动光标到指定行:数字 G
2、以光标所在行为准向上/向下移动n行:数字 ↑ / 数字 ↓
3、以光标所在行为准向左/向右移动n个字符:数字 ← / 数字 →
4、末行模式下,快速移动:按下“ :” 数字,再按回车键
剪切/删除
1、剪切/删除光标所在行:
dd 【删除之后下一行上移】
2、剪切/删除光标所在行为准(包含当前行),向下剪切/复制指定行数:
数字 + dd 【删除之后下一行上移】
3、剪切/删除光标所在行,但删除之后下一行不上移:
D
复制
1、复制光标所在行:
yy
粘贴复制的内容:p
2、以光标所在行为准(包含当前行),向下复制指定行数:
数字 + yy
3、可视化复制:
Ctrl + v,按上、下、左、右方向键来选择需要复制的内容
粘贴(p键)
撤销/恢复
1、撤销:u 或 :u (undo)
2、恢复:Ctrl + r (recover)
模式间切换
命令模式 → 末行模式:按下“ :”
末行模式 → 命令模式:1、按1下esc
2、按2下esc
3、删除末行模式中所有命令
命令模式 → 编辑模式:按下 i、a 等
编辑模式 → 命令模式:按1下esc
末行模式
保存
1、直接保存:“:w”
2、另存为:“:w 路径”
退出
:q
保存并退出
:wq
强制
强制退出,做的修改不做保存
!
调用外部命令(了解)
! 调用的命令
搜索
/ 关键字
搜索结果中切换上一个结果:N
搜索结果中切换下一个结果:n(next)
搜索结果,退出后不需要高亮显示,使用指令—— :nohl(no highlight)
替换
1、:s/要替换的内容/新的内容 【替换光标所在行第一个符合条件的内容】
2、:s/要替换的内容/新的内容/g 【替换光标所在行全部符合条件的内容】
3、:%s/要替换的内容/新的内容 【替换整个文档每行第一个符合条件的内容】
4、:%s/要替换的内容/新的内容/g 【替换整个文档符合条件的内容】
%表示整个文件
g表示全局(global)
显示行号
:set nu 显示行号
:set nonu 取消显示行号
:set nu 退出编辑后,再进入不会显示行号
扩展:打开多个文件之间的操作
1、查看当前所有打开文件的名称
:files
显示
%a:当前打开的文件
#:上一个打开的文件
2、切换文件
1、:open 文件名称
2、:bn 【切换到下一个文件(back next)】
3、:bp 【切换到上一个文件(back prev)】
编辑模式
进入编辑模式
1、i :在光标所在字符前开始插入(insert)
2、a :在光标所在字符后开始插入(after)
退出编辑模式:esc
实用功能
代码着色
:syntax on 【显示代码着色】
:syntax off 【不显示代码着色】
简易计算器
1、进入编辑模式
2、按下“Ctrl + R”,然后输入“ = ”,此时光标会在最后一行
3、输入需要计算的内容,按下回车即可
Vim配置
1、打开文件的时候,在末行模式下配置(临时配置)
2、个人配置文件(~/.vimrc,如果没有此文件,可以自行创建)
3、全局配置文件(/etc/vimrc)
针对同一项配置,个人配置文件中存在,以个人配置文件为准;如果个人配置文件中不存在,则以全局配置文件为准
异常退出
在编辑文件之后没有正常wq退出。如遇到突然断电情况、终端关闭情况
解决办法:将此过程中系统产生的交换文件(后缀名为.swp)删除即可。
#rm -f .文件名称.swp
别名机制
映射文件:~/.bashrc
alias 使用别名的命令 = "原命令"
编辑别名后,要想别名生效,需要重新登录当前用户
退出方式
vim打开文件后,建议使用 :x 退出文件
1、:x在文件没有修改的情况下,表示直接退出;在文件修改的情况下表示保存并退出
2、如果文件内容没有被修改,:wq保存退出文件修改时间会被更新。:x则不会更新文件修改时间
3、是:x,不要使用:X。:X表示对文件加密,取消文件加密(:X,回车,再回车),密码输入空