Linux vi/vim教程

news2024/11/14 6:50:54

所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
** 什么是 vim?**
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
vi/vim 的使用
vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:可以进行删除、复制、粘贴等快捷操作。
输入模式:又称编辑模式,可以编辑文本内容
底线命令模式:又称末行模式,可以通过命令操作文件,比如搜索、保存、退出等

1、命令行模式

打开文件后就进入了命令行模式,打开方式有三种:

  1. 如果文件存在,则直接打开;如果文件不存在,则新建一个文件
Vim 文件路径/文件名
  1. 打开文件时,将光标移动到指定行
Vim +行数 文件路径/文件名
  1. 打开文件时,「高亮」显示关键字
Vim /关键字 文件路径/文件名

进入命令模式后,可以进行光标移动、复制粘贴、搜索替换等操作。
注意:命令模式中,敲击的键盘会被识别为命令,而不是输入内容。
移动光标指令

指令作用
h 或 左方向键(←)光标向左移动一个字符
l 或 右方向键(→)光标向右移动一个字符
k 或 上方向键(↑)光标向上移动一个字符
j 或 下方向键(↓)光标向下移动一个字符
0 或 Ctrl+6 或 home键光标移动到行首
Ctrl+4 或 end键光标移动到行尾
Ctrl + f 或 pg up键【屏幕】向下移动一页
Ctrl + b 或 pg dn键【屏幕】向上移动一页
gg移动到文件的第一行
G移动到文件的最后一行
nG移动到文件的第n行

搜索替换指令

指令作用
/字符串 + 回车向下搜索指定字符串
n继续向下搜索下一个字符串
?字符串 + 回车向上搜索指定字符串
N继续向上搜索下一个字符串
:%s/word1/word2/g将文件中的word1替换为word2
:%s/word1/word2/gc将文件中的word1替换为word2,但替换前需要用户确认!
:1,10s/word1/word2/g将第1行到第10行的word1替换为word2

复制粘贴删除

指令作用
x删除后一个字符
X删除前一个字符
dd剪切一行
数字dd剪切多行
yy复制一行
数字yy复制多行
p粘贴到下一行
P粘贴到上一行
u v撤回操作
Ctrl + r撤回刚才的撤回操作

提示:vim中的「数字键」代表重复次数,可以配合其他指令简化操作,比如:

  • 10↓或10j 可一次向下移动10行。
  • 2p 可以一次粘贴2行
  • 2dd 可以一次剪切2行

2、输入模式

在命令模式下按下i就进入了输入模式。

指令作用
i进入输入模式,在光标的前方插入,进入后显示 – INSTER–
a进入输入模式,在光标的后方插入,进入后显示 – INSTER–
o进入输入模式,在光标下一行插入新行,进入后显示 – INSTER –
R进入取代模式,输入的值会取代光标所在的内容,进入后显示 – REPLACE –
esc键退出编辑模式(输入模式)

进入输入模式后,可以使用以下按键:

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

提示:

  • 屏幕左下角出现 –INSTER– 或 –REPLACE–字样,表示进入了编辑模式,这时才可以输入内容。
  • 按下esc键,确认下右下角–INSTER–或 –REPLACE–字样消失后,再进行其他操作,以免误操。
  • 想要「撤回」编辑模式下的操作,需要先退出编辑模式,再按 u 键

3、 底线命令模式(末行模式)

在命令模式下按下:(英文冒号)就进入了底线命令模式,左下角出现 :。

指令作用
:w保存
:q退出
:wq保存后退出
:q!不保存,强制退出
:set nu显示行号
:set nonu取消 显示行号
:w [文件名]将编辑后的内容保存到另一个文件中(另存为)
:2,5 w [文件名]将第2到5行的内容保存到另一个文件中(指定行另存为)
:r [文件名]输入另一个文件的内容,到光标的下一行

按ESC键可随时退出底线命令模式。

为了方便记忆,这三个模式之间的转换关系如下图:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将vue-devtools打包成edge插件

文章目录一、从github拉vue-devtools源码二、用npm安装yarn三、使用yarn安装并编译源码四、将vue-devtools打包成edge插件五、离线安装edge插件一、从github拉vue-devtools源码 目前最新的版本是v6.5.0,地址:https://github.com/vuejs/devtools 二、用n…

第四阶段17-关于Redis中的list类型,缓存预热,关于Mybatis中的`#{}`和`${}`这2种格式的占位符

关于Redis中的list类型 Redis中的list是一种先进后出、后进先出的栈结构的数据。 在使用Redis时,应该将list想像为以上图例中翻转了90度的样子,例如: 在Redis中的list数据,不仅可以从左侧压入,也可以选择从右侧压入…

Linux04-冯诺依曼体系结构||操作系统||进程概念

1.认识冯诺依曼系统 1.1冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 输入单元:包括…

Linux: 中断只被GIC转发到CPU0问题分析

