【Linux vi文本编辑器使用指南】

news/2025/3/4 17:39:28/

Linux vi文本编辑器使用指南

  • 一、模式切换
  • 二、启动与退出
  • 三、光标移动(命令模式)
  • 四、编辑文本
  • 五、查找与替换
  • 六、其他实用命令
  • 七、示例流程
  • 八、学习建议

Linux系统中的 vi(及其增强版 vim)是一款功能强大的文本编辑器,尽管其操作方式与图形化编辑器差异较大,但熟练掌握后能极大提升效率。以下是 vi的常用用法指南:


一、模式切换

  1. 命令模式(默认模式)
    启动vi后默认进入,用于执行命令(移动光标、删除、复制等)。按Esc可退出其他模式回到命令模式。

  2. 插入模式(输入文本)
    在命令模式下按以下键进入:

    • i: 光标前插入
    • a: 光标后插入
    • o: 在当前行下方插入新行
    • O: 在当前行上方插入新行
  3. 末行模式(执行高级操作)
    在命令模式下按:进入,用于保存、退出、查找替换等。


二、启动与退出

  • 启动vi

    vi 文件名      # 打开/新建文件
    
  • 退出vi(需在命令模式下)

    • :q:退出(无修改时)
    • :q!:强制退出(不保存修改)
    • :wq:x:保存并退出
    • :w 文件名:另存为

三、光标移动(命令模式)

  • 基础移动
    h(左)、j(下)、k(上)、l(右)
    或方向键(部分环境可能不支持)。

  • 快速跳转

    • 0:行首,$:行尾
    • gg:文件开头,G:文件末尾
    • Ctrl + f:向下翻页,Ctrl + b:向上翻页
    • 行号 + G:跳转到指定行(如10G

四、编辑文本

  • 删除

    • x:删除当前字符
    • dd:删除整行(3dd删除3行)
    • dw:删除一个单词
  • 复制与粘贴

    • yy:复制当前行(3yy复制3行)
    • p:粘贴到光标后,P:粘贴到光标前
  • 撤销与重做

    • u:撤销操作
    • Ctrl + r:重做

五、查找与替换

  • 查找(命令模式下)

    • /关键词:向下查找(按n跳下一个,N上一个)
    • ?关键词:向上查找
  • 替换(末行模式)

    • :%s/旧内容/新内容/g:全局替换
    • :1,10s/旧内容/新内容/g:替换1-10行

六、其他实用命令

  • 显示行号
    :set number:set nonumber取消)

  • 分屏操作

    • :split:水平分屏,:vsplit:垂直分屏
    • Ctrl + ww:切换窗口
  • 执行Shell命令
    :!命令(如:!ls查看目录)


七、示例流程

  1. 打开文件:vi test.txt
  2. i进入插入模式,输入文本。
  3. Esc返回命令模式,输入:w保存。
  4. 查找"error":输入/error,按n查找下一个。
  5. 替换所有"old"为"new":输入:%s/old/new/g
  6. 保存退出::wq

八、学习建议

  • 练习模式切换:熟练在命令模式与插入模式间切换。
  • 掌握高频命令:如ddyypu等。
  • 使用vimtutor:终端输入vimtutor获取官方交互教程。

掌握vi需要实践,初期可能稍显笨拙,但熟练后将成为高效编辑的利器!


http://www.ppmy.cn/news/1576599.html

相关文章

嵌入式产品级-超小尺寸游戏机(从0到1 硬件-软件-外壳)

Ultra-small size gaming console。 超小尺寸游戏机-Pico This embedded product is mainly based on miniaturization, followed by his game functions are also very complete, for all kinds of games can be played, and there will be relevant illustrations in the fo…

距离度量优化与缓存技术——距离度量优化与缓存技术

假设你在处理一个拥有50万条文本数据的分类任务,使用KNN算法时,每次预测需要遍历所有样本计算余弦相似度——单次预测耗时超过20秒,用户等待时间足以让实时推荐系统崩溃。 核心矛盾:距离计算是KNN的核心操作,但也是性…

蓝桥杯 - 每日打卡(类斐波那契循环数)

题目: 解题思路: 假设输入数值为number 分析题目,如果想要解决这个问题,我们需要实现两个方法,第一个检查number是否是类斐波那契,第二个是模拟1e7 - 0的过程,因为是求最大的,那么我们从1e7开始…

Spring Boot 集成 EasyExcel 导出 Excel 文件【复杂表头】

前言: Excel 导出在项目开发中是一个非常常见的业务场景,通过 Java 相关的类库可以轻松实现 Excel 的读写操作,常见的类库有 Apache POI、EasyPoi 和 EasyExcel,本篇我们要分享的是使用 EasyExcel 完成复杂表头的 Excel 导出&…

csrf与ssrf学习笔记

一、CSRF(Cross-Site Request Forgery) 1. 定义 攻击目标:利用用户已登录的合法身份,在用户不知情的情况下发起恶意请求。 核心条件:受害者需已登录目标系统,且浏览器会自动携带身份凭证(如 C…

Spring源码分析の配置类解析

文章目录 前言一、processConfigBeanDefinitions1.1、checkConfigurationClassCandidate1.2、parse1.2.1、处理配置类标记了Component 的情况1.2.2、处理 ComponentScan 注解 总结 前言 在Spring的注解模式中,通常在构造AnnotationConfigApplicationContext时需要传…

vue全局注册组件

1、Vue.component 是 Vue 提供的一个全局 API,用于注册一个全局组件。这意味着你可以在应用的任何地方使用这个组件,而无需再次引入。 使用方法: import Vue from vue; import MyComponent from ./MyComponent.vue;// 注册全局组件 Vue.com…

游戏引擎学习第129天

仓库:https://gitee.com/mrxiao_com/2d_game_3 小妙招: vscode:定位错误行 一顿狂按F8 重构快捷键:F2 重构相关的变量 回顾并为今天的内容做准备 今天的工作主要集中在渲染器的改进上,渲染器现在运行得相当不错,得益于一些优化和组织上的改进。我们计…