3种模式:

1) 命令模式:
输入一些命令,比如复制、粘贴、删除等快捷键命令
命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。

       以下是常用的几个命令:i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。

插入模式:
在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

最后行模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序
w 保存文件

移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
  按「ctrl」+「b」:屏幕往"后"移动一页。
  按「ctrl」+「f」:屏幕往"前"移动一页。
  按「ctrl」+「u」:屏幕往"后"移动半页。
  按「ctrl」+「d」:屏幕往"前"移动半页。
  按数字「0」:移到文章的开头。
  按「G」:移动到文章的最后。
  按「$」:移动到光标所在行的"行尾"。
  按「^」:移动到光标所在行的"行首"
  按「w」:光标跳到下个字的开头
  按「e」:光标跳到下个字的字尾
  按「b」:光标回到上个字的开头
  按「#l」:光标移到该行的第#个位置,如:5l,56l。

删除文字

「x」:每按一次,删除光标所在位置的"后面"一个字符。
  「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。
  「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
  「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。
  「dd」:删除光标所在行。
  「#dd」:从光标所在行开始删除#行

复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  「#yw」:复制#个字到缓冲区
  「yy」:复制光标所在行到缓冲区。
  「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
  「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

替换

「r」:替换光标所在处的字符。
  「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

回复上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。

更改

「cw」:更改光标所在处的字到字尾处
  「c#w」:例如,「c3w」表示更改3个字

跳至指定的行

「ctrl」+「g」列出光标所在行的行号。
  「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

Last line mode下命令简介

在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

A) 列出行号

「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

B) 跳到文件中的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

D) 保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来。

E) 离开vi

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。

「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

对于第一次用vi,有几点注意要提醒一下:
1、用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。切换方法:在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC」键。
3、保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的)

总结:

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次编辑移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
: w !sudo tee % 强制保存只读文件
:w!  :强制保存只读文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。

版权声明:本文为CSDN博主「Axn_很优秀」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36802111/article/details/82178414

vi指令----文本编辑工具相关推荐

  1. Linux下的文本编辑工具 - vi

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  2. Linux基础篇学习——vi,vim交互式文本编辑工具

    Linux文本编辑工具 vi,vim 交互式的文本编辑工具 Vi(Visual interface可视化接口) Vim是Vi的增强版(Visual interface Improved) 系统自带教程 ...

  3. Linux常用文本编辑工具及常用指令

    以下工具的使用都是建立在会简单使用正则表达式的基础上,不了解的群攻自己做功课. sed sed是一种流式编辑器,是一种文本编辑工具,以行为单位进行文本操作.sed默认按照basic规则进行匹配. 常用 ...

  4. 2019-8-20 [Linux] 6.Shell的基本操作 查看 改变 列出 阅读开头/结尾 循环查看 阅读工具less 查找文件内容 文本分析工具AWK 文本编辑工具SED文件find 帮助man

    文章目录 6.linuxShell的基本操作 6.1 查看目录和文件 6.1.1 显示当前目录:pwd 6.1.2 改变目录:cd 6.1.3 列出目录内容:ls 1) 查看列表信息 以及详细信息 2 ...

  5. gvim文本编辑工具基本操作

    gVim文本编辑工具基本操作 vi/gvim编辑器的使用 vi是visual的缩写,其意为可视化.它是unix系统文本编辑的标准工具,也是深受用户欢迎的全屏幕编辑程序 利用光标在屏幕上的移动,用户可以 ...

  6. 推荐免费的文本编辑工具

    推荐免费的文本编辑工具 http://calon.weblogs.us/tag/madedit/ Wednesday, November 30th, 2005 DevZoo 列出了一个 Windows ...

  7. redhat linux vim文本编辑工具的笔记

    文本编辑工具:vi, vim 纯文本:         ASCII: 128bits             编码格式:                 01010101,a 7: 1Byte, bi ...

  8. QCOW2 — qemu-img 指令行工具

    目录 文章目录 目录 qemu-img 指令行工具 创建 QCOW2 镜像文件 查看 QCOW2 镜像文件的信息 创建 QCOW2 镜像文件的快照 再次创建 QCOW2 镜像文件的快照 2 删除 QC ...

  9. 基于CKEditor网页富文本编辑工具转PDF文件的技术预研分析报告

    目  录 基于CKEditor网页富文本编辑工具转PDF文件的技术预研分析报告 1 1. 预研背景 4 2. 预研目的和意义 4 3. 预研目标 4 4. 预研技术概述 4 5. 预研技术实现 7 5 ...

最新文章

  1. 开源软件架构总结之——Bash(readline做输入交互式,词法语法分析,进程交互)...
  2. 校招真题练习011 种花(美团)
  3. kettle连接不上es7_kettle8.2连接ElasticSearch7
  4. 张季跃201771010139《面向对象程序设计(java)》第一周学习总结(改)
  5. java中Mark接口_JVM源码分析之Java对象头实现
  6. jmeter自动生成测试报告
  7. Matlab中的各种运算符的用法
  8. 搜狗站长平台多线程推送工具【免码-免VPS】
  9. opencv中calcOpticalFlowPyrLK实现的光流法(Lucas-Kanade Method for Sparse Optical Flow)原理解析 (摘要翻译)
  10. 那么多北漂程序员,到了35岁以后该怎么选择往后的路?
  11. PRISM 扩展Mef 的Export属性为ViewExport
  12. 【vscode插件集】学前端一年,珍藏的 40个 vscode 插件
  13. 网络安全面试题目及详解
  14. 网线直连,Synergy低延迟顺滑共享鼠标键盘
  15. 算法的浪漫 - 相交链表
  16. PayPal Data Scientist 数据科学家面经与工作体验 | 面试笔记
  17. 2022 极术通讯-从NVIDIA自动驾驶芯片Thor,看大芯片的发展趋势
  18. iOS开发--一些开源的学习资源
  19. 春季 3 月 · CSM 认证周末班【提前报名特惠】“全球金牌课程”CST 导师亲授
  20. 招聘岗位:大数据架构师 年薪:25-48W 工作地点:北京

热门文章

  1. 飞桨领航团AI达人创造营0726笔记
  2. 利用快速傅立叶变换,在频域中实现脉冲压缩的matlab仿真程序
  3. 玩switch游戏——马里奥·奥赛德——的发现
  4. 常见问题任务(汇总一)
  5. android 清理缓存动画,android 清理缓存
  6. 暴风云视频平台SDK使用介绍(一)-- 概述
  7. 理解 ConcurrentHashMap
  8. react 替换标签内容_如何在 React 里自定义标签和属性?
  9. 代码整洁之道------它山之玉可以重构:身份证号码解析、验证工具(第一天)
  10. SQL server 查询保留两位小数