vi编辑器

vi基本概念

vi编辑器简介,被誉为神的编辑器

  • vi编辑器是所有Unix及Linux系统下的编辑器,它的强大不逊色于任何最新的文本编辑器。这里只是简单介绍一小部分指令,会使用的话会大大提高编码效率。Vi也是Linux中最基本的文本编辑器。

vi的基本概念

  • 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(Lastline mode),各模式的功能如下

    1. 命令模式(command mode)

      • 控制光标的移动,字符、字或行的拷贝与删除,进入底行模式或者插入模式
    2. 插入模式(Insert mode)
      • 只有在Insert模式下,才可以进行文字的输入,按【ESC】键可回到命令模式。
    3. 底行模式(lastline mode)
      • 将文件保存或退出vi,也可以设置内部环境,如寻找字符串、列出行号等。

vi基本操作

  1. 进入vi

    • 在终端输入vi及文件名称后,就会进入vi,如果文件名不存在,保存时将会创建该文件。默认状态为命令模式,切换到插入模式才可进行文字的输入。
  2. 切换至插入模式编辑文件
    • 在命令行模式按下字母【i】(insert)即可进入插入模式,此时可编辑文字。
  3. 退出vi及保存文件
    • 在插入模式下,按【ESC】键转到命令模式按一下【:】冒号键进入底行模式
:w      #filename被编辑的文件以filename名字另存。
:wq     #保存并退出
:x      #等同于wq
:q!     #退出不保存

vi命令模式

移动光标

  • 可以使用键盘上的上下左右来移动光标,或者使用vi的移动光标快捷键
h,j,k,l    #对应左下上右
space      #光标右移
Backspace  #光标左移
Ctrl + p   #光标上移
Ctrl + n   #光标下移
Enter      #光标下移
w或W       #光标右移一个字/词至词首
b或B       #光标左移一个字/词至词首
e或E       #光标右移一个字/词至词尾
(          #光标移至句首
)          #光标移至句尾
{          #光标移至段落开头
}          #光标移至段落结尾
nG         #光标移至第n行行首
n+         #光标下移n行
n-         #光标上移n行
n$         #光标移至第n行行尾
H          #光标移至屏幕顶行
M          #光标移至屏幕中间行
L          #光标移至屏幕最后行
0          #光标移至当前行行首
$          #光标移至当前行行尾
G          #光标移至文件最后一行

字符操作

i  #在光标前插入
I  #在当前行首插入
a  #在光标后插入
A  #在当前行尾插入
o  #在当前行之下新开一行插入
O  #在当前行之上新开一行插入
x  #向后删除一个字符
X  #向前删除一个字符
u  #撤销一步
U  #撤销所有更改
c  #剪切
y  #选中
p  #粘贴

行操作

vi 拥有强大的命令组合,所以将命令组合起来之后会有更加强大的效果

^    #行首
$    #行尾
dd   #删除一行
d^   #删除至行首
d$   #删除至行尾
ndd  #删除n行
yy   #复制一行
y^   #复制至行首
y$   #复制至行尾
nyy  #复制n行
p    #将复制行粘贴在光标所在行下方
P    #将复制行粘贴在光标所在行上方

搜索和替换操作

/keyword           #从光标开始处向文件尾搜索keyword
?keyword           #从光标开始处向文件首搜索keyword
n                  #在同一方向重复上一次搜索命令
N                  #在反方向上重复上一次搜索命令
:s/p1/p2/g         #将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g    #将第n1至n2行中所有p1均用p2替代
:%s/p1/p2/g        #将文件中所有p1均用p2替换

vi底行模式

:n1,n2 co n3     #将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3      #将n1行到n2行之间的内容移动到第n3行下
:n1,n2 d         #将n1行到n2行之间的内容删除
:w               #保存当前文件
:e filename      #打开文件filename进行编辑
:x               #保存当前文件并退出
:q               #退出vi
:q!              #不保存文件并退出vi
:!command        #执行shell命令command
:n1,n2 !command  #将command的输出作为n1到n2行的内容覆盖原内容

