linux 系统下文本编辑常用的命令
一、是什么
Vim是从 vi 发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方
而vim可以说是程序开发者的一项很好用的工具
二、使用
基本上 vi/vim 共分为三种模式,分别是:
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 底线命令模式(Last line mode)

命令模式
Vim 的默认模式,在这个模式下,你不能输入文本,但是可以让我们在文本间移动,删除一行文本,复制黏贴文本,跳转到指定行,撤销操作,等等
移动光标
常用的命令如下:
- h 向左移动一个字符
- j 向下移动一个字符
- k 向上移动一个字符
- i 向右移动一个字符
或者使用方向键进行控制
如果想要向下移动n行,可通过使用 "nj" 或 "n↓" 的组合按键
搜索
常见的命令如下:
-
/word:向光标之下寻找一个名称为 word 的字符
-
?word:向光标之上寻找一个字符串名称为 word 的字符串
-
n:代表重复前一个搜寻的动作,即再次执行上一次的操作
-
N:反向进行前一个搜索动作
删除、复制、粘贴
常用的命令如下:
- x:向后删除一个字符
- X:向前删除一个字符
- nc:n 为数字,连续向后删除 n 个字符
- dd:删除游标所在的那一整行
- d0:删除游标所在处,到该行的最前面一个字符
- d$删除游标所在处,到该行的最后一个字符
- ndd:除光标所在的向下 n 行
- yy:复制游标所在的那一行
- y0:复制光标所在的那个字符到该行行首的所有数据
- y$:复制光标所在的那个字符到该行行尾的所有数据
- p:已复制的数据在光标下一行贴上
- P:已复制的数据在光标上一行贴上
- nc:重复删除n行数据
输入模式
命令模式通过输入大小写i、a、o可以切换到输入模式,如下:
- i:从目前光标所在处输入
- I:在目前所在行的第一个非空格符处开始输入
- a:从目前光标所在的下一个字符处开始输入
- A:从光标所在行的最后一个字符处开始输入
- o:在目前光标所在的下一行处输入新的一行
- O:目前光标所在的上一行处输入新的一行
输入模式我们熟悉的文本编辑器的模式,就是可以输入任何你想输入的内容
如果想从插入模式回到命令模式,使用按下键盘左上角的ESC键
底线命令模式
这个模式下可以运行一些命令例如“退出”,“保存”,等动作,为了进入底线命令模式,首先要进入命令模式,再按下冒号键:
常见的命令如下:
- w:将编辑的数据写入硬盘档案中
- w!:若文件属性为『只读』时,强制写入该档案
- q:未修改,直接退出
- q!:修改过但不存储
- wq:储存后离开
相关文章:
linux 系统下文本编辑常用的命令
一、是什么 Vim是从 vi 发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方 而…...
3D Gaussian Splatting文件的压缩【3D高斯泼溅】
在上一篇文章中,我开始研究高斯泼溅(3DGS:3D Gaussian Splatting)。 它的问题之一是数据集并不小。 渲染图看起来不错。 但“自行车”、“卡车”、“花园”数据集分别是一个 1.42GB、0.59GB、1.35GB 的 PLY 文件。 它们几乎按原样…...
Spring Boot 整合xxl-job实现分布式定时任务
xxl-job介绍 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 xxl是xxl-job的开发者大众点评的许雪里名称的拼音开头。 设计思想 将调度行为抽象形成“调度…...
16.最接近的三数之和
题目来源: leetcode题目,网址:16. 最接近的三数之和 - 力扣(LeetCode) 解题思路: 对数组排序后,枚举第一个值,利用双指针在第一个值固定时的第二三个值。 解题代码:…...
php 插入排序算法实现
插入排序是一种简单直观的排序算法,它的基本思想是将一个数据序列分为有序区和无序区,每次从无序区选择一个元素插入到有序区的合适位置,直到整个序列有序为止 5, 3, 8, 2, 0, 1 HP中可以使用以下代码实现插入排序算法: functi…...
import gradio时出现SyntaxError: future feature annotations is not defined解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
视频封装格式
FLV(Flash Video) FLV封装格式 Tag Data分为Audio,Video,Script三种 TS(Transport Stream)传输流 TS文件分为三层,(倒叙更好理解) TS层:在PES层基础上加入…...
vue+iView实现下载zip文件导出多个excel表格
1,需求:在vue项目中,实现分月份导出多个Excel表格。 点击导出,下载zip文件,解压出多张表数据。 2,关键代码: <Button class"export button-style button-space" click"ex…...
Rust编程中的共享状态并发执行
1.共享状态并发 虽然消息传递是一个很好的处理并发的方式,但并不是唯一一个。另一种方式是让多个线程拥有相同的共享数据。在学习Go语言编程过程中大家应该听到过一句口号:"不要通过共享内存来通讯"。 在某种程度上,任何编程语言中的信道都类…...
python语法之数据类型
在python编程中,数据类型是一个重要的概念。 变量可以存储不同类型的数据,不同的类型可以做不同的事情。 Python在这些类别中默认内置了以下数据类型: 文本类型:str数值类型:int, float, complex序列类型:list, tup…...
Skybox天空盒子的更换教程_unity基础开发教程
Skybox天空盒子的更换 Skybox的下载与导入更换SkyboxSkybox属性自定义 Skybox的下载与导入 打开资源商店 搜索FREE Skybox 这里是我使用的是这一款资源,点击添加至我的资源 打开包管理器Package Manager Packages选择My Assets 搜索Sky 选择刚刚添加的天空盒子 点…...
Android模拟器的linux内核源码的下载
文章目录 Android模拟器的linux内核源码的下载 Android模拟器的linux内核源码的下载 git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git自己新建一个文件夹存放内核代码,命名随意。 切换一下分支就有东西了 切换到下面这个分支...
Vue中methods实现原理
目录 前言 回调函数中的this指向问题 vue实例访问methods methods实现原理 前言 vue实例对象为什么可以访问methods中的函数方法?methods的实现原理是什么? 回调函数中的this指向问题 在解答前言中的问题前,需要了解一下回调函数中的th…...
维基百科是非营利性机构 词条内容具有中立性、准确性、可靠性
维基百科对一些企业很有神秘性,自行操作很多次也没有成功建立维基百科,这一定是没有按照维基百科的规则和流程去操作。小马识途营销顾问提醒企业,维基百科是一种基于协作的在线百科全书,由维基媒体基金会运营。维基百科的创建流程…...
C/C++轻量级并发TCP服务器框架Zinx-框架开发002: 定义通道抽象类
文章目录 2 类图设计3 时序图数据输入处理:输出数据处理总流程 4 主要实现的功能4.1 kernel类:基于epoll调度所有通道4.2 通道抽象类:4.3 标准输入通道子类4.4 标准输出通道子类4.5 kernel和通道类的调用 5 代码设计5.1 框架头文件5.2 框架实…...
bin、hex、ELF文件格式上的区别
bin, hex, 和 ELF 是三种不同的文件格式,主要用于表示和存储二进制数据和程序代码。它们各自有其用途、特点和格式: bin (Binary) 文件: 通常表示纯二进制格式的文件。它不包含任何元数据或文件结构,只是简单地按照字节顺序存储数据。这种文件…...
《QT从基础到进阶·二十六》绘制多个图形项(QGraphicsRectItem,QGraphicsLineItem,QGraphicsPolygonItem)
这个demo用QT实现了对多个图形项的绘制,包括矩形的绘制,直线的绘制和多边形的绘制,是之前一章中绘制矩形的增强版,之前一章节关于矩形的绘制可以参考:《QT从基础到进阶十五》用鼠标绘制矩形(QGraphicsView、…...
【分布式】CAP理论详解
一、CAP理论概述 在分布式系统中,CAP是指一组原则,它们描述了在网络分区(Partition)时,分布式系统能够提供的保证。CAP代表Consistency(一致性)、Availability(可用性)和…...
AI歌姬,C位出道,基于PaddleHub/Diffsinger实现音频歌声合成操作(Python3.10)
懂乐理的音乐专业人士可以通过写乐谱并通过乐器演奏来展示他们的音乐创意和构思,但不识谱的素人如果也想跨界玩儿音乐,那么门槛儿就有点高了。但随着人工智能技术的快速迭代,现在任何一个人都可以成为“创作型歌手”,即自主创作并…...
ZooKeeper基本知识
1.什么是ZooKeeper ZooKeeper是一个开源的分布式协调服务,它提供了一个高性能、高可靠的分布式协调基础,用于构建分布式系统。 具体来说,ZooKeeper通常用于以下几个方面: 配置管理:分布式系统通常需要集中管理配置信…...
安卓集成Google TTS引擎:实现离线中文语音播报的完整实践
1. 为什么需要Google TTS引擎 很多安卓开发者都遇到过这样的需求:在应用中实现文字转语音功能。系统自带的Pico TTS引擎虽然轻量,但最大的痛点就是不支持中文。我去年开发一个盲人辅助应用时就踩过这个坑,测试时发现语音输出全是英文…...
Python自动化脚本:高效实现CSV到Little_R格式的批量转换
1. 为什么需要CSV到Little_R格式的转换? 在日常数据处理工作中,我们经常会遇到需要将数据从一种格式转换为另一种格式的需求。特别是对于气象研究人员和数据工程师来说,CSV和Little_R这两种格式的转换尤为常见。CSV(Comma-Separat…...
《生产级性能监控实战:基于 Spring AOP + 消息提醒的智能告警系统设计与实现》
一、引言1.1 痛点场景在生产环境中,性能问题往往比业务缺陷更难以察觉,也更具破坏力。你是否也遇到过以下困境:生产环境性能问题难以发现?接口响应从 200ms 逐渐恶化到 5 秒,用户感知强烈,监控系统却毫无告…...
AI头像生成器真实测评:生成的头像提示词到底好不好用?
AI头像生成器真实测评:生成的头像提示词到底好不好用? 1. 引言:为什么需要AI头像生成器 在社交媒体和数字身份日益重要的今天,一个独特的头像能让你在人群中脱颖而出。但设计一个专业又有个性的头像并不容易,特别是对…...
用PyQt5打造GUI应用:PyCharm中QtDesigner和PyUic的高效工作流配置
PyCharm专业版中PyQt5高效开发:QtDesigner与PyUic深度整合指南 在Python GUI开发领域,PyQt5凭借其强大的功能和跨平台特性,已成为众多开发者的首选工具。然而,许多中级开发者在实际项目中常遇到工作流断裂的问题——设计界面与代码…...
HY-Motion 1.0案例实录:从‘站立起身’到完整3D骨骼动画的端到端生成
HY-Motion 1.0案例实录:从站立起身到完整3D骨骼动画的端到端生成 1. 引言:动作生成的新里程碑 想象一下,你只需要用文字描述一个动作,就能立即生成流畅自然的3D骨骼动画。这不是科幻电影中的场景,而是HY-Motion 1.0带…...
城通网盘下载加速终极解决方案:ctfileGet让你的文件传输速度提升10倍
城通网盘下载加速终极解决方案:ctfileGet让你的文件传输速度提升10倍 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否还在为城通网盘下载速度缓慢而烦恼?每次下载大文件都…...
突破语言壁垒:双字节字符支持的创新解决方案——零基础也能掌握的《十字军之王II》本地化增强工具
突破语言壁垒:双字节字符支持的创新解决方案——零基础也能掌握的《十字军之王II》本地化增强工具 【免费下载链接】CK2dll Crusader Kings II double byte patch /production : 3.3.4 /dev : 3.3.4 项目地址: https://gitcode.com/gh_mirrors/ck/CK2dll 你是…...
比迪丽AI绘画效果展示:系列风格化角色设计作品集
比迪丽AI绘画效果展示:系列风格化角色设计作品集 用AI画出你心中的角色,让创意不再受技术限制 最近试用了比迪丽AI绘画模型,专门做了系列风格化角色设计的测试。不得不说,效果真的让人眼前一亮——从奇幻冒险的精灵战士到科幻未来…...
Lychee-Rerank实战案例:专利文献检索中权利要求与技术方案的语义匹配
Lychee-Rerank实战案例:专利文献检索中权利要求与技术方案的语义匹配 1. 引言:当专利检索遇上语义匹配难题 如果你是专利工程师、知识产权分析师,或者从事技术研发工作,一定遇到过这样的场景:面对海量的专利文献&…...
