vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器。看了不少关于vi的资料,终于得到这个总结。
首先,记住vi编辑器的两个模式:1、命令模式 2、编辑模式
在一个UNIX/Linux的shell命令或者一个以斜杠(/)、问号(?)或冒号(:)开始的vi命令后面用户需要键入回车键,而要切换到vi命令模式需要按Esc键。注意,以冒号(:)或者斜杠(/) 开始的vi命令会显示在屏幕底部,但其他命令都不会显示在屏幕上。
打开、写入和关闭文件(使用Enter键)
vi file       打开文件名为file的文件(UNIX shell命令)
:w        将工作缓冲区的变化写入默认文件中
:w file       将工作缓冲区的变化写入名为file的文件中
:q         退出vi编辑器
:wq        将工作缓冲区的变化写入文件并退出
:q!        不将工作缓冲区的变化写入文件并退出vi编辑器
插入文本(vi命令模式下使用)
a        在当前光标位置的右边添加文本
i        在当前光标的左边插入文本
A        在当前行的末尾添加文本
I        在当前行的开始出添加文本
O        在当前行的上面新建一行
o        在当前行的下面新建一行
R        替换(覆盖)当前光标位置以及以后的若干文本
J         连接光标所在行以及下一行,成为一行
移动光标
上下左右方向键     向箭头所示方向移动光标一个位置
h            向左
j            向下
k            向上
l            向右
空格键          向右
Backspace        向左
Enter          向下移动到下一行的行首
-(连字符键)      向上移动到上一行的行首
纠正错误(vi命令模式下使用)
x        删除一个字符
dd        删除当前行
ndd       上除当前行在内的n行
u        撤销上一次操作(最后一步)
U        撤销对当前行的所有操作
拼写检查(UNIX shell命令)
spell file       显示问及那file中找到的拼写错误
ispell file       显示问及那file中找到的拼写错误
搜索(vi命令模式下使用)
/word      向前搜索第一个出现的word
/         继续向前搜索下一个word
?word      向后搜索第一个出现的word
?        继续向后搜索下一个word  
跳跃到指定行(vi命令模式使用)
n+      向前(向下)跳跃n行
n-      向后(向上)跳跃n行
nG      跳跃到行号为n的行,G为Go
G      跳跃到文件的底部
设置行号(vi命令模式下使用)
:set nu      在屏幕上显示行号
:set nonu     取消行号
复制和粘贴(vi命令模式下使用)
"knyy      复制n行到缓冲区"k
"kp       将缓冲区"k的内容粘贴到当前行的下面
全局替换文本(vi命令模式下使用)
:%s/old/new/g      用new替换文件中的所有old。s为substitution,替换的意思。g为global。
编辑另一个文件(vi命令模式下使用)
:e otherfile      编辑文件名为otherfile的文件
为命令行编辑制定一个编辑器(UNIX shell命令)
bindkey -v      指定vi编辑器(用于 tcsh)
VISUAL=vi      指定vi编辑器(用于 ksh)
set -o vi       指定vi编辑器(用于 bash)
 缓冲区:  
前面讲过,vi编辑器设计上是对工作缓冲区的文件副本进行编辑。在使用vi编辑器的时候,用户还可以访问其他缓冲区。总共有36个缓冲区。
◆ 未命名缓冲区
◆ 已命名缓冲区 "a、"b、"c、……、 "z
◆   已编号缓冲区 "1、"2、"3、……、 "9
未命名缓冲区有时也叫做一般缓冲区。在修改文本时,旧文本并没有被立刻删除。vi将旧文本放在未命名缓冲区直到用户删除修改更多的文本。这样就可以实现撤  销,具体命令为 u。因为vi只有一个未命名缓冲区,所以只能撤销一次。
命令模式和编辑模式的切换:
如果不清楚当前所在的模式,可以连续按2次Esc键盘,主机会发出警报声,这样就肯定进入了命令模式。在命令模式下面,输入a A i I O o R都会进入编辑模式。所输入的这单个字符不会显示,也不会插入到文件中。

本文出自 “Eric Chen” 博客,请务必保留此出处http://skycyc23.blog.51cto.com/231267/352596

转载于:https://www.cnblogs.com/likeju/p/4765865.html

