Linux系列文章 —— vim的基本操作(误入vim退出请先按「ESC」再按:q不保存退出,相关操作请阅读本文)

news2024/11/27 1:45:59

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、vim的基本概念
  • 二、vim的基本操作
    • 1.退出vim编辑器
    • 2.进入vim编辑器
    • 3.模式功能及切换
  • 三、vim命令模式命令集
    • 1.光标移动
    • 2.查找字符
    • 3.复制粘贴删除
    • 4.撤销、重做与重复做
    • 5.插入模式
    • 6.保存与退出
    • 7.环境修改
  • 四、总结
    • 1.vim的三种基本模式
    • 2.vim基本操作


前言

Linux,是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。博主将全程带领大家学习Linux的相关知识,本系列文章参考《鸟哥的Linux私房菜》推荐大家进行阅读学习。


一、vim的基本概念

请添加图片描述
vim分为三种基本模式:

  • 命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
  • 插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

二、vim的基本操作

1.退出vim编辑器

  1. 先按「ESC」

  2. 请根据自己情况决定退出操作

    • 误入vim,不想修改文件,希望安全退出,请输入:q!

    如果你是误入vim编辑器的纯小白,为了防止你对文件进行误修改,:q!强制退出对文件的修改不会进行保存。

    • 已经按自己需求对文件进行编辑,需要保存并退出,请输入:wq

    对有较为明确的目的去修改文件,但不知道如何进行保存并退出的操作,:wq可以进行保存并退出的操作。

  3. 恭喜你成功退出vim,如果有相关需求,请仔细阅读本文,了解vim的相关操作。

2.进入vim编辑器

vim [文件名]

请添加图片描述

注意:进入vim之后是出于[命令模式],命令模式下无法对内容进行直接编辑。

3.模式功能及切换

请添加图片描述
[命令模式] 切换到 [插入模式]

  • 输入 i
  • 输入 a
  • 输入 o

当处于[插入模式],可以进行文本编辑

[插入模式]切换至[命令模式]

  • 按「ESC」

当想退出[插入模式]时可以先按一下「ESC」键转到[正常模式]。

[命令模式]切换至[底行模式]
请添加图片描述

  • 「shift + ;」, 其实就是输入「:」
  • : w(保存当前文件)
  • : q(不保存直接退出vim)
  • : wq(存盘并退出vim)
  • : q!(强制退出)

当处于底行模式时可以保存退出,或者运行其他指令

三、vim命令模式命令集

请添加图片描述

1.光标移动

输入功能
h 或 ←光标向左移动一个字符
j 或 ↓光标向下移动一个字符
k 或 ↑光标向上移动一个字符
l 或 →光标向右移动一个字符
0移动到光标所在行的开头位置
$移动到光标所在行的结尾位置
G移动到文件的最后一行
nG移动到第n行
gg移动到文件的第一行 == 1G
n[Enter]光标向下移动n行 == nj

2.查找字符

输入功能
/str光标向下寻找名为str的字符串
?str光标向上寻找名为str的字符串
n光标向下继续寻找名为str的字符串
N光标向上继续寻找名为str的字符串

3.复制粘贴删除

输入功能
x向后删除一个字符
X向前删除一个字符
nx向后删除n个字符
nX向前删除n个字符
dd删除(剪切)光标所在的那一整行
ndd删除(剪切)光标所在的向下n行
d$删除(剪切)光标所在处到该行结尾的所以字符
d0删除(剪切)光标所在处到该行开头的所以字符
yy复制光标所在的那一行
nyy复制光标所在行及其向下n行
y$复制光标所在处到该行结尾的所以字符
y0复制光标所在处到该行开头的所以字符
p将已复制(剪切)的数据在光标的下一行向下进行粘贴
P将已复制(剪切)的数据在光标的所在行向上进行粘贴

4.撤销、重做与重复做

输入功能
u恢复前一个操作,win下的[Ctrl]+z操作
[Ctrl]+r重做前一个操作,win下的[Ctrl]+[Shift]+z操作
.重复前一个操作,例如重复删除,重复粘贴

