ubuntu系统中vim编辑文件的用法

devtools/2024/10/4 13:17:36/

Vim 是一个功能强大的文本编辑器,广泛用于 Unix 和类 Unix 系统(如 Ubuntu)中。下面是一些基本的 Vim 用法,帮助你在 Ubuntu 系统中编辑文件。

安装 Vim

在大多数 Ubuntu 发行版中,Vim 已经预装。如果没有,你可以通过以下命令安装:

sudo apt update
sudo apt install vim

启动 Vim

要启动 Vim 并打开一个文件,只需在终端中输入:

vim 文件名

例如:

vim example.txt

如果文件不存在,Vim 会创建一个新的空文件。

Vim 模式

Vim 有几种模式,主要包括:

  • 普通模式(Normal Mode):默认模式,用于导航和命令输入。
  • 插入模式(Insert Mode):用于输入文本。
  • 可视模式(Visual Mode):用于选择文本。
  • 命令模式(Command-Line Mode):在普通模式下按 : 进入,用于执行更复杂的命令。

基本操作

1. 进入插入模式

在普通模式下,按 i 进入插入模式,在光标前插入文本。

  • I:在当前行的第一个非空字符前插入。
  • a:在光标后插入文本。
  • A:在当前行的行尾插入。
  • o:在当前行后插入新行并开始输入。
  • O:在当前行前插入新行并开始输入。
2. 保存和退出

在普通模式下:

  • :w:保存文件。
  • :q:退出 Vim。
  • :wq:保存并退出。
  • :q!:不保存并强制退出。
  • :w!:强制保存文件(如果文件是只读的)。
3. 光标移动

在普通模式下:

  • h:左移一个字符。
  • j:下移一行。
  • k:上移一行。
  • l:右移一个字符。
  • w:向前移动到下一个单词的开头。
  • b:向后移动到上一个单词的开头。
  • e:向前移动到当前单词的结尾。
  • 0(数字零):移动到行首。
  • $:移动到行尾。
  • G:移动到文件末尾。
  • gg:移动到文件开头。
  • {n}G:移动到文件的第 n 行(n 为行数)。
4. 删除文本

在普通模式下:

  • x:删除光标所在字符。
  • dw:删除从光标位置开始的一个单词。
  • dd:删除当前整行。
  • d$:删除从光标位置到行尾的内容。
  • d0:删除从光标位置到行首的内容。
5. 复制和粘贴

在普通模式下:

  • yy:复制当前整行。
  • yw:复制从光标位置开始的一个单词。
  • p:粘贴到光标位置之后。
  • P:粘贴到光标位置之前。
6. 撤销和重做

在普通模式下:

  • u:撤销上一个操作。
  • Ctrl + r:重做上一个被撤销的操作。
7. 查找和替换

在普通模式下,按 / 进入查找模式,输入要查找的字符串,然后按 Enter

  • n:查找下一个匹配项。
  • N:查找上一个匹配项。

在命令模式下,使用 :s:%s 等命令进行替换:

  • :s/旧字符串/新字符串/:仅替换当前行的第一个匹配项。
  • :s/旧字符串/新字符串/g:替换当前行的所有匹配项。
  • :%s/旧字符串/新字符串/:替换整个文件中的第一个匹配项。
  • :%s/旧字符串/新字符串/g:替换整个文件中的所有匹配项。

额外提示

  • 可视化模式:在普通模式下按 v 进入字符可视化模式,按 V 进入行可视化模式,按 Ctrl + v 进入块可视化模式。
  • 折叠代码:在普通模式下,使用 zc 折叠当前代码块,使用 zo 展开当前代码块。
  • 自定义 Vim:可以通过编辑 ~/.vimrc 文件来自定义 Vim 的配置。

这些只是 Vim 的基础用法,Vim 还有许多高级功能和插件,可以进一步提升编辑效率。


http://www.ppmy.cn/devtools/121264.html

相关文章

物理学基础精解【30】

这里写目录标题 微分导数一、导数的定义二、导数的几何意义三、导数的计算四、导数的应用 微分的定义一、基本概念二、数学定义三、具体形式四、几何意义五、与导数的关系 可微性与连续性一、连续性的定义二、可微性的定义三、可微性与连续性的关系四、结论 反函数的导数和隐函…

项目-坦克大战学习-子弹的移动与销毁

子弹的移动可以参照人机的移动方式,在创建出来的时候就将yidong设置为true然后给一个速度就行了,子弹的销毁代码可以借用坦克的超出检测代码,将检测到超出后执行的程序修改成销毁程序就行 对于子弹的销毁我们可以在列表中让那个超出边界的对…

AI面试指南:AI工具总结评测,助力求职季

AI面试指南:AI工具总结评测,助力求职季 摘要: 在竞争激烈的AI领域秋招季,准备充分并借助高效工具是提升面试通过率的关键。本文主要介绍一些针对秋招的AI面试工具和学习资源,分为简历优化、面试助手、手撕代码练习三个…

B 私域模式升级:开源技术助力传统经销体系转型

一、引言 1.1 研究背景 随着市场竞争加剧,传统经销代理体系面临挑战。同时,开源技术发展迅速,为 B 私域升级带来新机遇。在当今数字化时代,企业面临着日益激烈的市场竞争。传统的经销代理体系由于管理效率低下、渠道局限、库存压…

【Unity AI】基于 WebSocket 和 讯飞星火大模型

文章目录 整体AIManagerDialogueManagerUIManagerModelManagerAudioManagerSaveManager 详细部分AIUI动画音频 整体 AIManager 负责配置讯飞的appId,生成鉴权URL,通过WebSocket向服务器请求并返回数据(分为最终返回和流式返回) …

地产房源展示预约小程序制作线索发展

地产业每个城市中都有不少从业者和品牌,由于其交易金额较大,所以转化时间和路径相对较长,线上品牌宣传、客户获取转化和内容承载也是重要的点。 线上平台和渠道更加多样化,各种房产信息呈现利于分享和咨询,房地产房源展…

深入解析 RISC-V 递归函数的栈使用:以阶乘函数为例

在处理递归函数时,RISC-V 体系架构的寄存器数量有限。为了确保每次递归调用能正确保存和恢复寄存器的状态,栈(stack)提供了灵活的解决方案。本文将结合具体的汇编代码和递归的阶乘函数 fact 来讲解 RISC-V 中如何利用栈进行寄存器…

鸿蒙开发(NEXT/API 12)【硬件(获取智慧出行连接状态)】车载系统

获取智慧出行连接状态,用于应用UI呈现或基于HiCar认证汽车摄像头的业务交互等。 接口说明 接口名描述[getSmartMobilityStatus] (type: SmartMobilityType): SmartMobilityInfo获取智慧出行连接状态。 开发步骤 导入Car Kit模块。 import { smartMobilityCommon …