Linux学习(4)——vi/vim编译器基础操作

目录

一、vi编辑器

 1、基本格式

 2、常用选项

二、三种常见模式

2.1 命令模式

2.1.1  退出VIM

2.1.2  光标跳转

2.1.3 复制命令

2.1.4  删除命令 

2.1.5  字符大小写

2.1.6   交换字符位置

2.1.7  粘贴命令

 2.2  输入模式

 2.2.1  切入输入模式

2.3  末行模式

2.3.1  保存与退出

2.3.2   查找并替换

一、vi编辑器

Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。

推荐使用 Vi 文本编辑器的原因有很多,比如说:

  • 几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;

  • Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口

vi与vim之间的区别 

vim是vi的升级版

 1、基本格式

vim    [OPTION]  ... ...
命令   选项          文件

vim  文件名不存在  是新建
vim  文件名存在      就是修改

 如果系统最小化安装vim并没有提前安装,可以使用

yum install vim -y
最小桌面

//后面会介绍这个命令

 2、常用选项

+#  打开文件后,让光标处于第#行的行首,+默认行尾
打开上一次的文件
+/PATTERN让光标处于第一个被PATTERN匹配到的行行首用不多

二、三种常见模式

三种常见模式:

  1. 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本。

  2. 插入(Insert)或编辑模式:用于修改文本。

  3. 扩展命令(extended command )或末行模式:保存,退出等搜索替代。

**命令模式 --> 插入模式**

按键功能
 insert, 在光标所在处输入
I在当前光标所在行的行首输入
aappend, 在光标所在处后面输入
A在当前光标所在行的行尾输入
o在当前光标所在行的下方打开一个新行
O在当前光标所在行的上方打开一个新行

2.1 命令模式

命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

2.1.1  退出VIM

ZZ保存退出

ZQ不保存退出

2.1.2  光标跳转

①基础操作

按键功能
h
l
k
j

②单词间跳转

按键功能
w下一个单词的词首
e当前或下一单词的词尾
b当前或前一个单词的词首

③当前页跳转:

按键功能
H页首
M页中间行
L页底
zt将光标所在当前行移到屏幕顶端
zz将光标所在当前行移到屏幕中间
zb将光标所在当前行移到屏幕底端

④行首行尾跳转:

按键功能
^跳转至行首的第一个非空白字符
0跳转至行首
$跳转至行尾

⑤行间移动:

按键功能
G最后一行
10G第十行
1G/gg第一行

⑥命令模式翻屏操作:

按键功能
Ctrl+f向文件尾部翻一屏,相当于Pagedown
Ctrl+b向文件首部翻一屏,相当于Pageup
Ctrl+d向文件尾部翻半屏
Ctrl+u向文件首部翻半屏

2.1.3 复制命令

按键功能
y复制命令
Y复制整行
yy复制一行
10yy复制10行

2.1.4  删除命令 

按键功能
d删除命令,可结合光标跳转字符,实现范围删除
d$删除到行尾
d^删除到非空行首
d0删除到行首
dw下一个单词的词首
dd剪切光标所在的行
x剪切光标处的字符
J(大写)删除当前行后的换行符

2.1.5  字符大小写

按键功能
~转换大小写

2.1.6   交换字符位置

按键功能
xp交换光标所在处的字符及其后面字符的位置

2.1.7  粘贴命令

按键功能
p

粘贴到下一行

 2.2  输入模式

输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。

 2.2.1  切入输入模式

按键功能
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O

在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本

a在当前光标所在位置之后插入随后输入的文本
A行尾插入命令

2.3  末行模式

末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

2.3.1  保存与退出

按键功能
w保存
q退出
wq保存并退出
!强制
wq!强制保存退出

2.3.2   查找并替换

格式
范围  s/要查找的内容/替换的内容/修饰符

  • 范围:
  • .当前行
    1,101-10行
    $最后一行
    %全文
    $-1倒数第二行
  • s:search查找
  • ^开头
    $结尾
    ^$空行
  • 替换的内容:要明确

  • 修饰符

  • g整行修改
    i忽略大小写
    c询问是否要修改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Enge问题解决教程

目录 解决问题的一般步骤: 针对"Enge问题"的具体建议: 以下是一些普遍适用的解决问题的方法: 以下是一些更深入的Enge浏览器问题和解决办法: 浏览器性能问题: 浏览器插件与网站冲突: 浏览…

MsSQL中的索引到底长啥样,查找过程怎么进行