5.插入模式

输入功能
i从目前光标处插入
I从目前光标所在行的第一个非空格符处开始插入
a从目前光标所在的下一个字符处开始插入
A从目前光标所在行的最后一个字符处开始插入
o在目前光标所在行的下一行处插入新的一行
O在目前光标所在行的上一行处插入新的一行
r替换光标所在处的一个字符
R会一直替换自光标开始向后的字符,直到按下「ESC」停止

6.保存与退出

输入功能
:w将编辑的内容写入硬盘文件中
:w!若文件属性为只读时强制写入该文件。至于是否可以成功写入,与你对该文件的文件权限有关
:q退出vim
:q!若曾修改过文件,但又不想保存,可以不保存强制退出
:wq保存后退出
:wq!强制保存后退出
:ZZ若文件没有修改,则不保存退出;若文件修改,则保存退出
:w [filename]将编辑的文件另存为[filename]文件中
! command可以在不退出vim的情况下使用Linux指令

7.环境修改

输入功能
:set nu显示vim编辑器行号
:set nonu取消显示vim编辑器行号

注意:在vim中,数字通常表示重复做几次,或者是去到第几个位置的意思。


四、总结

1.vim的三种基本模式

  • 命令模式
  • 插入模式
  • 底行模式

2.vim基本操作

  • 打开,关闭,查看,查询,插入,删除,替换,撤销,复制等操作

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

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

相关文章

springboot之webmvc和webflux浅析

webmvc和webflux作为spring framework的两个重要模块,代表了两个IO模型,阻塞式和非阻塞式。 1、webmvc webmvc是基于servlet的阻塞式模型,一个请求到达服务器后会单独分配一个线程去处理请求,如果请求包含IO操作,线程…

车载以太网 - DoIP时间参数 - 06

时间参数在所有的协议定义中都无法被忽略的一块重要部分,之前的CAN&CANFD诊断协议总,ISO 16765就有相关的诊断时间参数的定义;在DoIP中,也有同样的时间参数定义,不过他是放在ISO 13400 - 2中,今天我们一起来看下这一块的内容。 ISO 13400原文文档 中文释义 时间参数定…

北大硕士LeetCode算法专题课-基础算法之排序

接连上篇:北大硕士LeetCode算法专题课---算法复杂度介绍_骨灰级收藏家的博客-CSDN博客 冒泡排序 冒泡排序(Bubble Sort)是一种很原始的排序方法,就是通过不断地交换“大数”的位置达到排序的目的。 因为不断出现“大数”类似于水…

HTML实现狗屁不通文章生成器

