什么是vi:

vi是Linux/Unix底下最常用的文本编辑器,可以理解为和Windows下的txt一样,咱们一般操作linux服务器的时候都是没有图形化界面的, 怎么移动光标,到哪个位置,替换修改什么的都得用vi里面的操作

vi有两种模式

命令模式

        进入vi时的默认模式,此模式下所有的用户输入都视为命令 
        用户在此模式下进行搜索、复制、替换等

编辑模式
        用户在此模式下可以编辑文本内容,也就是这个模式下,可以随便输入内容,编辑模式只有一个作用,就是输入内容,其他的查找、粘贴、替换等等都得在命令模式下操作
模式切换

命令模式进入编辑模式:

1
i(当前位置) 
 
1
a(下一位置)
 
1
o(下一行)

       编辑模式进入命令模式:

 
1
esc

       区分编辑模式和命令模式就看左下角有没有insert,左下角如果有insert就是编辑模式。    
下面介绍命令模式常用的操作,注意都是在命令模式下的

退出vi

 
1
2
3
4
5
:q 退出vi
:q! 不保存退出
:wq 保存退出
:x  保存退出
:w 保存

光标定位

 
1
2
3
4
5
6
7
8
9
M 移动光标到页面中央
L移动光标到页面尾处
H移动光标到页面开始处
Ctrl+f向后翻页
Ctrl+b向前翻页
0移动光标到行首
$移动光标到行尾
/:从上往下开始查找,然后按n寻找下一个
?:从下往上开始查找,然后按n寻找下一个

撤销、重复、查找

 
1
2
3
4
/xxx    从上往下开始查找
?xxx    从下往上开始查找
u   撤销
.    重复前一个动作

复制、粘贴、删除

 
1
2
3
4
5
6
7
8
9
10
11
12
13
nyy  复制光标所在的向下n行内容
p    在光标处粘贴复制的内容
ndd  删除光标所在向下n行的内容
ctrl + d   往下翻半屏内容
ctrl + u   往上翻半屏内容
shift + g  到文件末尾
dd         删除整行
:set number  显示行号
:set nonu    取消显示行号
:1,3y 复制第一行到第三行
:1,3d 删除第一行到第三行
:1,3s/str/str_new/g 替换第一行到第三行中的字符串
:%s/str/str_new/g 替换所有行中的字符串

最新文章

  1. HTML5 十大新特性(二)——表单新特性
  2. mfc 在VC的两个对话框类中传递参数的三种方法
  3. [Aaronyang] 写给自己的WPF4.5 笔记22 [3d交互与动画 3/4]
  4. DotNetCore跨平台~Startup类的介绍
  5. windows更新npm
  6. VMware系统运维(十)部署虚拟化桌面 Horizon View 5.2 Connection Server安装
  7. MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题
  8. C Primer Plus 第4章 字符串和格式化输入/输出 编程练习
  9. html input 文本框的一些操作(限制输入...)
  10. YII与Ace Admin 的集成
  11. 磁盘工作原理与IO性能分析
  12. Android 手势锁的实现 让自己的应用更加安全吧
  13. MyBatis 传List参数 nested exception is org.apache.ibatis.binding.BindingException: Parameter 'idList' not found.
  14. 数据库-mysql命令
  15. 安卓开发_浅谈WebView(转)
  16. cacti系列(一)之cacti的安装及配置监控mysql服务
  17. OL6.3 设置本地yum源
  18. stark组件之注册【模仿Django的admin】
  19. java.lang.IllegalArgumentException: Minimum column number is 0
  20. idea 设置代码的颜色

热门文章

  1. 【JMeter4.0学习(五)】JMeter对服务器监控测试脚本开发
  2. Mark指针的指针(**)和链表使用(*&)
  3. hdu1695(容斥 or 莫比乌斯反演)
  4. Python PhatomJS 和Selenium动态加载页面 获取图片内容
  5. Mac标识物理位置算法 import Levenshtein mac列表特征值
  6. Latex: Expression under summation on multiple lines
  7. SpringMVC请求流程
  8. codeforces Gravity Flip 题解
  9. SE16传输配置表数据
  10. 关于ionic开发中遇到的坑与总结