参考文章一 参考文章二 建表 mysql> create table user(-> id int(10) auto_increment,-> name varchar(30),-> age tinyint(4),-> primary key (id),-> index idx_age (age)-> )engineinnodb charsetutf8mb4;insert into user(name,age) values(张三,…

键盘失灵?别慌!三招帮你调出电脑软键盘

在电脑使用中,我们有时候需要输入文字,但可能会遇到键盘突然失灵的情况。这时,我们可以使用电脑自带的软键盘来解决问题。本文将介绍如何调出电脑软键盘,以便在需要时进行文字输入。 下面以Windows10系统电脑调出软键盘为例进行演…

JSON Web Token JWT几种简单的绕过方法

JWT结构 JSON Web Token(JWT)是一个非常轻巧的规范。 这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 JWT常被用于前后端分离,可以和Restful API配合使用,常用于构建身份认证机制 如图为JWT加密后的示例&…

PAT 乙级1026 程序运行时间

要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK&…

[数据结构进阶 C++] 二叉搜索树(BinarySearchTree)的模拟实现

文章目录 1、二叉搜索树1.1 二叉搜索数的概念1.2 二叉搜索树的操作1.2.1 二叉搜索树的查找1.2.2 二叉搜索树的插入1.2.3 二叉搜索树的删除 2、二叉搜索树的应用2.1 K模型2.2 KV模型 3、二叉搜索树的性能分析4、K模型与KV模型完整代码4.1 二叉搜索树的模拟实现(K模型…

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

作者:kele 一、背景 SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…

Redis-学习笔记

Remote Dictionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API,是跨平台的非关系型数据库。 Redis 通常被称为数据结构服务器&…

Oracle基本的SQL语句

1.最基本的增删改查 1.1.新增 insert 1.1.1.单表新增 INSERT INTO table_count_output (data_date,table_name,table_count ) VALUES (2023-03-15,FMCUSLVL,351 );COMMIT; 1.1.2.关联新增 INSERT INTO table_count_output (data_date,table_name,table_count )SELECTdata_…

jar 包依赖相关

maven 仓库地址&#xff1a; https://repo.maven.apache.org/maven2/org.apache.commons.httpclient <dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version></…

CSRF检测工具(XSRF检测工具)使用说明

目录 检查类型 测试单个端点 抓取网站 添加Cookie 自定义用户代理

系列十二(面试)、Java中的GC回收类型有哪些?

一、Java中的GC回收类型 1.1、概述 Java中的GC回收类型主要包含以下几种&#xff0c;即&#xff1a;UseSerialGC、UseParallelGC、UseConcMarkSweepGC、UseParNewGC、UseParallelOldGC、UseG1GC。 1.2、源码

定长子串中元音的最大数目(字符串定长滑动窗口)

1、题目 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s "abciiidef", k 3 输出&#xff1a;3 解释&…

【Linux笔记】文件查看和编辑

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 cat (Concatenate and Display): more 和 less: nano 和 vim (文本编辑器): 结语 我的其他博客 前言 学习Linux命令行和文件…

Redis监控与故障排查:工具与技巧

大家好&#xff0c;我是升仔 引言 Redis作为一个广泛使用的内存数据库&#xff0c;在众多系统中都扮演着关键角色。有效的监控和故障排查对于保持Redis的高性能和稳定性至关重要。 1、常见故障场景及处理 内存耗尽 当Redis耗尽可用内存时&#xff0c;会拒绝写操作或根据配置…

EfficientDet:Scalable and Efficient Object Detection中文版 (BiFPN)

EfficientDet: Scalable and Efficient Object Detection EfficientDet&#xff1a;可扩展和高效的目标检测 摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了用于目标检测的神经网络架构设计选择&#xff0c;并提出了几个关键的优化方法来提高效率。首先&…

Leetcode—剑指Offer LCR 025.两数相加II【中等】

2023每日刷题&#xff08;六十七&#xff09; Leetcode—LCR 025.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode…

QT 5.14.2 Android环境搭建问题解决

遇到了不少坑&#xff0c;留帖记录。 1.SDK问题 建议下载SDK-manager工具&#xff0c;从里面选择进行安装。 【原创】基于Qt5.14的一站式安卓开发环境搭建 2.SDK包报错 选择旧版本JDK&#xff0c;竟然和JDK有关&#xff0c;一般还真找不到这个错误。 Qt for Android “Pl…

State of PostgreSQL 2023 报告解读

基于 PostgreSQL 内核的时序数据库厂商 Timescale 发布了一年一度的 State of Postgres 2023 报告。 Timescale 介绍 简单先介绍一下 Timescale 这家公司的历史。它最早是提供了一个 PG 的插件&#xff0c;引入了 Hypertable 这个概念&#xff0c;来高效地处理时序数据&…

【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类

数据之舞&#xff1a;Python数据科学库横扫全场 前言 在当今数据驱动的时代&#xff0c;Python成为数据科学家和分析师的首选工具之一。本文将介绍一系列强大的Python库&#xff0c;涵盖了数据处理、可视化、机器学习和自然语言处理等领域。无论你是初学者还是经验丰富的数据…