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/vim(一)
vi仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但不具备windows下word的排版功能.Vim是Vi improved的缩写,是vi的改进版. vi和vim的区别: 多级撤销.在vi中按u ...
Linux 操作系统下 VI 编辑器常用命令详细介绍
一.Vi 简介 vi是unix世界中最通用的全屏编辑器,linux中是用的是vi的加强版vim,vim同vi完全兼容,vi就是"visual interface"的缩写.它可以执行 ...
Linux基础(3)- 正文处理命令及tar命令、vi编辑器、硬盘分区、格式化及文件系统的管理和软连接、硬连接
一.正文处理命令及tar命令 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件1.txt(覆盖) 2) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件2.txt(追加) ...
Linux 正文处理命令及tar命令 利用vi编辑器创建和编辑正文文件
要点回顾 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cp /etc/passwd . cat ./passwd >1.txt cp /etc/group ...
LINUX中,Vi编辑器的几种模式及保存、退出等命令
vi编辑器有三种模式: 命令模式,编辑模式,末行模式 打开vi后首先是命令模式,用i,o,a等进入编辑模式,按esc退出编辑模式,回到命令模式. 在命令模式下输入:wq表示保存退出,:wq!强制保存退 ...
Linux学习之一--VI编辑器的基本使用
vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...
Linux下的vi编辑器与gcc工具的使用
最近在网上找了些视频,自学了一点Linux环境下,C编程的方法. 注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的. vi编辑器有3种模式,命令行模式,插入模式,底行模式. 如果 ...
【Linux基础】VI 编辑器基本使用方法
vi编辑器是所有Unix及Linux系统下标准的编辑器.对Unix及Linux系统的任何版本,vi编辑器是完全相同的,它是Linux中最基本的文本编辑器. 第一章vi的三种模式 第二章vi文本编辑器 ...
linux操作系统3 vi编辑器
知识内容: 1.Linux基础命令复习 2.vi模式和基本操作 3.vi常用快捷键 一.Linux基础命令复习 目录(文件夹)操作 cd 进入目录 (tab自动补全) pwd 查看当前目录 mkdir ...
linux系统之-vi编辑器
在linux系统使用中,掌握熟练的vi编辑器,可以提高linux工作效率.那么vi编辑器的使用方法有哪些呢? vi编辑器可在绝大部分linux发行版中使用. Vi编辑器的作用:创建或修改文件:维护li ...
随机推荐
django 一些相关问题
这两天在处理django项目时碰到一些问题 1.ur路径设置要忽略大小写,查找了很多资料,都没有发现相关的介绍,最后在谷歌上找到一个解决方案,/for ...
MATLAB 图像分类 Image Category Classification Using Bag of Features
使用MATLAB实现图像的识别,这是MATLAB官网上面的例子,学习一下. /help/vision/examples/image-category-cl ...
beanutils获取带参数get方法
public Employee getEmployee(int index) { return new Employee(); } 1.PropertyUtils.getIndex ...
【模板】可持久化文艺平衡树-可持久化treap
题目链接 题意 对于各个以往的历史版本实现以下操作: 在第 p 个数后插入数 x . 删除第 p 个数. 翻转区间 [l,r],例如原序列是 \(\{5,4,3,2,1\}\),翻转区间 [2,4] ...
qt tcp 通信实例
#include "mainwindow.h" #include "ui_mainwindow.h" #include ...
hdoj1160 FatMouse's Speed 动态规划
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) ...
redis windows 版配置使用
网上下载windows版的redis 在D盘新建redis目录 把下载的redis压缩包解压到redis目录,如图: 打开配置文件 redis.windows.conf 把 SECURITY下的req ...
ECNU 10月月赛 E 盖房子 (bitset + 倍增)
题目链接 ECNU Monthly .10 Problem E 从开场写到结束…… 显然要把三角形分成上下两部分. 把每一部分分成三部分,以上部分为例. 上面和右边,以及左下角的正方形. 也 ...
取当前时间,格式为,yyyy-mm-dd hh:mm:ss
function CurentTime() { var now = new Date(); var year = now.getFullYear(); //年 var month = now.getM ...