vi编辑器是linux系统下的标准正文编辑器,有三种基本模式:命令行模式、插入模式和底行命令模式。

1.命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式或底行命令模式下。

2. 插入模式:只有在这个模式下,才可以做文字输入,按「ESC」键可回到命令行模式。

3.底行命令模式: 将文件保存或退出vi,也可以设置编辑环境,如查找字符串、列出行号等。

一、三种模式的切换

进入vi:vi  filename,刚进入vi编辑器时,处于命令行模式,如下图进行三种模式之间的切换:

vi -r filename  //打开文件(恢复奔溃文件)编辑

vi -R filename  //以只读的方式打开一个文件

二、vi编辑器中的命令

vi编辑器中的命令非常多,无需刻意记忆,只需多在练习中使用,增强熟练度,才能慢慢的把vi编辑器用好用熟练。

1.命令行模式下的命令

(1)光标移动命令

h  左移光标一个字符

l  右移光标一个字符

k  光标上移一行

j  光标下移一行

^  光标移动至行首

0  数字“0”,光标移至文章的开头

G  光标移至文章的最后

$  光标移动至行尾

(2)翻页组合键

Ctrl+f  向前翻屏

Ctrl+b  向后翻屏

Ctrl+d  向前翻半屏

Ctrl+u  向后翻半屏

(3)命令模式下的编辑操作

i  在光标位置前插入字符

a  在光标所在位置的后一个字符开始增加

o  插入新的一行,从行首开始输入

ESC  从输入状态退至命令状态

x  删除光标后面的字符

nx  删除光标后的n个字符

X (大写X)  删除光标前面的字符

nX  删除光标前面的n个字符

dd  删除光标所在的行

ndd  删除光标所在行数后面的n行

yw  复制光标所在位置的一个字

nyw  复制光标所在位置的n个字

yy  复制光标所在位置的一行

nyy  复制光标所在行数后面的n行

p  粘贴

cw  更改光标所在位置的一个字

ncw  更改光标所在位置的n个字

(4)搜索关键字

/关键字  向下搜索关键字

?关键字  向上搜索关键字

n  继续进行同方向的搜索

N  继续进行反方向的搜索

\  搜索特殊字符(* ^ $ [ / \ |),在前面加\转义字符

(5)复原命令

  u  取消最近一次的操作

  U  把当前行恢复成被编辑之前的状态

2.底行命令模式下的命令

:wq  在命令模式下,执行存盘退出操作

:w  在命令模式下,执行存盘操作

:w!  在命令模式下,执行强制存盘操作

:q  在命令模式下,执行退出vi操作

:q!  在命令模式下,执行强制退出vi操作

:e文件名  在命令模式下,打开并编辑指定名称的文件

:n  在命令模式下,如果同时打开多个文件,则继续编辑下一个文件

:f  在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例

:set number  在命令模式下,用于在最左端显示行号

:set nonumber  在命令模式下,用于在最左端不显示行号

:20 <回车>  光标移到第20行的行首

  :/关键字/  向下搜索关键字

  :?关键字?  向上搜索关键字

  全局替换命令

  :! command  执行Shell命令

  :r ! command  读取Shell命令的输出内容并插入文本

  :recover  未正常退出时恢复原文件

:set all  显示所有设置列表

:set list  行结尾符显示$

:set autoindent  正文自动缩进

:set lines=24  设置默认缓冲显示行

三、文本移动和编辑多个文件

1.缓冲区方式的文本移动

用户在用vi编辑器编辑文件时,是在临时编辑缓冲区中进行的。命名缓冲区是表示临时存储的缓存区,就如同windows中的复制和剪切,由字母a-z命名不同的命名缓冲区,可以将不同的内容复制或剪切到不同的命名缓冲区中,回到编辑缓冲区执行粘贴命令,到达文本的移动目的。

(1)从编辑缓冲区到命名缓冲区(复制或剪切)

命令格式:"字母名+行号+操作命令(Y,dd)

(2)从命名缓冲区到编辑缓冲区(粘贴)

命令格式:"字母名+操作命令(P,p)

(3)删除缓冲区

删除缓冲区可以由数字1-9指定,如"25dd,表示把光标所在行的下5行删除并放到2删除缓冲区里。用"2p再粘贴回去。

2.按行操作的文本移动

在底行命令模式下,执行按行操作文本移动。

(1)按行复制(co命令)

  :1,3 co .  把1-3行文本复制到光标所在位置

  :1,3 co 7  把1-3行文本复制到第7行位置

(2)文本块移动(m命令)

  :1,3 m 7  把1-3行文本移动到第7行的位置

(3)文件间的文本移动(w命令)

  :2,5 w filename  把2-5行文本写到另一个新文件中

  :2,5 w >> filename  把2-5行文本追加到另一个文件中

3.编辑多个文件

vi filename1 filename2……  同时打开多个文件进行编辑

:n  编辑下一个文件命令

:e filename3  编辑指定文件

:e #  返回刚才编辑的文件

Linux命令(八)——vi编辑器的使用的更多相关文章

  1. Linux命令之vi/vim(一)

    vi仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但不具备windows下word的排版功能.Vim是Vi improved的缩写,是vi的改进版. vi和vim的区别: 多级撤销.在vi中按u ...

  2. Linux 操作系统下 VI 编辑器常用命令详细介绍

    一.Vi 简介 vi是unix世界中最通用的全屏编辑器,linux中是用的是vi的加强版vim,vim同vi完全兼容,vi就是"visual interface"的缩写.它可以执行 ...

  3. Linux基础(3)- 正文处理命令及tar命令、vi编辑器、硬盘分区、格式化及文件系统的管理和软连接、硬连接

    一.正文处理命令及tar命令 1)  将用户信息数据库文件和组信息数据库文件纵向合并为一个文件1.txt(覆盖) 2)  将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件2.txt(追加) ...

  4. Linux 正文处理命令及tar命令 利用vi编辑器创建和编辑正文文件

    要点回顾 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cp /etc/passwd . cat ./passwd >1.txt cp /etc/group ...

  5. LINUX中,Vi编辑器的几种模式及保存、退出等命令

    vi编辑器有三种模式: 命令模式,编辑模式,末行模式 打开vi后首先是命令模式,用i,o,a等进入编辑模式,按esc退出编辑模式,回到命令模式. 在命令模式下输入:wq表示保存退出,:wq!强制保存退 ...

  6. Linux学习之一--VI编辑器的基本使用

    vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...

  7. Linux下的vi编辑器与gcc工具的使用

    最近在网上找了些视频,自学了一点Linux环境下,C编程的方法. 注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的. vi编辑器有3种模式,命令行模式,插入模式,底行模式. 如果 ...

  8. 【Linux基础】VI 编辑器基本使用方法

    vi编辑器是所有Unix及Linux系统下标准的编辑器.对Unix及Linux系统的任何版本,vi编辑器是完全相同的,它是Linux中最基本的文本编辑器. 第一章vi的三种模式 第二章vi文本编辑器 ...

  9. linux操作系统3 vi编辑器

    知识内容: 1.Linux基础命令复习 2.vi模式和基本操作 3.vi常用快捷键 一.Linux基础命令复习 目录(文件夹)操作 cd 进入目录 (tab自动补全) pwd 查看当前目录 mkdir ...

  10. linux系统之-vi编辑器

    在linux系统使用中,掌握熟练的vi编辑器,可以提高linux工作效率.那么vi编辑器的使用方法有哪些呢? vi编辑器可在绝大部分linux发行版中使用. Vi编辑器的作用:创建或修改文件:维护li ...

