linux: 文本编辑器vim

ops/2025/1/16 0:43:09/

文本编辑器

vi的工作模式

(vim和vi一致)

进入vim的方法

方法一:输入 vim  文件名

此时左下角有 "文件名"  文件行数,字符数量

方法一: 输入 vim 新文件名

此时新建了一个文件并进入vim,左下角有 "文件名"[New File]

灰色的长方形就是光标,输入文字,左下角变成了INSERT表示此时在插入模式(编辑模式)

上面的截图中有1行,现在是空行(看有没有~确认)

退出vim的方法

只能在末行模式下退出

假如现在在插入模式,需要退出vim,先按Esc键,再按 : :q或者:wq

(即先从插入模式退出到命令模式,再从命令模式输入: 进入末行模式,在末行模式下输入退出命令)

末行模式

命令模式

光标的移动

(插入模式也可以)

可以借助键盘的方向键移动

插入命令

在命令模式下进行下面的操作

i 在光标前插入

L在当前行首插入

l 光标的下一个

h 光标的上一个

(上面的o是字母)

u 回到上一次更改的版本

“Already at oldest change”,意思是“已经是最早的更改”。表示已到最早的提交,无法再回退到更早的版本。

定位命令

(上方的0是数字)

行号的显示和隐藏

(nu是number行号的缩写)

示例

删除命令

复制/粘贴

粘贴前需要在插入模式,否则容易导致数据的丢失

替换和取消

替换模式中,vim左下角会出现 -- Replace --

substitute 替换; globale 全部的

 : 代表处于末行模式

% 代表整个文档

^ 代表行首

$ 代表行尾


http://www.ppmy.cn/ops/150422.html

相关文章

代码随想录Day34 | 62.不同路径,63.不同路径II,343.整数拆分,96.不同的二叉搜索树

代码随想录Day34 | 62.不同路径,63.不同路径II,343.整数拆分,96.不同的二叉搜索树 62.不同路径 动态规划第二集: 比较标准简单的一道动态规划,状态转移方程容易想到 难点在于空间复杂度的优化,详见代码 class Solution {public int uniq…

MyBatis-Plus 逆向工程原理及使用指南

概述 MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,它简化了开发人员对数据库的操作,并提供了代码生成器、分页插件等功能。其中的代码生成器(即逆向工程),能够根据数据库中的表结构自动生成实…

【微服务】面试题 6、分布式事务

分布式事务面试题讲解 一、问题背景与解决方案概述 因微服务项目涉及远程调用可能引发分布式事务问题,需解决。主流解决方案有阿里 Seata 框架(含 XA、AT、TCC 模式)和 MQ。 二、Seata 框架关键角色 事务协调者(TC)&…

【Ubuntu与Linux操作系统:九、Shell编程】

第9章 Shell编程 9.1 Shell编程基本步骤 Shell编程是一种通过编写脚本文件,使用Shell解释器执行批处理任务的方法。基本步骤如下: 1. 确定需求 在编写脚本之前,明确要实现的功能,例如文件备份、日志分析或自动化部署等。需求的清…

矩阵Strassen 算法

Strassen 算法 不要与多项式乘法的 Schnhage-Strassen 算法混淆。 在线性代数中,以 Volker Strassen 命名的 Strassen 算法是一种矩阵乘法算法。对于大型矩阵,它比标准矩阵乘法算法更快,具有更好的渐近复杂度,尽管朴素算法通常更适…

59_Redis键值设计

1.拒绝BigKey BigKey通常以Key的大小和Key中成员的数量来综合判定。例如: Key本身的数据量过大:一个String类型的Key,它的值为5MB。Key中的成员数过多:一个ZSET类型的Key,它的成员数量为10000个。Key中成员的数据量过大:一个Hash类型的Key,它的成员数量虽然只有1000个但…

ref() 和 reactive() 区别

ref() 和 reactive() 都是 Vue 3 中用于创建响应式数据的方法,但它们之间存在一些关键差异。 首先,ref() 用于创建响应式的标量值,比如数字、字符串、布尔值等基本数据类型,以及对象和数组等复杂数据类型。当你使用 ref() 时&…

了解Webpack:现代前端开发的静态模块打包器

在现代前端开发中,Webpack已成为不可或缺的工具之一。作为一个静态模块打包器(module bundler),Webpack通过分析和处理项目中的资源依赖关系,将它们打包成一个或多个bundle(捆绑包),…