演示 实现 css html, body {background: radial-gradient(#181818, #000000);margin: 0;padding: 0;border: 0;-ms-overflow-style: none;}.btn {display: inline-block;color: #fff;cursor: pointer;font-size: 1em;font-weight: 400;max-weight: 20%;position: relative;tex…

【零基础】学python数据结构与算法笔记8

文章目录前言46.数据结构介绍47.列表48.栈的介绍49.栈的应用:括号匹配问题50.队列的介绍51.队列的实现52.队列的内置模块总结前言 学习python数据结构与算法,学习常用的算法, b站学习链接 46.数据结构介绍 数据结构是指相互之间存在着一种…

双点双向重发布以及路由策略

目录前言实验要求基础配置启动rip 及 ospf 协议双向重发布路由策略前言 1,由于ASBR在重发布路由条目时,将清除原有协议携带的度量,会添加新协议的度量种子,一旦2,使用双点双向重发布时,可能会出现选路不佳…

docker容器日志清理

最近发现linux(Centos 7)虚拟机的空间不够了,想创建新的容器都失败。剩下不到100M。之前还有好几个G。然后每天不定期查看磁盘空间,发现不断被蚕食。今天比昨天就少了100M;然后下午比上午又少了50M。谁在吞噬服务器的硬…

Nacos学习之使用Nacos作为配置中心

使用Nacos作为配置中心 简单使用 1、导入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-nacos-config</artifactId></dependency>2、创建bootstrap.properties文件&#xff0c;在其中对nacos…

Vulnhub靶机:MATRIX-BREAKOUT_ 2 MORPHEUS

目录介绍信息收集主机发现主机信息探测网站探测目录爆破反弹shell提权Flag1内核提权 & Flag2介绍 系列&#xff1a;Matrix-Breakout&#xff08;此系列共1台&#xff09; 发布日期&#xff1a;2022 年 7 月 11 日 难度&#xff1a;中级 运行环境&#xff1a;Virtualbox运行…

快速搭建ChatGPT的AI聊天QQ机器人[含问题解决办法]

一、cqhttp 1. 下载cqhttp 首先安装 cqhttp 框架&#xff0c;我们从 release 界面下载最新版本的 go-cqhttp&#xff0c;需要根据不同的系统选择不同的文件 我目前是mac系统&#xff0c;暂时仅举例macOs Intel 版 Macos&#xff1a; go-cqhttp_darwin_amd64.tar.gz 2. 启动 …

jvm运行过程

VM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间. JVM体系主要是两个JVM的内部体系结构分为三个子系统和两大组件&#xff0c;分别是&#xff1a;类装载器&#xff08;ClassLoader&#xff09;子系统、执行引擎…

5.1、运输层概述

之前所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题&#xff0c;实现了主机到主机的通信\color{red}实现了主机到主机的通信实现了主机到主机的通信。 网络层的作用范围主机到主机 但实际上在计算机网络中…

帮助聊天回复的软件

在线客服在工作时&#xff0c;时常能遇到在某一个时间段一大批客户集中咨询的情况&#xff0c;使用客服快速回复软件能够使客服在第一时间进行高效的回复。 前言 在线客服在工作时&#xff0c;时常能遇到在某一个时间段一大批客户集中咨询的情况&#xff0c;通常这种情况下也是…

P2010 [NOIP2016 普及组] 回文日期————C++

题目 [NOIP2016 普及组] 回文日期 题目背景 NOIP2016 普及组 T2 题目描述 在日常生活中&#xff0c;通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用 888 位数字表示一个日期&#xff0c;其中&#xff0c;前 444 位代表年份&#xff0c;接下来 222 位…

算法测试中的召回率和精确率详解

基本概念 TP&#xff08;True Positive&#xff09;&#xff1a;正确的正例&#xff0c;一个实例是正类并且也被判定成正类FN&#xff08;False Negative&#xff09;&#xff1a;错误的反例&#xff0c;漏报&#xff0c;本为正类但判定为假类FP&#xff08;False Positive&am…

基于 java springboot+mybatis二手物品网站系统设计和实现

基于 java springbootmybatis二手物品网站系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获…

linux系统中QT里面多线程的使用方法

大家好&#xff0c;今天主要和大脚聊一聊&#xff0c;如何使用QT中的多线程的方法。 第一&#xff1a;多线程基本简介 QThread 线程类是实现多线程的核心类。Qt 有两种多线程的方法&#xff0c;其中一种是继承 QThread 的 run()函数&#xff0c;另外一种是把一个继承于 QObject…

Excel教程

目录 1.设置Excel界面以及保存Excel 1.1 自定义快速访问工具栏 1.2 自定义功能区的使用 1.2.1 自定义选项卡 1.3 自定义页面 1.4 保存时设置文件密码 2.常用的高效操作 2.1 快速填充 2.1.1 快速填充实现拆分重组 2.2 快速分析数据 2.2.1 格式化​编辑 2.2.2 图表&#xff0c…

yolov5 引入RepVGG模型结构

&#xff08;一&#xff09;前情 这个工作已经有大佬用在自己的工程里了&#xff0c;他的帖子链接&#xff1a;https://blog.csdn.net/weixin_45829462/article/details/120372921 但他的这个lite主要不是研究repvgg的&#xff0c;是做移动端的&#xff0c;但是里面加了这个re…

【BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…