随机推荐

  1. Asp.net跨域配置

    <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...

  2. BZOJ 2406 二分+有上下界的网络流判定

    思路: 求出每行的和  sum_row 每列的和   sum_line 二分最后的答案mid S->i  流量[sum_row[i]-mid,sum_row[i]+mid] i->n+j ...

  3. Django html页面 'ascii' codec can't encode characters in position 8-10: ordinal not

    用Django开发的页面,之前用的是python3.X,后来又换成python2.X后各种报错,编码问题,于是在所有python文件开头加了编码:#coding=utf-8 但是后来发现,有些文件加了 ...

  4. jquery插件之倒计时-团购秒杀

      1.1 帮助文档关键字 倒计时 秒杀 timer 1.2.  使用场景 这样的倒计时在购物网站中会经常使用到,比如秒杀,限时抢购,确认收货倒计时. 这个功能并不难实现,就是利用js的定时执行,搜了 ...

  5. RFC1867 HTTP file upload

    RFC1867 HTTP file upload RFC1867 is the standard definition of that "Browse..." button tha ...

  6. C# 如何实现WinForm程序自重启(重新启动自己)

    重启的时间间隔方法 private void Restart() { Thread thtmp = new Thread(new ParameterizedThreadStart(run)); obj ...

  7. vim之快速跳转

    光棍节啦, 淘东西的闲暇上来发vim旅途第一篇日志. 为什么呢? 因为今天是我媳妇的生日, 我用这种只有我知道的方式来纪念一下. ^_^, 宝宝生日快乐! 开篇先说明日志布局, vim学习记录连载中所 ...

  8. dubbo之多版本

    当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用. 可以按照以下的步骤进行版本迁移: 在低压力时间段,先升级一半提供者为新版本 再将所有消费者升级为新版本 然后将剩下的 ...

  9. 招银网络面试题、考点、知识点总结(Java岗)

    java基础 全是基础不用多说肯定考的多,尤其是招银 OOP特性/java语言特性:封装.继承.多态 多态具体的表现:多态应用举例.如何调用父类方法(super).重写和重载(重写父类方法的规则.构造 ...

  10. 【转】虚拟化(三):vsphere套件的安装注意及使用

    vsphere套件里面主要的组件有esxi.vcenter server .vsphere client和vsphere web client. vcenter做为vsphere套件的核心管理成员之一 ...