IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Linux_vi高级操作技巧 -> 正文阅读

[开发工具]Linux_vi高级操作技巧


vi是linux中非常强大的文本编辑器,必须对该命令的各种操作都达到熟悉的地步,才能更好的展开学习工作。本文仅记录了常用的一些操作。

一、vi简介

vi 编辑器是 Linux/UNIX 环境下经典的编辑器,vi 可以执行输出、删除、查找、替换、块操作等众多文本操作,另外,vim 是 vi 的增强版,与 vi 编辑器完全兼容,所以此处仅记录vi的使用操作。

二、vi工作模式及切换

vi 编辑器有 3 种基本工作模式,分别是命令模式、文本输入模式和末行模式

  • 命令行模式
    使用 vi 命令进入 vi 编辑器状态下的模式,或者在其他模式下按下Esc键也可进入命令模式。该模式下用户可以执行命令,详见下文。
  • 末行模式
    在命令模式下,用户按 键即可进入末行模式下,此时 vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个 作为末行模式的说明符,等待用户输入命令。该模式下,用户可以做一些与输入文字无关的事,入搜索字符串、替换关键词等。末行命令执行完后,vi 自动回到命令模式。
  • 文本输入模式
    命令模式下点击键盘上的 [aoi ]等键,就会进入该模式。在该模式下,用户输入的任何字符都被 vi 当做文件内容保存在该文件中,并将其显示在屏幕上。按下Esc键,即可回到命令模式下。

三、vi的基本使用方法

1. vi的进入、保存、退出

进入:vi filename
保存退出需在末行模式下进行操作,末行模式下输入如下字符
:q   表示直接退出,但是若在文本模式下修改过内容则不能直接退出,即该命令生效条件是,未对文件内容进行任何的编辑操作
:wq  保存该文件后退出
:x   同:wq一样,保存该文件后退出
:q!  不保存内容,强制退出。如:在误修改文件内容后,执行该命令会忽视修改操作,直接退出vi,即文件内容未被修改,与编辑前保持一致。适用于误操作

2. 光标移动操作(重要)

vi中光标的移动既可以在命令模式下,也可在文本模式下,不过方法不尽相同
文本模式下:四个方向键
命令模式下:四个方向键以及如下。注:以下命令在屏幕没有回显
h  左移。若在按h前,按下数字n,则光标左移n个字符
j  下移。若在按j前,按下数字n,则光标下移n行
k  上移。若在按k前,按下数字n,则光标上移n行
l  右移。若在按l前,按下数字n,则光标右移n个字符
0  行首。数字0
$  行尾。
H  屏幕上显示的第一行,不一定是文件头
L  屏幕上显示的最后一行,不一定是文件尾
gg 光标移动到文件头。连续按两下g键
G  光标移动到文件尾。大写状态下按一下G键
nG 光标移动到第n行
w/W 光标移动到下一个单词的词首(大小写对单词的切割符号是不一样的)
e/E 光标移动到下一个单词的词尾(大小写对单词的切割符号是不一样的)
b/B 光标移动到上一个单词的词首(大小写对单词的切割符号是不一样的)
M  光标移动到屏幕的中间一行
{  将光标向前移至上一个段落的开头。一个段落被定义为是以一个空白行开始和结束的片段
}  将光标向前移至下一个段落的开头
末行模式下光标在整个文件中的移动
:0 光标移动到文件的第1行
:$ 光标移动到文件的最后一行
:n 光标移动到文件的第n行

3. 文本插入操作

以下操作会从命令模式切换到文本输入模模式
3.1 插入insert命令
i  插入文本从光标所在位置前开始
I  将光标移到当前行的行首,然后在其前插入文本
3.2 附件append命令
a  在当前光标所在位置之后追加新文本
A  将光标移到当前行的行尾,然后在其后追加新的文本
3.3 打开open命令
o  在光标所在行的下面新开一行,并将光标置于该行的行首,等待输入文本
O  在光标所在行的上面新开一行,并将光标置于该行的行首,等待输入文本

4. 文本的修改

均需在命令行模式下

4.1 文本删除、移动
x   删除光标处的字符。若在x之前加上数字n,则删除从光标所在位置开始向右的n个字符。
X   删除光标前面的那个字符。若在X之前加上数字n,则删除从光标前面那个位置开始向左的n个字符。
dd  删除光标所在的整行。若在dd前加上数字n,则删除当前行及其后的n-1行的内容
d$或D  两者功能一样,删除从光标所在处开始到行尾的内容
d0  删除从光标前一个字符开始到行首的内容
dw  删除一个单词。若光标在某个词的中间,则从光标位置开始删至词尾。若在dw前加上数字n,则删除n个指定的单词

4.2 文本复制、粘贴
yy 复制光标所在的整行。若在yy前加上数字n,则复制当前行及其后的n-1行的内容
p  粘贴。
// dd,yy,p 类似于Windows下的剪切、复制、粘贴

4.3 取消上一命令undo,恢复到误操作之前的状态
u  取消刚才输入的命令。继续多次按u,类似于WPS中一致按ztrl+z,会一直回退,不管被编辑了多少次 
U  取消刚才输入的命令。只能回退一次,即按一次大写U,回退到刚才的状态,再按一次大写U,就又到现在的状态了。

4.4 重复命令 redo
重复命令只能在命令模式下工作,效果是再执行一次刚完成的命令。结果是依赖光标当前位置的
. 即命令模式下按“.”即可

5. 文本的搜索与替换

末行模式下进行操作,有回显

5.1 搜索
/  从光标位置处向文件尾方向搜索
? 从光标位置处向文件头方向搜索
若输入的模式被找到,光标会停在找到的模式上。
n  继续搜索下一个匹配的模式
N  找到上一个匹配的模式
5.2 替换 (所有的文本替换操作均以 : 开头)
:s/text1/text2    将匹配到的第一个text1替换成text2
:s/text1/text2/g  将所有的text1替换成text2
:m,ns/text1/text2/g  将从m行开始到n行结束的所有的text1替换成text2。$代表末行,所以 :1,$s/text1/text2/g 会将文件内所有的text1替换成text2

6. 高级应用技巧

末行模式

:set nu      显示行号
:set nonu    关闭显示行号功能
:set ic      忽略大小写,主要是为了方便搜索
:set noic    不忽略大小写
:syntax on   打开关键字高亮显示功能
:syntax off  关闭高亮显示
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:45:36  更:2022-03-08 22:45:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:43:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码