文章目录1. 前言2. 分析背景3. 问题4. 分析4.1 ARM GIC 中断芯片简介4.1.1 中断类型和分布4.1.2 拓扑结构4.2 问题根因4.2.1 设置GIC SPI 中断CPU亲和性4.2.2 GIC初始化:缺省的CPU亲和性4.2.2.1 boot CPU亲和性初始化流程4.2.2.1 其它非 boot CPU亲和性初始化流程5.…

【蓝桥杯入门不入土】变幻莫测的链表

文章目录一:链表的类型单链表双链表循环链表二:链表的存储方式三:链表的定义删除节点添加节点四:实战练习1.设计链表2. 移除链表元素最后说一句一:链表的类型 单链表 什么是链表,链表是一种通过指针串联在…

最经典的黑客技术入门知识大全

第一节、什么是黑客 以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情&…

LCR数字电桥软件下载安装教程

软件:LCR数字电桥软件NS-LCR 语言:简体中文 环境:NI-VISA 安装环境:Win10以上版本(特殊需求请后台私信联系客服) 硬件要求:CPU2GHz 内存4G(或更高)硬盘500G(或更高) …

ProcDump+Mimikatz绕过杀毒软件抓密码

抓密码的奇淫技巧背景1、原理2、实操演示背景 如果主机上装了杀毒软件,开了防火墙,例如:360、火绒之类的话。Mimikatz就会被检测为病毒,无法使用,而想要对Mimikatz进行二次开发或者免杀难度会比较大,那有办…

边缘计算开源项目解读——kubeedge mappers实现

0 背景 本文重点解读kubeedge项目中的mapper模块。该模块位于kubeedge的edgecore的南向边缘侧,主要对接入kubeedge的终端设备,进行协议的适配和转换,使其可以和边缘设备通信,转换后的协议是我们前面描述的mqtt协议,当然…

玩转ThreadLocal

前言 ThreadLocal想必都不陌生,当多线程访问同一个共享变量时,就容易出现并发问题,为了保证线程安全,我们需要对共享变量进行同步加锁,但这又带来了性能消耗以及使用者的负担,那么有没有可能当我们创建一个…

只知道删除单张表的数据?不知道删除多张表的数据?

一些废话 可能在某某一天,你在表删除表数据的时候,不想一张表一张表的去删除,想把两个表的数据同时删除;然后你就会去搜索,然后你就很有很有很有很有可能会看到 me 的这篇优质(呸!!…

HOT100--(5)最长回文子串

点击查看题目详情 中心扩散法 思路: 遍历字符串,以每个字符为中心点向两边扩散,如果遇到不一样的就跳出循环。以此类推,最后截取最大回文串返回。 细节 字符个数不一定都是奇数。当个数是偶数的是时候,我们可以“忽…

学习红客技术必备,手把手教你成为“安防第一人”

互联网时代已悄悄来临,作为新时代的人们,我们日常生活、工作、学习方面都需要借助互联网来完成,这样,又产生一种新的问题,那就是网络安全的问题,有时我们拼命加班好不容易完成的东西,在一夜之间…

优化Linux系统性能的必杀技:调整进程优先级!学会使用nice命令,让你的系统飞一般的顺畅!

文章目录前言一. nice命令介绍1.1 nice的介绍1.2 cpu资源的调度1.3 nice是控制内核吗?二. 语法格式及常用选项三. 参考案例3.1 将ls命令的优先级调整为最高3.2 将 find 命令的优先级调整为最低3.3 如何查看nice值四. nice和renice的区别总结前言 大家好&#xff0c…

Zookeeper的安装

目录 Zookeeper的安装 1、环境准备 2、上传 3、解压文件到opt/zookeeper目下 4、安装完后进入zookeeper,找到conf目录 5、复制zoo_sample.cfg 6、编辑zoo.cfg 7、复制一份会话,进入zookeeper安装目录,创建一个文件夹zkdata&#xff0…

Linux·DMA 与零拷贝技术

DMA 与零拷贝技术注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。1. 数据的四次拷贝与四次上下文切换很多应用程序在面临客户端请求时,可以等价为进行如下的系统调用:File.read(file, buf, len);…

NOC2021年测试卷3

1. 角色初始位置坐标是(0,0),执行下面程序后,角色会出现在什么位置上?( ) A. x坐标为10,y坐标为50B. x坐标为40,y坐标为50C. x坐标为50,y坐标为40D. x坐标为30,y坐标为502. 执行下面程序后,按一次→键,兔子会?() A. 向右移动10步B. 向左移动10步C. 向上移动…

入职外包三个月,我提桶跑路了

有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…

基于龙芯+国产FPGA 的VPX以太网交换板设计(一)

“棱镜门”的曝光,暴露出我国的信息安全存在极大的安全隐患,作为信息传输 载体的网络设备,其国产化需求迫切,国产处理器、国产可编程逻辑器件、以太网交 换芯片等具有良好的应用前景,另一方面,宽带数据业务…

Java 对象深拷贝

需求 写一个java对象深拷贝工具,用以对象深拷贝。 分析 在 Java 中,变量间值的传递分为两种。对于 int,char,string,等基本数据类型进行值传递时,使用值传递。即原变量 a 的值与新变量 b 的值相等,且 a 与 b 拥有不同的内存地址…