目录
vim初级简书
vim是Unix和类Unix的通用文本编辑器,vi和vim完全兼容,vi一般为系统自带。但vim更为强大也有老师或视频告诉你vi或vim是一个命令,严格意义上来说并不是,但是也可以这样理解。
vim支持强大的快捷键,可以兼容大量的文件格式,支持个性化设置,在vimrc里可以更改你的设置。这些设置包括但是不限于自动补全括号,关键字,对应语言打开自动插入版本作者时间或者头函数的功能,可以批量格式化,语法高亮实现多窗口等。
本期会带领大家怎么入门vim,使我们可以用他去更改配置文件或写一些简单模块。原创不易转载引用请著名出处。
一、安装vim
本文以centos7.5为例
[root@tm ~]# yum install vim //yum包安装
apt-get install vim //ubuntu使用apt包管理工具
[tom@tm tmp]$ vim test.cpp #在当前目录创建test.cpp文件,如果存在就打开
#如果没有就创建
[tom@tm tmp]$ vim /opt/test.cpp#递归指定目录创建
二、一般模式
在命令行直接键入vim不加参数,你所看到的第一眼界面就是一般模式,中间有vim的简述和版本改进和帮助等信息。一般模式是无法键入数据的,在一般模式中你可以使用方向键移动光标,也可以直接使用快捷键或命令处理字符串或者行列数据,下图列出在一般模式中常用的快捷键语法。
语法 | 作用 |
yw | 复制当前光标字符串(单词) |
yny | n为数字,复制一段 |
yy | 复制光标所在段 |
x,X | 剪切字母 |
p | 粘贴 |
dw | 删除当前字符串 |
dd | 删除当前行 |
dnd | 删除光标n行后(包含) |
shift+6 | 光标移动到行头 |
shift+4 | 光标移动到行尾 |
gg | 移动到行首 |
ngg | 移动到n行行首 |
shift+g | 光标移动到行尾 |
G | 移动到行尾 |
三、插入模式
进入插入默认即可直接编辑文件,按下i,o,a,I,O,A其中任何键均可以键入插入模式,不同的插入键的插入位置也不同。
退出插入模式需要按下ESC键,退出后是在一般模式,就是打开vim后的默认模式。插入模式也称为编辑模式,在键入插入模式后编辑器左下角会出现INSERT字样或者REPLACE。
快捷键 | 插入位置 |
i | 光标前 |
a | 光标后 |
o | 下一行 |
I | 行首 |
A | 行尾 |
O | 上一行 |
四、命令行模式(底行模式,指令模式)
命令行模式是vim体现他强大的最重要的一个功能,且可以调用shell和支持正则。进入底行模式我们需要先进入一般模式,建议先习惯性多按几次ESC。然后按 :/ ? 三个中任意键均可进入底行模式。下表将介绍常用底行模式的命令及组合等。
命令 | 用途 |
w | 保存 |
q | 退出 |
wq | 保存退出 |
! | 强制执行 |
/ | 查找关键字 |
set nu | 显示行号 |
set nonu | 关闭行号 |
%s/old/new/g | 查找替换关键字 |
w !sudo tee % | 在不可修改文件中使用tee缓存强制修改 |
w fileName | 未命名文件命名并保存到当前路径 |
w /path/fileName | 未命名新文件指定文件名与路径保存 |
五、vim常见错误处理
在我们使用vim时要注意使用规范,及时保存,避免多线程,避免越权,修改配置及时备份。可以使我们避免很多损失。下表是楼主常遇到的错误以及解决方案参考,后续会有vimEorr专题。
错误代码 | 错误原因 | 建议解决方案 |
E32 | 新建文件未命名就保存 | w /path/fileName |
E37 | 文件做了更改没有保存 | w |
E325 | 异常终止或退出,或者是多用户编辑触发线程保护 | 参考提示,R恢复或根据提示删除缓存文件.file.swp,注意数据安全 |
E492 | 底行命令错误 | 检查语法,拼写,路径等 |
E45 | 只读文件修改 | 参考E212 |
E212 | 权限不足,忘记sudo | 1)新建连接,加权或sudo 2)保存为l临时文件到/tmp下 :w /tmp/fileName 3)调用管道加权限后读取输出新文件 :w !sudo tee % [w写入 ][!调用shell][sudo加权][tee调用管道读取并写入到目标][%代表读取当前文件名] |
E138 | 日常使用错误,如异常关闭或vim配置文件损坏,磁盘占满等都可能产生此错误 | 1)删除 ~/.viminf*.tmp的缓存 2)查看/var磁盘占用,并清理 |
E297 | 磁盘占满 | df -h 查看并清理垃圾文件 物理手段重启自动清理临时文件或加盘 |
注:全文均为原创纯手撕,引用转载请注明出处!