vi和vim命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。vim编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。
vim其实是vi的升级版
那么vi与vim有什么区别?
  vi不显示高亮颜色语法
  vim显示高亮颜色语法。
  其他功能没有什么区别。
所以在linux系统下,使用vi还是vim取决个人习惯。
如果在刚装完的CentOS操作系统下没有vim这个命令,用如下方式进行安装即可

yum install -y vim-enhanced

Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式

命令模式: 控制光标移动, 可对文本进行复制、粘贴、删除等工作。
使用vim filename 编辑一个文件时,一进入该文件就是命令模式了。
在这个模式下,可以进行光标移动、复制、删除、粘贴操作。 编辑模式: 正常的文本写入。
从命令模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R)。
当进入编辑模式时,会在屏幕的最下一行出现“INSERT的字样。
从编辑模式回到命令模式只需要按键盘左上方的 ESC 键即可。 末行模式: 保存或退出文档,以及设置编辑环境
在命令模式下,输入 ":" 或者 "/" 即可进入末行模式。
在该模式下,可以进行的操作有,显示行号、搜索、替换、保存、退出。

VIM命令模式

命令行模式:(默认打开文件进入的是命令行模式)

//命令光标跳转
G 跳转光标至末端
gg 跳转光标至顶端
Ngg 跳转光标至当前文件内的22行
$ 将当前光标跳转至光标所在行的末端(尾部)
^ 将当前光标跳转至光标所在行的头部 —> 数字0 可实现类似效果 //文件内容较多
ctrl+f 往下翻页(行比较多)
ctrl+b 往上翻页 //复制
yy复制当前光标所在的行
5yy复制当前光标以及光标向下4行 //粘贴
p(小写) 粘贴至当前光标下一行
P(大写) 粘贴至当前光标上一行 //删除
dd 删除当前光标所在的行
4dd 删除当前光标所在的行以及往下的3行
dG 删除当前光标以后的所有行
D 删除当前光标及光标以后的内容
x 删除当前光标标记往后的字符
X 删除当前光标标记往前的字符 //剪贴
先删除dd(number dd),后粘贴p //撤销
u 撤销上一次的操作(类似windows下的ctrl+z) //替换
r 替换当前光标标记的单个字符
R 进入REPLACE模式, 连续替换,ESC结束

VIM编辑模式

编辑模式(从命令行模式进入到编辑模式)

i   进入编辑模式,光标不做任何操作
I 进入编辑模式,并且光标会跳转至本行的头部
a 进入编辑模式,将当前光标往后一位
A 进入编辑模式,将光标移动至本行的尾部
o 进入编辑模式,并在当前光标下添加一行空白内容
O 进入编辑模式,并在当前光标上添加一行空白内容

VIM末行模式

末行模式主要用于搜索, 保存, 退出文件, 还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数

末行模式(必须退回到命令行模式)

E37: No write since last change (add ! to override)
:w 保存当前状态
:w! 强制保存当前状态
:q 退出当前文档(文档必须保存才能退出)
:q! 强制退出文档不会修改当前内容
:wq 先保存,在退出
:wq! 强制保存并退出
:x 先保存,在退出
ZZ 保存退出, shfit+zz
:number 跳转至对应的行号

末行模式(查找和替换)

查找  /string 需要搜索的内容(查找)
n 按搜索到的内容依次往下进行查找
N 按搜索到的内容依次往上进行查找
替换
:1,5s#sbin#test#g 替换1-5行中包含sbin的内容为test
:%s#sbin#test#g 替换整个文本文件中包含sbin的替换为test
:%s#sbin#test#gc 替换内容时时提示是否需要替换 另存
:w /root/test 将文件所有内容另存为/root/test 读入
:r /etc/hosts 读入/etc/hosts文件至当前光标下面
:5r /etc/hosts 指定/etc/hosts文件当前文件的哪行下面

VIM视图模式

视图模式(从命令行模式进入视图模式)
ctrl+v 进入VISUAL BLOCK 选中需要注释的行(可视块模式)   1.插入:按shift+i进入编辑模式,输入#,结束按ESC键   2.删除:选中内容后,按x或者d键删除   3.替换:选中需要替换的内容, 按下r键,然后输入替换后的内容 shift+v 进入VISUAL LINE 选中行内容(可视行模式)   1.复制:选中行内容后按y键及可复制。   2.删除:选中行内容后按d键删除。

VIM扩展知识

1.如何同时编辑多个文件
vim -o file1 file2 水平分割
vim -O file1 file2 垂直分割
//ctrl+ww 文件间切换
2.相同文件之间差异对比
diff 文件对比(用的不多)
vimdiff 以vim方式打开两个文件对比,标记不同的内容
3.如果VIM非正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
//删除同文件名的.swp文件即可解决
.filename.swp rm -f .filename.swp

  

最新文章

  1. MFC消息映射机制以及画线功能实现
  2. 【BZOJ 3049】【USACO2013 Jan】Island Travels BFS+状压DP
  3. jQuery—一些常见方法(1)【filter(),not(),has(),next(),prev(),find(),eq(),index(),attr(),】
  4. R语言学习笔记:怎么从txt中读入数据
  5. 【转】Android源码下载过程的一些注意事项
  6. django 调试 监控文件变化 自动刷新浏览器
  7. 分享一个图片上传插件(TP5.0)
  8. ASP.NET三层架构项目创建流程
  9. PHP秒杀系统 高并发高性能的极致挑战(完整版)
  10. ISAPI筛选器及对ASP源文件的保护
  11. Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令
  12. MySQL无损复制(转)
  13. 将本地项目上传到gitlab下
  14. day037 行记录的操作
  15. beanshell获取响应结果数据
  16. Bootstrap 样式设计 栅格系统
  17. JUnit 3一个例子就懂
  18. JProfiler 简要使用说明
  19. 20165203《Java程序设计》第八周学习总结
  20. SDWebImage支持WebP格式图片

热门文章

  1. hbase 过滤器属性及其兼容性
  2. BZOJ 3230 相似子串 | 后缀数组 二分 ST表
  3. 主流图片加载框架 ImageLoader、Glide、Picasso、Fresco 对比
  4. NOIP2015D2总结
  5. 【树状数组】【P4113】[HEOI2012]采花
  6. RabbitMQ 运转流程
  7. servlet解析
  8. Spss22安装与破解步骤
  9. 在阿里云上无法使用mailx发送邮件的解决办法,验证可用。
  10. python中的模块及路径