Linux-vi编辑器命令使用

一、初始-vi 

1、 vi-打开文件并且定位行

有可能会遇到打开一个文件,并定位到指定行的情况
例如,知道某一行代码有错误,可以快速定位到出错代码的位置
可以使用以下命令打开文件
$ vi 文件名 +行数
提示:如果只带上+ 而不指定行号,会直接定位到文件末尾
实操:用gedit 改错一个程序,编译看到行号 vi +行号

2、vi-异常情况的处理 

如果vi异常退出(比如没保存就关闭了终端窗口),磁盘上可能会保存有 交换文件
下次再使用vi编辑文件时,会看到以下屏幕信息,按下字母d删除交换文件即可 

二、vi三种模式及其切换 

1、命令行模式

        打开文件首先进入命令行模式。这是使用vi的入口可以通过命令,可以进行复制、粘贴、删除、定位等操作 。

 

2、插入模式(编辑模式) 正常的编辑文字。 

 

3、底行模式

  • 光标位于屏幕的底行。
  • 底行模式可以输入命令,进行文件的保存、查找、替换等
  • 要退出vi,返回到控制台,也是在底行模式下输入退出命令
  • 底行模式是vi的出口

 

4、vi三种模式的切换 

 

5、vi 底行模式下相关命令 

 

6、vi模式切换命令 

 

7、vi 命令-学习提示 

① vi的命令较多,不要期望能短期全部记住,更不要期望短期灵活运用
② 多敲多练,习惯一段时间,就潜移默化的越用越好了,忘记了多查、多复习
③ vi的定位:个别命令忘记了,不熟练,只会影响编辑速度而已
④ vi的使用熟练度,不影响继续学习后面知识
⑤ 坚持使用,无心插柳柳成荫 

三、vi 光标命令 

1、快速移动

 

2、行内移动 

 

3、行数移动 

 

4、屏幕移动(浏览代码) 

 

四、vi剪切/复制/粘贴及相关命令

1、选中文本(可视模式) 

 

  •  esc可以放弃选中,回到命令模式 

2、vi 删除/剪切文本 

 

  • 如果使用可视模式已选中了一段文本,d和x都可以删除选中文本
  • 命令d、x类似图形界面的剪切操作(ctrl + x)

3、vi 复制粘贴 

 

4、vi 复制剪切 

  • y0-将光标至行首的字符拷入剪贴板
  • y$-将光标至行尾的字符拷入剪贴板
  • d0-将光标至行首的字符剪切入剪贴板
  • d$-将光标至行尾的字符剪切入剪贴板
  • range y-块复制
  • range d-块剪切 

5、vi 撤销和恢复撤销 

 

五、vi查找/替换/分屏命令 

1、vi 替换命令 

 

  • R可以进入替换模式,替换完成后,按Esc可以返回命令模式
  • 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改 

2、vi 查找命令 

 

  • 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可 

3、vi 查找并替换 

  • 需要在末行模式下执行:范围s/旧文本/新文本/g

                s代表替换
                g全部替换(默认换一行中的第1个)

  • 举例:

                10,20s/hello/HELLO/g 第10行到第20行
                .,20s/hello/HELLO/g 当前行到第20行
                5,$s/hello/HELLO/g 第5行到最后一行
                %s/旧文本/新文本/g 全文替换 

  • 确认替换

                :%s/旧文本/新文本/gc
        会出现提示:
                y-yes 替换
                n-no 不替换
                a-all 替换所有
                q-quit 退出替换 

4、vi 分屏命令 

 

  • ctrl h 光标到左边窗口
  • ctrl l 光标到右边窗口
  • ctrl j 光标到下面窗口
  • ctrl k 光标到上面窗口 

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

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

相关文章

Windows API 使用 SetTimer 定时器来持续画图