Linux操作系统基础——vi篇相关推荐

  1. Linux操作系统基础教程

                             Linux操作系统基础教程 福州大学信息学院计算机系 刘延华 2003.2 目 录 前言 2 第一讲 Linux基础 2 一.什么是Linux? 2 ...

  2. linux远程图形操作系统,二、Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面...

    2.Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面 红帽配置Xmanager 远程访问Linux: 1. 修改gdm配置文件,修改内容为粗体部分. /etc/gdm/cus ...

  3. 信创培训第一课:linux操作系统基础

    信创培训第一课:linux操作系统基础 文章目录 信创培训第一课:linux操作系统基础 主要任务: 一.了解什么是 PKS? 了解麒麟桌面版本和麒麟服务器版本的区别 二.掌握云主机的基本操作 使用y ...

  4. 第1课:Linux操作系统基础【DevOps基础培训】

    第1课:Linux操作系统基础 --DevOps基础培训 1. 云主机.公网IP 1.1 公网ip和私网ip 只有公网ip是能够连接互联网的,私网IP 一般只用作局域网 我们能够上网靠的是isp组织分 ...

  5. Linux操作系统基础 Intel32位系统架构总览

    前言 说是Linux操作系统基础,其实应该是Intel IA-32架构,但是以学习Linux操作系统为目的,故而称为<Linux操作系统基础>.本部分开始主要讲解80x86保护模式下基本概 ...

  6. linux基础操作与实践,Linux操作系统基础与实践

    <21世纪高等院校计算机网络工程专业规划教材:Linux操作系统基础与实践>由清华大学出版社出版. ¥19.18定价:¥29.50(6.51折) /2014-06-01 <Linux ...

  7. linux远程执行迷路,linux操作系统基础

    Linux的基本原则 1.由目的单一的小程序组成:组合小程序完成复杂任务 2.一切皆文件 3.尽量避免捕获用户接口 4.配置文件保存为纯文本格式 linux操作系统基础及常用命令 在bash下一般管理 ...

  8. Linux操作系统基础知识学习

    Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...

  9. linux操作系统基础命令-2

    CentOS7 linux操作系统基础命令-2 1.在linux 操作系统中 有内部命令和外部命令之分,使用type命令可以查看该命令是外部命令还是内部命令 . [root@000000 ~]# ty ...

最新文章

  1. 神经网络之 CNN 与 RNN 的关系
  2. 关于计算机视觉的那些论文 | CCF推荐论文导读
  3. WPF异步载入图片,附带载入中动画
  4. phpstorm xdebug remote配置
  5. python库整理:collections.defaultdict
  6. java 程序片段_20个非常有用的Java程序片段
  7. goland idea设置代码自动换行
  8. C语言简洁代码:1006 换个格式输出整数 (15分)
  9. 中年失业都去做什么_2020年失业是种什么体验?这位吉他手去做了外卖小哥,演出时还穿着工作服...
  10. NCC Meetup 2018 Shanghai 活动小结
  11. 估计理论(6):如何确定BLUE?
  12. 如何用java实现阶乘倒数求和_JAVA 阶乘 的倒数求和public class Jiecheng {public static void main(...
  13. 【读书笔记】企业IT架构转型之道 阿里巴巴中台战略思想和架构实战
  14. 51单片机(一)—— 51单片机简介
  15. SPSS Modeler 和spss statistics有什么不同
  16. 小米mini php,小米路由器mini刷华硕固件的教程
  17. echarts3.7.1 用例体验地图
  18. python逻辑量有_python逻辑运算符
  19. 有关AOP术语(织入、增强等)的个人理解
  20. 薄膜电阻和厚膜电阻有什么区别?

热门文章

  1. JavaScript(红宝书)(二)
  2. Oracle索引详解(索引的原理,创建索引,删除索引,修改索引等)
  3. 一键清理Maven失效依赖-脚本+软件
  4. 无盘服务器要开ahci,开启硬盘的ahci模式提升磁盘性能教程
  5. 计算机pe开启网络模块,任意WINPE改造成PXE网启工具-支持UEFI+bios双启动
  6. jmeter参数传递三种方法
  7. matlab多目标遗传算法,MOGA多目标遗传算法Matlab工具箱 NSGA-II
  8. Hadoop及组件的安装
  9. 全球软件开发大会QCon上海2014盛大开幕
  10. 诗以自勉:男儿立志出乡关,不立功名誓不还!埋骨何须桑梓地,人生何处不青山!