vi 是 Unix 和 Linux 系统中常用的文本编辑器
`vi`是 Unix 和 Linux 系统中常用的文本编辑器,它有几种不同的模式,其中最常用的是命令模式和插入模式。光标控制主要在命令模式下进行,以下是一些常用的`vi`命令来控制光标位置:
• h,j,k,l:分别用于将光标向左、向下、向上、向右移动一个字符。
• Ctrl+f:向下滚动屏幕,但不移动光标位置。
• Ctrl+b:向上滚动屏幕,但不移动光标位置。
• G:将光标移动到文件的开头。
• gg(两个g):将光标移动到文件的第一行。
• :将光标移动到当前行的末尾。
• 0(数字零):将光标移动到当前行的开头。
• ::跳转到指定行号,比如输入`:10`会将光标移动到第10行。
• H:将光标移动到屏幕顶部(第一行)。
• M:将光标移动到屏幕中间。
• L:将光标移动到屏幕底部(最后一行)。
• w:将光标向前移动一个单词。
• b:将光标向后移动一个单词。
• e:将光标向前移动到下一个单词的末尾。
• ge:将光标向后移动到上一个单词的末尾。
• W:将光标向前移动一个空格分隔的“单词”(比`w`更宽泛的定义)。
• B:将光标向后移动一个空格分隔的“单词”。
• E:将光标向前移动到下一个“单词”的末尾。
• g0(`g`后跟数字0):将光标移动到当前行的第一个非空白字符。
• g:将光标移动到当前行的最后一个非空白字符。
• %:将光标移动到匹配的括号、方括号或花括号。
• Ctrl+o:返回到之前查看的位置,`Ctrl + i`回到跳转后的位置。
• 或#:在当前单词的下一个/上一个出现处移动光标。
• f:向前查找下一个指定字符,并将光标放在该字符上。
• F:向后查找上一个指定字符,并将光标放在该字符上。
• t:向前查找下一个指定字符,并将光标放在该字符前。
• T:向后查找上一个指定字符,并将光标放在该字符后。
这些命令可以帮助你在`vi`编辑器中有效地定位和控制光标。记住,这些命令都是在命令模式下使用的,如果你处于插入模式,需要按`Esc`键先切换回命令模式。
在`vi`或`vim`编辑器中,删除文本是一项基本操作,可以在命令模式下通过多种方式完成。以下是一些常用的删除命令:
• x:删除光标所在位置的字符。
• X(大写):删除光标前一个字符。
• dd:删除(剪切)当前行。
• D:删除从光标位置到行尾的所有内容。
• d0或d^:删除从光标位置到行首的所有内容。
• d:删除从光标位置到行尾的所有内容。
• dw:删除光标所在位置的一个单词。
• daw:删除光标所在位置的整个单词,包括前后空格。
• d:结合其他移动命令使用,删除从当前位置到由`<motion>`指定的位置之间的文本。例如,`d$`删除到行尾,`d0`删除到行首。
• J:合并光标所在行与下一行。
• yy:复制当前行,与`dd`类似,但`yy`是复制而不是剪切。
• Y(大写):复制从光标所在位置到行尾的所有内容。
• :d:删除从当前行到指定行号(`<number>`)的内容。
• :%d或:1,d:删除整个文件内容。
• u:撤销最后一次删除操作。
• Ctrl+r:重做最后一次撤销的操作。
• d后跟其他命令,如`dG`删除到文件末尾,`dgg`删除到文件开头。
• gD:删除光标所在位置到未匹配的右括号`)`或`}`的内容。
• d%:删除光标所在位置到匹配的括号`()`、`[]`或`{}`之间的内容。
• d`[`:删除光标所在位置到下一个标记`[]`之间的内容。
请注意,`vi`和`vim`中的删除操作会将文本放入剪切板,可以通过`p`(粘贴)命令将文本粘贴到其他地方。如果需要删除不相邻的文本,可以使用可视模式(按`v`进入)选择文本,然后执行删除命令。
在使用这些命令时,请确保在命令模式下操作。如果不确定当前处于哪个模式,可以按`Esc`键确保回到命令模式。
在`vi`或`vim`编辑器中,如果你想要替换文本,可以使用多种命令来完成这项操作。以下是一些常用的替换命令:
1.替换单个字符
• `r`:替换光标所在位置的单个字符。例如,将光标放在要替换的字符上,然后按`r`键,接着输入新的字符。
2.替换单词或行
• `R`(大写):进入替换模式,可以连续替换光标所在位置开始的字符,直到按`Esc`键停止。
• `S`:替换当前行,进入插入模式,并从光标所在位置开始替换。
3.替换文本块
• `cw`:替换光标所在位置的单词。
• `c$`:替换从光标位置到行尾的内容。
• `c0`或`c^`:替换从光标位置到行首的内容。
• `cc`或`S`:替换整行。
4.全局替换
• `:%s/old/new/g`:在整个文件中将所有的`old`替换为`new`。
• `:%s/old/new/gc`:在整个文件中将所有的`old`替换为`new`,并在每次替换前询问确认。
• `:n,ms/old/new/g`:在第`n`行到第`m`行之间将所有的`old`替换为`new`。
5.可视模式下的替换
• 按`v`进入可视模式,选择要替换的文本,然后按`:`进入命令模式,输入`s`进行替换。
6.替换并复制到剪贴板
• `"*y`:复制选中的文本到系统剪贴板。
• `"*p`:粘贴系统剪贴板的内容。
7.使用外部工具进行替换
• `:%!`:对整个文件执行外部命令。例如,`:%!sort`会对整个文件内容进行排序。
示例操作
假设你正在编辑一个名为`example.txt`的文件,并且想要替换文件中的所有"foo"为"bar":
• 打开文件:
```bash
vi example.txt
```
• 进入命令模式(如果已经在命令模式则不需要)。
• 输入以下命令进行替换:
```vim
:%s/foo/bar/g
```
这将在整个文件中将所有的"foo"替换为"bar"。
• 保存文件并退出:
```vim
:wq
```
这些命令可以帮助你在`vi`或`vim`编辑器中有效地替换文本。记住,替换操作可能会改变文件的内容,因此在执行全局替换等操作时要小心,并确保在执行前备份文件。
在`vi`或`vim`编辑器中,如果你想要终止当前正在执行的命令或操作,可以使用以下几种方法:
• Esc 键:
• 按下`Esc`键通常可以退出正在执行的大多数命令,特别是当你在插入模式下编辑文本时。它将你带回到命令模式。
• Ctrl+C:
• 在命令模式下,`Ctrl + C`可以中断当前的命令或操作。这在`vi`尝试执行一个需要用户交互的命令(如搜索或替换)时特别有用。
• :q!:
• 如果你想要退出`vi`而不保存更改,可以在命令模式下输入`:q!`然后按回车键。这将强制退出编辑器并丢弃所有未保存的更改。
• ZZ:
• 在命令模式下,输入`ZZ`(大写字母 Z 后面跟着另一个大写字母 Z)然后按回车键,可以保存更改并退出`vi`。这是一个快速保存并退出的快捷方式。
• :qa!:
• 如果你打开了多个文件并且想要退出所有文件,可以在命令模式下输入`:qa!`然后按回车键。这将关闭所有文件并退出`vi`,不保存任何更改。
• Ctrl+Z:
• 在某些系统中,`Ctrl + Z`可以将`vi`进程挂起,将其放到后台。你可以使用`fg`命令将挂起的进程恢复到前台。
• :cq:
• 在命令模式下,输入`:cq`然后按回车键,可以放弃所有更改并退出`vi`。这与`:q!`类似,但`:cq`通常用于放弃全局命令(如全局搜索和替换)。
• :qa:
• 如果你打开了多个文件并且想要保存所有更改并退出,可以在命令模式下输入`:qa`然后按回车键。
请记住,在使用这些命令时,确保你处于命令模式。如果你不确定当前处于哪个模式,可以按`Esc`键确保回到命令模式。
相关文章:
vi 是 Unix 和 Linux 系统中常用的文本编辑器
vi是 Unix 和 Linux 系统中常用的文本编辑器,它有几种不同的模式,其中最常用的是命令模式和插入模式。光标控制主要在命令模式下进行,以下是一些常用的vi命令来控制光标位置: • h,j,k,l:分别用于将光标向左、向下、向…...