教你学会Linux/Unix下的vi文本编辑器相关推荐

  1. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    首先,记住vi编辑器的两个模式:1.命令模式 2.编辑模式.  在一个UNIX/Linux的shell命令或者一个以斜杠(/).问号(?)或冒号(:)开始的vi命令后面用户需要键入回车键,而要切换到v ...

  2. linux 下 任务管理器,Linux/Unix下的任务管理器-top命令

    Windows下的任务管理器虽然不好用(个人更喜欢Process Explorer些),但也算方便,可以方便的查看进程,CPU,内存...也可以很容易的结束进程 没有图形化界面下的Linux,也有命令 ...

  3. 修改linux下全局数据库名,linux/unix下修改oracle数据库实例名的方法

    linux/unix下修改oracle数据库实例名的方法 2018年12月10日 | 萬仟网IT编程 | 我要评论 linux/unix下修改oracle实例名的方法 1.检查原来的数据库实例名 $ ...

  4. 在linux下怎么安装mysql,手把手教你在Linux系统下安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1. 下载并安装MySQL官方的 Yum R ...

  5. Linux/Unix下的任务管理器-top命令

    Linux/Unix下的任务管理器-top命令 Posted on 2012-07-11 09:14 fengyv 阅读(15453) 评论(1) 编辑 收藏 Windows下的任务管理器虽然不好用( ...

  6. Linux/Unix下tar命令详解

    tar命令是Linux/Unix系统下的打包压缩工具,可以将多个文件合并为一个文件,打包后的文件后缀为".tar". 这里首先需要明确两个概念:打包和压缩.打包是指将一大堆文件或目 ...

  7. linux文件字节函数,各位大侠:linux/unix下有什么双字节的字符类型及其一整套处理函数? 高分送出,请帮帮小弟!!!!!!...

    linux/unix下小弟需要操作双字节,相对单字节char 有什么双字节的字符类型及其一整套处理函数,如strstr(),strcpy(),strchr等功能相同的双字节操作函数,它用到什么头文件? ...

  8. linux清理oracle磁盘空间,Linux / Unix 下文件删除、句柄 与空间释放问题

    Linux / Unix 下文件删除.句柄 与空间释放问题 临时表空间,并切换了数据库设置:[oracle@corde tdb]$ ls -sort total 35101212 51264 -rw- ...

  9. linux/unix下telnet提示Escape character is ‘^]‘的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

最新文章

  1. LLVM系列文章1: Debian/Ubuntu 安装和使用 LLVM
  2. 10+小故事揭秘高频「操作系统面试题」
  3. Python中函数的参数定义和可变参数
  4. 什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么
  5. 一台服务器最多能创建多少个 TCP 连接?
  6. linux系统子目录至少,Linux复习题(附答案)
  7. java 同步锁_java线程中的同步锁和互斥锁有什么区别?
  8. JavaScript与 HTML表单的交互过程,想要学习动态网页但是无从下手的新手看看。...
  9. 【mysql系列】细谈explain执行计划之“谜”
  10. pyqt5设置按钮,移上去变为手型
  11. LINUX下载编译libcurl
  12. 深入学习华为云IOT云平台与LiteOS轻量级物联网系统
  13. Ansible 学习总结(6)—— Ansible 19个常用模块使用示例
  14. 从《我不是潘金莲》谈程序员的核心竞争力
  15. 京东android面试题2019,2019京东的面试题(牛客)
  16. C++ 繁华的曼哈顿
  17. 资深前端老司机到底牛逼在哪?
  18. cqp VS bitrate VS crf [学习笔记]
  19. Linux7添加syslog,在CentOS 7.2上使用rsyslog配置syslog server
  20. Centos--时间/日历/计算器

热门文章

  1. linux下oracle 9204 soft only,linux 下oracle 9i的安装
  2. mysql int 优化_MySQL数据类型优化—整数类型优化选择
  3. uilabel 自行撑开高度_UILabel文本高度计算的那些事儿
  4. winform响应时间最长是多少分钟_史上最短职业赛是多少时间?《王者荣耀》中国队只花了三分钟...
  5. ElasticSearch入门 —— 集群搭建
  6. Keras 构建DNN 对用户名检测判断是否为非法用户名(从数据预处理到模型在线预测)
  7. kickstart research
  8. 微信公众号接口添加菜单时错误(errcode:40017 invalid button type)
  9. sim卡rfm_信用卡客户的RFM集群
  10. 嵌入式系统分类及其应用场景_词嵌入及其应用简介