2.Linux_vi编辑器

news2024/11/25 8:14:49

打开/创建文件

1、打开/创建文件

指令:vi 文件名

若文件不存在,则新建一个文件;若文件存在,则打开这个文件。

2、打开文件时,指定光标的位置

指令:vi 文件名 +行号

注意:"+"和行号直接没有空格,若没有行号,则光标跳到最后一行

3、异常退出后的中间文件

当vi正在编辑文件,此时强制把终端关闭或者其他一些异常行为,这会导致产生一个以.swp为后缀的交换文件,再次打开vi时,会弹出提示信息,按下"d"即可删除交换文件,并进入代码。

VI的三种模式

1、模式及命令

vi有命令行模式、插入模式、底行模式这三种模式,转换方式如下:

命令行到插入模式,常常用i来进行。命令及功能如下:

底行模式下常常用于保存、退出,具体的命令及功能如下:

2、底行模式:w File命令验证

使用w File之后,会将当前的内容拷贝到指定的文件中。

注意:不论当前文件修改内容后,是否输入了:w进行保存,都会将当前的内容进行拷贝,而不是修改前的内容进行拷贝。

VI光标操作

具体操作列表如下,需要注意大小写:

命令功能
h
j
k
l(小写的L)
w向右一个单词
b向左一个单词
0行首
^行首,第一个不是空白字符的位置
$行尾
gg文件顶部
G文件末尾
数字gg移动到数字对应行数
:set nu设置显示行号
:set nonu取消显示行号
ctrl + b向上翻页
ctrl + f向下翻页
H屏幕顶部
M屏幕中间
L屏幕底部

VI选中、复制、剪切、粘贴、撤销

具体操作列表如下,需要注意大小写:

命令功能
v(小写)可视模式,从光标位置开始按照正常模式选择文本,esc退出
V(大写)可视行模式,选中光标经过的完整行,esc退出
[n]x删除光标所在字符,在可视模式下选择后按下x,可以删除所选段
[n]dd删除光标所在行,可以ndd删除多行
[n]yy复制一行,nyy复制多行
p粘贴
y0将光标至行首的字符拷入剪贴板
y$将光标至行尾的字符拷入剪贴板
d0将光标至行首的字符剪切入剪贴板
d$将光标至行尾的字符剪切入剪贴板
:1,25y拷贝1~25行
:1,25d剪切1~25行
:1,$d剪切1~最后1行
u撤销
ctrl+r恢复

VI查找、替换、分屏

具体操作列表如下,需要注意大小写:

命令功能
r替换当前字符(单个字符)
R替换当前行光标后的字符(多个字符)
/str查找str
n查找下一个
N查找上一个
:范围s/旧文本/新文本/g替换,举例在后面补充
:范围s/旧文本/新文本/gc有询问的替换,询问值含义在后面补充
:sp[文件名]横向增加分屏,光标移动在后面补充
:vsp[文件名]竖向增加分屏,光标移动在后面补充

替换举例:

  • 10,20s/hello/HELLO/g   第10行到第20行
  • .,20s/hello/HELLO/g      当前行到第20行," . "代表当前光标位置
  • 5,$s/hello/HELLO/g       第5行到最后一行," $ "代表最后一行
  • %s/旧文本/新文本/g      全文替换," % "代表1,$这个范围,即:全文

替换询问值含义:

  • y-yes 替换
  • n-no 不替换
  • a-all 替换所有
  • q-quit 退出替换

光标移动快捷键(类似vi的上下左右光标移动):

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

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

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

相关文章

吴恩达机器学习-C1W3L1-逻辑回归分类

在本实验中,您将对比回归和分类。 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from lab_utils_common import dlc, plot_data from plt_one_addpt_onclick import plt_one_addpt_onclick plt.style.use(./deeplearning.mplstyle)分类…

JDK 8 升级 17 及 springboot 2.x 升级 3.x 指南

JDK 8 升级 17 简介 从 JDK 8 升级到 JDK 17 的过程中,有几个主要的变化,特别是 Java Platform Module System (JPMS) 的引入,以及一些包路径的调整。以下是与 JDK 17 相关的一些重要变化: Java Platform Module System (JPMS) …

The First项目报告:解读Trading Bot黑马,交易狙击手Banana Gun

Meme币市场的特点是高度投机性和波动性,一个项目可能在短时间内实现巨大涨幅,为投资者带来巨额回报。然而,这种市场也充满了不确定性,许多项目可能只是短暂的炒作,缺乏实际价值或长期发展的潜力。因此,对于…

实验2-4-3 求奇数分之一序列前N项和

//实验2-4-3 求奇数分之一序列前N项和#include<stdio.h> #include<math.h> int main(){int n;scanf("%d",&n);//输入正整数N&#xff1b;double sum0;for (int i 1; i < n * 2; i 2)/* 在表达式 for (int i 1; i < n * 2; i 2) 中&#x…

设计模式-策略模式的完整代码示例及测试验证

策略模式 什么是策略模式&#xff1f; 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以互换。 策略模式使得算法可以在不影响客户端的情况下发生变化。策略模式主…

研0 冲刺算法竞赛 day26 P1803 凌乱的yyy / 线段覆盖

P1803 凌乱的yyy / 线段覆盖 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 考点&#xff1a;线段覆盖 思路&#xff1a;将整体结束时间进行排序&#xff0c;在从头开始遍历计数 代码&#xff1a; #include<iostream> #include <algorithm> using namespace …

从零开始学习机器学习,掌握AI未来的关键!

