Linux vi/vim 教程

文章目录

  • 【 1. vi/vim 的三种模式 】
    • 1.1 命令模式
    • 1.2 输入模式
    • 1.3 底线命令模式
  • 【 2. 实例 】
  • 【 3. vim 的其他命令 】

  • 所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。
  • 目前我们使用比较多的是 vim 编辑器。vim 从 vi 发展出来,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

【 1. vi/vim 的三种模式 】

  • 基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。
    在这里插入图片描述

1.1 命令模式

  • 用户刚刚启动 vi/vim, 默认进入命令模式(也称普通模式)
  • 此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
  • 命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。
  • 以下是命令模式常用的几个命令:
命令作用
i切换到输入模式,在光标当前位置开始输入文本。
: (英文冒号)切换到底线命令模式,以在最底一行输入命令。
x删除当前光标所在处的字符。
a进入插入模式,在光标下一个位置开始输入文本。
o在当前行的下方插入一个新行,并进入插入模式。
O在当前行的上方插入一个新行,并进入插入模式。
dd删除当前行。
yy复制当前行。
p(小写)粘贴剪贴板内容到光标下方。
P(大写)粘贴剪贴板内容到光标上方。
u撤销上一次操作。
Ctrl + r重做上一次撤销的操作。
:w保存文件。
:q退出 Vim 编辑器。
:q!强制退出Vim 编辑器,不保存修改。

1.2 输入模式

  • 输入模式中,常用操作:
操作作用
Esc退出输入模式,切换到命令模式
字符按键以及Shift组合输入字符
Enter回车键,换行
Backspace退格键,删除光标前一个字符
Delete删除键,删除光标后一个字符
方向键在文本中移动光标
HOME/END移动光标到行首/行尾
Page Up/Page Down上/下翻页
Insert切换光标为输入/替换模式,光标将变成竖线/下划线

1.3 底线命令模式

  • 底线命令模式可用的命令非常多。
  • 按 ESC 键可随时退出底线命令模式。
  • 在底线命令模式中,常用的命令有(已经省略了冒号):
命令作用
:w保存文件。
:q退出 Vim 编辑器。
:wq保存文件并退出 Vim 编辑器。
:q!强制退出Vim编辑器,不保存修改。

【 2. 实例 】

  • 1. 进入到 vi/vim
    在 Shell 中输入如下命令,默认进入 命令模式。
vi  test.txt


在这里插入图片描述

当对话框中下方显示 New File 时,则表示此文件不存在,vim 编辑器新建了一个文件。如果没有显示,New File则表示文件存在。

  • 2. 进入输入模式
    按下 i 进入输入模式。这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以我们可以进行任何的编辑。
    在这里插入图片描述
  • 3. 返回命令模式
    按下 Esc 这个按钮即可,马上我们就会画面左下角的 – INSERT – 不见了,即可以表示进入了命令模式。
    在这里插入图片描述
  • 4. 在命令模式中按下 :wq 再换行表示储存后离开 vim
    在这里插入图片描述
  • 5. 最后返回到 Shell
    在这里插入图片描述

【 3. vim 的其他命令 】

Linux vi/vim

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/325705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年初级会计资格考试报名照片要求,千万不要直接上传哦

2024年初级会计资格考试照片要求,千万不要直接上传哦。 第一步:支付宝搜索"亿鸣证件照"或者微信搜索”随时照“,然后进入小程序的搜索列表搜索"初级会计",然后上传一张生活照或者自拍一张,就能制…

DBeaver配置达梦数据库连接

随着信创逐渐推广,达梦数据库也成为流行。下面展示如何使用dbeaver配置达梦数据库连接 1 驱动新建 菜单,数据库->驱动管理器 2 驱动信息填写 选择新建之后,弹出一个填写页面 需要填写的几个关键信息: 驱动名称:…

数据结构第六弹---带头双向循环链表

双向循环链表 1、带头双向循环链表概念2、带头双向循环链表的优势3、带头双向循环链表的实现3.1、头文件包含和结构定义3.2、创建新结点3.3、打印3.4、初始化3.5、销毁3.6、尾插3.7、头插3.8、头删3.9、尾删3.10、查找3.11、在pos之前插入3.12、删除pos位置3.13、判断是否为空3…

lotus-farcaster 搭建

lotus 开源监控仪表盘 安装修改配置文件监听钱包地址指定安装目录可以修改脚本指定miner配置文件路径执行安装脚本 修改修改端口为9200修改安装脚本 9100改为9200,重新安装修改检查脚本 端口 9200,重新安装 安装成功prometheus 安装创建存储目录 配置文件…

对比开源大语言模型的自然语言生成SQL能力

背景 NL-to-SQL(自然语言到结构化查询语言)任务是自然语言处理(NLP)领域的一个难题。 它涉及将自然语言问题转换为 SQL 查询,然后可以针对关系数据库执行该查询来回答问题。 该任务是 NLP 中的一个专门子领域&#xf…

fmincon函数求解非线性超越方程的学习记录

最近的算法中用到了fmincon函数,寻找多变量非线性方程最小值的函数;因此学习一下; fmincon函数的基础语法如下所示: fmincon函数是为了求解下列方程的最小值; b 和 beq 是向量,A 和 Aeq 是矩阵&#xff0c…

基于python的leetcode算法介绍之动态规划

文章目录 零 算法介绍一 例题介绍 使用最小花费爬楼梯问题分析 Leetcode例题与思路[118. 杨辉三角](https://leetcode.cn/problems/pascals-triangle/)解题思路题解 [53. 最大子数组和](https://leetcode.cn/problems/maximum-subarray/)解题思路题解 [96. 不同的二叉搜索树](h…

进阶C语言学习前序

我们前期用了二十天的时间,学习了各种函数,我们已经初步具有敲写代码的能力,但是我们想要使用C语言去学习单片机的东西还是远远不够的,那么我们就需要深入了解和掌握更加深入的C语言知识,就有了接下来的学习计划&#…

基于JavaWeb+SSM+Vue校车购票微信小程序的设计与实现系统的设计和实现

基于JavaWebSSMVue校车购票微信小程序的设计与实现系统的设计和实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图 源码获取入口 KaiTi 报告 一、选题的目的和意义 本次开发的校车购票微信小程序相对于传统的APP脱离了平台的限制,只要完成开发即…

Java字符串:构建和操作字符序列的动态工具

👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、常用方法1、字符串构造2、String对象的比较Ⅰ、比较是否引用同一个对象Ⅱ、 按照字典序比较 3、转换Ⅰ、数值和字符串的转换…

分布式事务问题

传统的单机事务。在传统数据库事务中,必须要满足四个原则:ACID原则 分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如: 跨数据源的分布式事务 跨服务的分布式事务 综合情况 在分布式…