SwanLab x verl:可视化LLM强化学习后训练教程
文章目录 介绍Verl和SwanLab1. 环境安装2. 使用方法3. 查看训练日志 介绍Verl和SwanLab verl 是一个灵活、高效且可用于生产环境的强化学习(RL)训练框架,专为大型语言模型(LLMs)的后训练设计。它由字节跳动火山引擎团…...

职场到校园,初心未改:我的2024年
Hi,大家好,我是几何心凉。 其实早就想写一份复盘文章,正好借助2024年度博客之星的评选机会,来写下这篇总结。回望过去,感慨颇多。自从加入CSDN平台以来,已经见证了许多博主的来去匆匆,各类创作…...
C++基础知识学习记录—引用
1、引用的概念 概念:引用相当于给变量取个别名 对引用进行操作与直接操作变量相同,注意引用类型与变量类型一致 #include<iostream> using namespace std; int main(){int a10;int& cite_a a;//操作引用cite_a 与操作变量a完全一样cout &l…...
AWS Savings Plans 监控与分析工具使用指南
一、背景介绍 1.1 什么是 Savings Plans? AWS Savings Plans 是一种灵活的定价模式,通过承诺持续使用一定金额的 AWS 服务来获得折扣价格。它可以帮助用户降低 AWS 使用成本,适用于 EC2、Fargate 和 Lambda 等服务。 1.2 为什么需要监控? 优化成本支出跟踪使用情况评估投…...