在Windows API中,SetTimer 函数用于在指定的窗口上设置一个定时器。当定时器到期时,窗口会收到一个WM_TIMER消息。以下是SetTimer函数的详细解释和用法: 函数原型 UINT_PTR SetTimer(HWND hWnd, // 窗口句柄UINT_PTR n…

Python邮件群发有哪些步骤?如何批量发送?

Python邮件群发的注意事项?怎么使用Python群发邮件? 使用Python进行邮件群发,不仅可以自动化流程,还可以节省大量的时间和精力。AokSend将详细介绍使用Python进行邮件群发的步骤,并在过程中提供实用的建议和注意事项。…

windows下使用命令清空U盘

1、CMD命令打开后输入diskpart命令打开磁盘分区管理工具 diskpart打开如下窗口 Microsoft DiskPart 版本 10.0.19041.3636 Copyright (C) Microsoft Corporation. 在计算机上: DESKTOP-TR9HQRP 2、输入查看所有磁盘命令 list disk打印如下windows 磁盘 ###  状态    …

机械臂码垛机:解读其高效作业与灵活性

在当今高度自动化的工业时代,机械臂码垛机以其高效作业和灵活性,成为了生产线上的得力助手。这款设备不仅大幅提升了生产效率,还显著降低了人工操作的强度和风险,为现代工业发展注入了强大的动力。 机械臂码垛机的高效作业能力令人…

Spring Cloud微服务架构下的安全通信、系统稳定性和扩展性

Spring Cloud是一个为分布式系统提供集成解决方案的框架,广泛应用于微服务架构中。在微服务架构下,服务与服务之间的通信是至关重要的,而确保这种通信的安全性、提高系统的稳定性和扩展性则是系统设计中的关键考虑因素。本文将探讨在Spring C…

【机器学习】必会降维算法之:奇异值分解(SVD)

奇异值分解(SVD) 1、引言2、奇异值分解(SVD)2.1 定义2.2 应用场景2.3 核心原理2.4 算法公式2.5 代码示例 3、总结 1、引言 一转眼, 小屌丝:鱼哥,就要到每年最开心的节日了:六一儿童…

搭建Vulnhub靶机网络问题(获取不到IP)

搭建好靶场后,在攻击机运行arp-scan -l无法发现靶机IP。 这时候去看下靶机网络有没有问题。 重新启动客户机,一直按e进入安全模式(要是直接开机了就先按shift进入grub界面,再按e)找到ro,将ro改为rw signie…

XM平台的交易模式模式是什么?

外汇交易平台的盈利模式主要分为两种:有交易员平台和无交易员平台。 有交易员平台,也称为做市商平台,为客户提供交易市场,并在需要时与客户持相反方向的交易,从中赚取利润。交易者看到的买入卖出价可能与实际价格不同&…

python 巡检报告中的邮件处理

00.创作背景,在每天的巡检报告中要 要检查oa相关服务器的备份作业是否备份成功 那个备份软件有个功能,就是完成备份作业后,可以发送信息到我的邮箱。 01.通过检查我邮箱的信息,就可以了解那个备份作业的情况。 通过解释邮件的名称可以了解备…

Cassandra的基本概念以及对比SQL server中的概念进行理解

Cassandra是一个开源的分布式NoSQL数据库系统,它最初由Facebook开发,并因其高可扩展性、容错性和灵活性而被广泛应用于各种场景中。以下是Cassandra中的一些基本概念,以及与Microsoft SQL Server中的概念进行对比: Cassandra基本…

一分钟学习数据安全—自主管理身份SSI架构

上一篇我们概要介绍了SSI的几个组成部分,包括可验证凭证信任三角、治理框架等,后面的介绍文章我们将分别介绍一下相关的技术。 SSI的堆栈演进到现在,综合整个生态中的关键架构决策,普遍接受的是一个四层模型。 如上图所示&#xf…

如何将多个jtl文件合并到一个,并且生成html报告

项目背景: 使用jmeterjenkins做自动化测试,不同业务写在不同的jmx文件中,现在需要生成一份汇总的报告。 多个脚本,A.jtl,B.jtl,C.jtl,D.jtl..,需要将这些jtl文件生成一个html文件 1.创建汇总文件merged.jtl文件&…

mysql 拼接字段+根据特定值返回特定内容

1、这里,首选实现根据特定值返回特定内容,使用 case case when r.Namedemand then 采购商when r.Namesupplier then 供应商else 未知 end as roleName2、然后使用Group_Concat函数 group_concat((case when r.Namedemand then 采购商when r.Namesu…

Windows Docker手动迁移镜像

1 将镜像保存至本地 # docker save 镜像名称:版本号 > 镜像名称.tar (windows迁移windows使用 迁移到linux会报错archive/ tar : invalid tar header) docker save --outputC:\YOUR_PATH\my_docker_image.tar image_id 例如:docker save --outputD:\moviepilot…

论程序员的职业素养

文章目录 前言一、命名规范1. HTML命名规范2. CSS命名规范3. JavaScript命名规范4. 文件和文件夹命名规范5. 代码案例 二、代码注释规范1. 注释规范2. 案例代码HTMLCSS (styles/main.css)JavaScript (scripts/main.js) 三、代码逻辑规范1.逻辑规范2. 代码案例清晰的函数和模块化…

QT系列教程(8) QT 布局学习

简介 Qt 中的布局有三种方式,水平布局,垂直布局,栅格布局。 通过ui设置布局 我们先创建一个窗口应用程序,程序名叫layout,基类选择QMainWindow。但我们不使用这个mainwindow,我们创建一个Qt应用程序类Log…

使用API有效率地管理Dynadot域名,删除已设置的文件夹

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

河南省第十四届ICPC大学生程序设计竞赛-C结对编程

题面 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 A公司是一家主营软件开发的公司。公司内有n名员工,编号为1到n的整数,除了1号老板外每名员工…

用友NC downCourseWare 任意文件读取漏洞复现

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC 系统 /portal/pt/downCourseWare…

PDF格式分析(八十四)——小部件注释(Widget)

小部件注释(PDF1.2及其以上版本),用于表示交互式表单的外观,并管理其与用户的交互。为了方便,当field仅与单个小部件注释相关联时,field词典会与annotation字典合并成一个字典,该字典既有field字典的条目,也有annotation字典的条目。 下表显示Widget注释字典的条目: 条…