Vi (Visual Interface)是 Linux下基于Shell 的文本编辑器,Vim (Visual Interface iMproved)是 Vi的增强版本,扩展了很多功能,比如对程序源文件的语法高亮。不管是 Vi 还是 Vim,我们习惯上都管它叫 Vi,但实际上用的更多的是 Vim。

在你的系统里用 alias命令看一下 vi,可以发现用到的其实是vim。

 $alias vi
 alias vi='vim'

所有的Linux系统里会内建 Vi,它就像 Windows里的记事本,我们一般修改系统的配置文件都要用到它,所以虽然第一次用会可能不太习惯,但是我们还是要学会使用它。

用 Vi 打开或者新建一个文件只需要输入命令 vi +[文件名]就可以了,然后就进入了Vi的界面。比如用 Vi打开一个hello.c的文件,命令如下:

 $vi hello.c

因为 Vi 是完全基于 Shell 的,它和 Windows下的编辑器不同,分为三种模式:

对于三种不同模式之间的切换,我做了一张图方便大家记忆,可以看到命令模式是枢纽,在插入模式和末行模式之间切换需要先进入命令模式。

一、命令模式

启动 Vi 后会默认进入命令模式。在命令模式下可以看到最下面有一些信息,比如 "hello.c" 是我们当前编辑的文件名,7L 表示共有 7 行,112 C表示共有 112 个字符。1,1 表示当前光标的位置。

在命令模式下,可以完成的功能主要有:

1、光标移动

2、复制、粘贴、删除

3、查找

4、撤消

二、插入模式

插入模式就是我们正常输入或者修改文件内容的模式了,切换方法有三种:

1、输入 i : 在当前光标输入

2、输入a:在当前光标后输入

3、输入o:在下方插入新的一行

在插入模式下,界面最下方会提示 -- INSERT --

aaarticlea/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==" alt="" data-ratio="1" data-w="1" data-src="https://mmbiz.qpic.cn/mmbiz_png/Gr3LEhZkSDSLORfhib1RvU42nhWTqqKJ9hrP636SKXmVgbIakbWnOzC0zZ2icZ97jFMWCKk5GicvLSeq2bicFT0agQ/640">

三、末行模式

在命令模式下输入 ":" 可以切换到末行模式,在末行模式下,界面最下方有":"提示,这里可以输入我们的命令。

Vi 可以支持的命令非常的多,这里列出几个比较常用的供大家参考:

1、 替换

如果/g 和 /c 要合并使用,可以写成 /gc

2、保存/退出

3、其他命令

最后


Vi 看起来比较复杂,支持的命令也很多,其实最常用的也就几个。Vi的操作靠的是肌肉记忆,把本文中的掌握住基本就够了。

相关阅读

《putty、pscp、psftp 使用教程》

《这么多Linux版本,你究竟该怎么选择?》

《Linux 面试最常问的十个问题》

最新文章

  1. Excel 相对引用与绝对引用
  2. Mina工作原理分析
  3. Java集合系列:-----------02Collection架构
  4. ecshop 团购点击价格变动
  5. 【转】数据库范式(1NF 2NF 3NF BCNF)详解一
  6. 《Apache服务用户身份验证管理》RHEL6.3
  7. Spring学习(21)--- AOP之Advice应用(上)
  8. Codeforces 558E A Simple Task (计数排序&&线段树优化)
  9. 代码精简工具lombok
  10. kali 源
  11. java----牛客练习
  12. php json_encode转换中文乱码
  13. vue-cli创建第一个项目(用git bash解决上下键移动选择问题)
  14. cmp的值到底是0还是1还是-1的问题
  15. html (第四本书第五章参考)
  16. C语言typeof详解
  17. 图片预加载 js css预加载
  18. 关于java泛型的使用方式。。。。
  19. flink和spark stream等框架的对比
  20. haproxy 配置mysql的代理

热门文章

  1. Redis分布式锁的正确姿势
  2. jquery选择时分插件
  3. koa+mysql实现增删改查-全栈之路(001)
  4. python学习24之异常
  5. 2019-2020-1 20199328《Linux内核原理与分析》第十二周作业
  6. zookeeper笔记(二)
  7. css之单位
  8. Centos下安装Docker,并配置国内docker源
  9. 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  10. 使用Xamarin开发即时通信系统 -- 基础篇(大量图文讲解 step by step,附源码下载)...