【AI学习】关于 DeepSeek-R1的几个流程图
遇见关于DeepSeek-R1的几个流程图,清晰易懂形象直观,记录于此。 流程图一 来自文章《Understanding Reasoning LLMs》, 文章链接:https://magazine.sebastianraschka.com/p/understanding-reasoning-llms?continueFlagaf07b1a0…...

C++ ——从C到C++
1、C的学习方法 (1)C知识点概念内容比较多,需要反复复习 (2)偏理论,有的内容不理解,可以先背下来,后续可能会理解更深 (3)学好编程要多练习,简…...

【图片转换PDF】多个文件夹里图片逐个批量转换成多个pdf软件,子文件夹单独合并转换,子文件夹单独批量转换,基于Py的解决方案
建筑设计公司在项目执行过程中,会产生大量的设计图纸、效果图、实景照片等图片资料。这些资料按照项目名称、阶段、专业等维度存放在多个文件夹和子文件夹中。 操作需求:为了方便内部管理和向客户交付完整的设计方案,公司需要将每个项目文件…...
前端学习之Flex布局
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Flex布局示例</title><style>.conta…...

游戏引擎学习第97天
回顾昨天并计划今天 在这期节目中,主要讲解了光照的概念,并进一步讨论了法线贴图光照的实现。节目的内容大致分为几个部分: 光照的基础概述:讨论了光的工作原理以及如何在编程图形时需要考虑光照问题。尽管这些概念并没有深入到…...
Mysql中存储引擎各种介绍以及应用场景、优缺点
概述 MySQL 提供了多种存储引擎,每种引擎有不同的特点和适用场景。以下是几种常见的 MySQL 存储引擎的详细介绍,包括它们的底层工作原理、优缺点,以及为什么 MySQL 默认选择某种引擎。 1. InnoDB 底层工作原理: 事务支持&#…...
PHP 运算符
PHP 运算符 概述 PHP 是一种广泛使用的开源服务器端脚本语言,它具有丰富的运算符集,这些运算符是编写 PHP 程序的基础。运算符用于执行各种数学、逻辑和比较操作。本篇文章将详细介绍 PHP 中常用的运算符,包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。 算术运…...
Vue全流程--Vue3.0与Vue2.0响应式原理对比
Vue2中数据的响应式 需要使用Vue.set这么一个api,修改数据 需要使用Vue.delete这么一个api,删除数据 数据代理这个当面的理解可以看看我前面文章Vue全流程--数据代理的理解以及在Vue中的应用-CSDN博客 Vue3中数据的响应式 Vue3使用proxy这个api实现…...

C语言学习笔记:子函数的调用实现各个位的累加和
在C语言程序学习之初,我们都会学习如何打印 hello world,在学习时我们知道了int main()是主函数,程序从main函数开始执行,这是流程控制的一部分内容。在主函数中我们想要实现一些功能,比如求各个…...

【大模型】本地部署DeepSeek-R1:8b大模型及搭建Open-WebUI交互页面
本地部署DeepSeek-R1:8b大模型 一、摘要及版本选择说明1.1 摘要1.2 版本选择 二、下载并安装Ollama三、运行DeepSeek-R1:8b大模型四、安装Open WebUI增强交互体验五、关闭Ollama开机自动启动六、DeepSeek大模型启停步骤 一、摘要及版本选择说明 1.1 摘要 作为一名对 AI 和生成…...
Python 调用 Stabilityai API在本地生成图像
Python 调用 Stabilityai API在本地生成图像 摘要功能 代码结构关键技术代码下载立即体验 摘要 本程序利用硅基流动目前的免费 stabilityai/stable-diffusion-2-1 模型API,生成图像并下载到本地,用户可以通过输入描述性提示词来获取相应的图像。使用Pyt…...

Python3中异常处理:try-finally语句的示例
一. 简介 前面一篇文章简单学习了 try-finally语句结构,执行过程、以及使用场景。文章如下: Python3中异常处理:try-finally语句-CSDN博客 本文写一些简单的示例来继续学习 try-finally语句的使用。 二. Python3中异常处理:try…...
Lua限流器的3种写法
学而不思则罔,思而不学则殆 引言 上篇文章讲解了Lua脚本,事务和Pipline之间的使用方式和性能差距,本篇文章将聚焦Lua脚本,我将用三种写法来展现如何实现一个Redis限流器 固定窗口限流 固定窗口限流也是最简单的限流算法&#x…...

基于 GEE 利用插值方法填补缺失影像
目录 1 完整代码 2 运行结果 利用GEE合成NDVI时,如果研究区较大,一个月的影像覆盖不了整个研究区,就会有缺失的地方,还有就是去云之后,有云量的地区变成空值。 所以今天来用一种插值的方法来填补缺失的影像…...

linux部署ollama+deepseek+dify
Ollama 下载源码 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz sudo tar -C /usr -xzf ollama-linux-amd64.tgz启动 export OLLAMA_HOST0.0.0.0:11434 ollama serve访问ip:11434看到即成功 Ollama is running 手动安装deepseek…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...