所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

但是目前我们使用比较多的是 vim 编辑器。

vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

Vi/VIM的三种模式:

  • 命令模式(Command mode)(一般模式)
  • 输入模式(Insert mode)(a,i,o进入)
  • 底线命令模式(Last line mode)(:)

进入VI:

  • vi file  打开/新建文件,光标置于第1行行首
  • vi file +n  打开文件,光标置于第n行行首
  • vi file +  打开文件,光标置于最后一行行首
  • vi file +/pattern   将表表置于第一个与pattern匹配的字符串处
  • vi -r file   在使用vi时发生系统崩溃,恢复
  • vi file ... file    打开多个文件,依次进行编辑

编辑模式:

  • i,I  插入光标前
  • a,A  插入光标后
  • o,O  插入新的一行
  • r,R   替换
  • r   会替换光标所指的那一个字符
  • R   会一直替换光标所指的文字,直到按下ESC为止

命令模式(一般模式)

一般模式(命令模式):切换行首行尾,第一行最后一行

  • 第一行:gg
  • 最后一行:shift+g
  • 行首:Home键,shift+^
  • 行尾: End键,shift+$
  • 切换到指定行:ngg,n为指定行号
  • (   光标移至句首
  • )   光标移至句尾
  • {   光标移至段落结尾
  • }   光标移至段落开头

一般模式:块选择

  • v  字符选择
  • V  行选择
  • ctrl+v   块选择
  • y   复制已选
  • d   删除已选

一般模式:删除

  • x 删除当前光标所在处的字符,向后删除
  • X 向光标前删除一个字符
  • dd 删除游标所在的那一整行(常用)
  • ndd  删除光标所在的向下n行
    • 3dd 向光标所在的向下3行(包含光标所在的行和下面2行)
  • d1G  删除当前行至第一行
  • dG   删除当前行至最后一行
  • d$    删除光标至行尾
  • d0    删除光标至行首

一般模式:移动到某行

  • ngg  切换到指定行,n为指定行号
  • n[Enter]    n为数字,向下移动n行
  • H   光标移到当前窗口最上方那一行
  • M   光标移到当前窗口中间的那一行
  • L    光标移到当前窗口最下方那一行

一般模式:复制粘贴

  • yy   复制当前行
  • nyy   复制当前行和向下n行(总共n行)
  • p   在下一行粘贴
  • P    在上一行粘贴

一般模式:撤销

  • u:撤销
  • Ctrl+r  重做上一次操作
  • .     重复前一个操作

底线命令模式

底线命令模式:行号

  • :set nu  显示行号
  • :set nonu   取消显示行号

底线命令模式:退出

  • :w  保存文件
  • :wq   保存并退出
  • :q   退出不保存
  • :q!   强制退出
  • :w [file]   另存为file
  • :r [file]   读取file插入
  • :n1,n2 w[file] 将n1至n2行的内容,另存为file
  • :! command  暂时离开vi,执行命令

底线命令模式:查找和替换

  • /word  向下搜索word,按n重复向下
  • ?word  向上搜索word,按N重复向下
  • :%s/A/B/g    把A全部替换为B
  • :n1,n2s/A/B/g[c]   在n1,n2之间搜索A并替换为B,c参数可以一个一个确认

最新文章

  1. Raft 为什么是更易理解的分布式一致性算法
  2. Jackson轻易转换JSON
  3. javascript数据结构和算法
  4. python pyqt4 ide eric安装
  5. 【堆栈应用一】一个数divided=几个最小质因数的乘积(时间复杂度On)
  6. 【转载】张逸--ThoughtWorks(中国)程序员读书雷达
  7. 20个简化开发任务的 JavaScript库
  8. android电池管理系统从上层的java到底层驱动的调用(转载)
  9. 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md
  10. thread.join函数,java多线程中的join函数解析
  11. OC - 19.GCD
  12. bzoj2597: [Wc2007]剪刀石头布
  13. 从0开始LInux配置PHP开发环境
  14. 前端面试题之css
  15. [Codeforces 864E]Fire
  16. Portlet开发入门实例
  17. ASP.NET Core Middleware 抽丝剥茧
  18. SQL Server 查询某个字段值在哪张表的哪个字段
  19. EasyPopup
  20. jmeter如何玩之badboy + jmeter并发性能测试

热门文章

  1. PTA 7-42 整型关键字的散列映射(手写哈希表的线性探测法)
  2. Nginx知多少系列之(五)Linux下托管.NET Core项目
  3. Spring(三):bean的自动装配
  4. flask-宏
  5. linux美化网址
  6. Vue-router 第5节 vue-router利用url传递参数
  7. python3(二十七)property
  8. SIM900A 通过RS232串口进行短信的发送。
  9. ElasticSearch 常用查询语句
  10. Redis分布式锁的实现以及工具类