从零开始学习机器学习 1. 介绍1.1 人工智能&#xff08;AI&#xff09;概述1.2 机器学习在人工智能中的应用1.3 机器学习基础概念 2. 监督学习2.1 什么是监督学习2.2 回归分析2.3 分类问题2.4 模型评估和选择 3. 无监督学习3.1 什么是无监督学习3.2 聚类算法3.3 降维技术 4. 深…

Spring源码解析(27)之AOP的核心对象创建过程2

一、前言 我们在上一节中已经介绍了Advisor的创建过程&#xff0c;当时我们创建的logUtil这bean&#xff0c;他在 resolveBeforeInstantiation返回的是null&#xff0c;那么就会继续往下执行doCreateBean方法。 二、源码分析 protected Object doCreateBean(String beanName,…

永结无间Ⅸ--你不需要LLM Agent

人们将目光锁定在下一个闪亮的事物上。FOMO 是人性的一部分。这也适用于企业。就像数据科学成为每个企业分析功能的热潮一样&#xff0c;Agentic Architecture 是大多数 AI 雷达上的热门目标。 但您是否考虑过您是否真的需要它&#xff1f; 实际情况是&#xff0c;您不需要 A…

解答|一年期HTTPS证书如何获取?

自2023年年底以来&#xff0c;各大平台陆续下架了一年期免费HTTPS证书&#xff0c;目前市面上已经不再提供一年期的免费证书。付费正式版证书成为首选&#xff01;而DV证书由于其低廉的价格广受个人或者中小企业的青睐。 下面是DV类型证书&#xff08;13个月时长&#xff09;的…

防火墙Firewalld(iptables)

目录 一、Linux防火墙基础 1.什么是防火墙 2.防火墙的功能 3.防火墙的类型 二、Linux防火墙工具 1.iptables 2. netfilter 3.四表五链结构 3.1四表 3.2五链 3.3总结 4.数据包过滤的匹配流程 4.1规则表之间的顺序 4.2规则链之间的顺序 4.3规则链内的匹配顺序 …

人数管控系统助力图书馆实现精准客流统计分析

一、客流统计痛点在图书馆的日常运营中&#xff0c;客流统计面临着诸多难题。传统的人工计数方法不仅耗费人力&#xff0c;而且数据准确性难以保证。无法精确掌握不同时间段的读者流量&#xff0c;导致图书馆在资源配置和服务安排上缺乏科学依据。难以了解各个区域的受欢迎程度…

查看RAM和Flash

0 Preface/Foreword 1 查看方法 1.1 map文件中查看 1.1.1 RAM可用情况 在map文件中&#xff0c;搜索字符串&#xff1a;free_ramcp 该字段表示剩余可用的RAM大小&#xff0c;前面对应的是hexadecimal的数值&#xff08;单位Byte&#xff09;&#xff0c;就是剩余可用的RA…

浅谈ArkTS/ArkUI组件开发

浅谈ArkTS/ArkUI组件开发 本篇文章将从一个移动开发思维的维度出发&#xff0c;浅谈ArkTS组件开发的基础问题&#xff0c;比如状态管理、装饰器、属性传递、自定义构建函数、插槽、条件渲染&#xff0c;模块引用和路由跳转等。 创建项目 这里使用截图简单过一下&#xff0c;不…

数据结构与算法 - 递归

一、递归 1. 概述 定义&#xff1a;在计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集。 比如单链表递归遍历的例子&#xff1a; void f(Node node) {if(node null) {return;}println("before:" node…

Java 字符串常量池

目录 一、池化概念 二、字符串常量池 1. 概述 2. String对象的创建过程 1&#xff09;直接使用字符串常量进行赋值 2&#xff09;通过new创建String类对象 3&#xff09;结论 4&#xff09;intern方法 一、池化概念 先看如下的一段代码&#xff1a; String s1 "…

LLM实战系列(1)—强强联合Langchain-Vicuna应用实战

背景 本文主要介绍一下&#xff0c;基于Langchain与Vicuna-13B的外挂OceanBase知识库项目实战以及QA使用&#xff0c;项目地址: github.com/csunny/DB-G… 在开始之前&#xff0c;我们还是先看看效果&#xff5e; 自Meta发布LLaMA大模型以来&#xff0c; 围绕LLaMA微调的模型…

为什么越来越多的IT青年转行网络安全?

目前&#xff0c;我国互联网已经从爆发增长期进入平稳发展阶段&#xff0c;同时每年大量计算机相关专业的毕业生涌入就业市场&#xff0c;导致IT行业逐渐趋于饱和状态&#xff0c;甚至出现裁员现象&#xff0c;去年很多大厂都有裁员&#xff0c;不少程序员再就业成了难题。 面…

大彩触摸屏与单片机通讯

目录&#xff1a; 一、概述 1、触摸屏简介 2、安装软件 1&#xff09;设置VSPD软件 2&#xff09;设置VisualTFT软件 3&#xff09;设置串口软件 二、单片机发送指令给触摸屏 1、发送文本 2、显示与隐藏控件 1&#xff09;通过指令助手生成指令 2&#xff09;隐藏…

IDEA启动springBoot项目,显示构建和正在启动XxxApplication之后无反应

今天拉其他项目组的代码&#xff0c;然后发现IDEA启动不了项目&#xff0c;点击启动一闪而过&#xff0c;啥提示也没有&#xff0c;因为之前有过类似IDEA出错的经验&#xff0c;所以知道怎么排查。 首先打开IDEA日志输出&#xff0c;然后看具体是什么错 帮助>Tail Log in Co…