【探索Linux】—— 强大的命令行工具 P.3(Linux开发工具 vim)


阅读导航

  • 前言
  • vim简介
    • 概念
    • 特点
  • vim的相关指令
    • vim命令模式(Normal mode)相关指令
    • 插入模式(Insert mode)相关指令
    • 末行模式(last line mode)相关指令
  • 简单vim配置(附配置链接)
  • 温馨提示

前言

前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的一些知识,也学习了一些Linux的基本操作,也相信大家都掌握的不错,今天博主带大家了解一下Linux开发工具—— vim ,下面话不多说坐稳扶好咱们要开车了!!!😍

vim简介

概念

Vim(Vi IMproved)是一款在Unix和类Unix系统上广泛使用的文本编辑器。它是Vi编辑器的增强版,提供了更多的功能和改进的用户体验。Vim具有强大的编辑能力和高度可定制性,被广泛认为是一款程序员和系统管理员常用的编辑器之一。掌握Vim的基础概念和功能将使您在Linux系统上的文本编辑工作更加高效和便捷。通过实践和探索,您可以逐步熟悉和精通Vim的使用。
在这里插入图片描述

特点

  1. Vi和Vim:Vi是Unix系统上一款文本编辑器,它是Vim的前身。Vim(Vi IMproved)是对Vi进行了改进和增强的编辑器。Vim保留了Vi的所有功能,并新增了很多新的特性和命令。

  2. 终端:在Linux中,Vim通常在终端中运行。终端是Linux上的命令行界面,它允许用户通过命令行输入来与计算机进行交互。

  3. 模式:Vim具有不同的编辑模式,主要有三种模式:

    • 命令模式(Command mode):在启动Vim或按下Esc键后进入的默认模式。可以执行命令和移动光标。
    • 插入模式(Insert mode):在命令模式下按下iao等字符进入的模式。可以输入文本内容。
    • 可视模式(Visual mode):在命令模式下按下v进入的模式。可以选择和操作文本。
  4. 命令和快捷键:在命令模式下,使用各种命令和快捷键可以执行不同的操作,例如保存文件、退出Vim、复制粘贴文本等。

  5. 配置:Vim有一个配置文件.vimrc,用于设置和定制Vim的行为。用户可以在配置文件中添加自定义的颜色方案、缩进设置、插件管理等。

  6. 插件和扩展:Vim支持插件系统,允许用户安装扩展功能。有很多社区维护的插件可供选择,可以增加各种功能,如代码补全、语法高亮等。

  7. 帮助文档:Vim附带了详细的内置帮助文档。通过命令模式下的:help命令可以打开帮助系统,查找和学习Vim的命令和功能。

vim的相关指令

vim命令模式(Normal mode)相关指令

⭕Vim的命令模式(Normal mode)是启动Vim或按下Esc键后进入的默认模式。在命令模式下,可以执行各种命令和移动光标,以下是一些常用的命令指令:

  1. 光标移动:

    • h: 将光标向左移动一个字符。
    • j: 将光标向下移动一行。
    • k: 将光标向上移动一行。
    • l: 将光标向右移动一个字符。
    • 0: 将光标移动到当前行的行首。
    • $: 将光标移动到当前行的行尾。
    • gg: 将光标移动到文件的第一行。
    • G:将光标移动到文件的最后一行。
    • Ctrl+f: 向下翻页。
    • Ctrl+b: 向上翻页。
  2. 文本编辑:

    • i: 进入插入模式,在当前位置插入文本。
    • a: 进入插入模式,在当前位置的下一个字符插入文本。
    • o: 在当前行的下方插入一个新行,并进入插入模式。
    • O: 在当前行的上方插入一个新行,并进入插入模式。
    • x: 删除光标所在位置的字符。
    • dd: 删除当前行。
    • yy: 复制当前行。
    • p: 粘贴复制的内容。
  3. 撤销和重做:

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

    • /keyword: 在文件中向后查找关键字keyword
    • ?keyword: 在文件中向前查找关键字keyword
    • n: 在当前方向继续查找下一个匹配项。
    • N: 在当前方向继续查找上一个匹配项。
    • :s/old/new: 在当前行将第一个出现的old替换为new
    • :%s/old/new/g: 在整个文件中将所有出现的old替换为new
  5. 保存和退出:

    • :w: 保存文件。
    • :q: 退出Vim。
    • :wq:x: 保存并退出Vim。
    • :q!: 强制退出Vim,丢弃所有修改。

以上只是常用的命令模式指令的一部分,Vim命令模式提供了众多的命令和功能,几乎可以涵盖所有的文本编辑需求。通过练习和尝试,您将逐渐掌握更多的指令和技巧。您可以通过在命令模式下输入 :help 或查阅Vim的相关文档来获取更多信息。

插入模式(Insert mode)相关指令

⭕Vim的插入模式(Insert mode)是在命令模式下按下iao等字符进入的模式。在插入模式中,可以输入和编辑文本。以下是一些常用的插入模式指令:

  1. 插入文本:

    • i: 在当前光标位置之前插入文本。
    • a: 在当前光标位置之后插入文本。
    • o: 在当前行的下方插入一个新行,并进入插入模式。
    • O: 在当前行的上方插入一个新行,并进入插入模式。
  2. 光标移动:

    • Left ArrowCtrl+h: 将光标向左移动一个字符。
    • Right ArrowCtrl+l: 将光标向右移动一个字符。
    • Up ArrowCtrl+k: 将光标向上移动一行。
    • Down ArrowCtrl+j: 将光标向下移动一行。
    • Home: 将光标移动到当前行的行首。
    • End: 将光标移动到当前行的行尾。
  3. 删除和编辑:

    • BackspaceCtrl+h: 删除光标前的一个字符。
    • DeleteCtrl+d: 删除光标后的一个字符。
    • Ctrl+w: 删除光标前的一个单词。
    • Ctrl+u: 删除当前行的所有内容。
    • Ctrl+t: 缩进当前行。
    • Ctrl+d: 取消缩进当前行。
    • Ctrl+v: 输入特殊字符。
  4. 退出插入模式:

    • Esc: 退出插入模式,返回到命令模式。

在插入模式中,您可以自由地输入和编辑文本内容。一旦退出插入模式,就可以使用命令模式下的各种命令,如保存文件、撤销操作、搜索等。通过练习和使用,您将逐渐熟悉插入模式的操作方式,并能够高效地编辑和修改文本文件。

末行模式(last line mode)相关指令

⭕末行模式(Last Line mode)是在命令模式下以冒号开头的操作,用于执行一系列的操作和命令。在末行模式下,可以执行一些高级的编辑和操作,以下是一些常用的末行模式指令:

  1. 保存和退出:

    • :w:write: 保存当前文件。
    • :w filename:write filename: 以指定的文件名保存当前文件。
    • :q:quit: 退出Vim。
    • :q!:quit!: 强制退出Vim,丢弃所有修改。
    • :wq:x:xit:writequit: 保存并退出Vim。
  2. 打开和编辑文件:

    • :e filename:edit filename: 打开指定的文件。
    • :new:new filename: 在新的分窗口中打开指定的文件。
    • :tabnew:tabnew filename: 在新的标签页中打开指定的文件。
    • :split filename: 将当前窗口分割,并在新窗口中打开指定的文件。
    • :vsplit filename: 将当前窗口垂直分割,并在新窗口中打开指定的文件。
  3. 搜索和替换:

    • :/pattern:search pattern: 在当前文件中向后搜索匹配的模式。
    • :?pattern:search? pattern: 在当前文件中向前搜索匹配的模式。
    • :s/old/new:substitute/old/new: 将当前行第一个出现的old替换为new
    • :%s/old/new/g:%substitute/old/new/g: 将整个文件中所有出现的old替换为new
  4. 行号和跳转:

    • :n:n line_number: 跳转到指定行号。
    • :n:n +offset: 跳转到当前行号加偏移量的行。
    • :n:n -offset: 跳转到当前行号减偏移量的行。
    • :rewind:rew: 跳转到文件的第一行。
    • :last:la:$: 跳转到文件的最后一行。
    • :first:fi:1: 跳转到文件的第一行。
  5. 窗口管理:

    • :only:on: 关闭除当前窗口之外的其他窗口。
    • :sp filename:split filename: 将当前窗口水平分割,并在新窗口中打开指定的文件。
    • :vsp filename:vsplit filename: 将当前窗口垂直分割,并在新窗口中打开指定的文件。
    • :close:clo: 关闭当前窗口。
    • :wincmd h/j/k/lCtrl+w h/j/k/l: 使用方向键控制光标在窗口间移动。

以上是一些常见的末行模式指令,您可以在末行模式下执行各种命令和操作。通过练习和了解更多的指令,您可以更加高效地进行编辑和操作。

简单vim配置(附配置链接)

要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来博主推荐一个链接里面有详细的配置过程以及链接,直接按照上面的那样一步一步来相信好用的很。
概况预览

配置链接:VimForCpp

推荐阅读:Vim从入门到牛逼(vim from zero to hero)

温馨提示

感谢您对博主文章的关注与支持!在阅读本篇文章的同时,我们想提醒您留下您宝贵的意见和反馈。如果您喜欢这篇文章,可以点赞、评论和分享给您的同学,这将对我提供巨大的鼓励和支持。另外,我计划在未来的更新中持续探讨与本文相关的内容。我会为您带来更多关于Linux以及C++编程技术问题的深入解析、应用案例和趣味玩法等。请继续关注博主的更新,不要错过任何精彩内容!

再次感谢您的支持和关注。我们期待与您建立更紧密的互动,共同探索Linux、C++、算法和编程的奥秘。祝您生活愉快,排便顺畅!

在这里插入图片描述

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

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

相关文章

Go 安装配置

介绍Ubuntu20.04 安装和配置Go 1.安装Go 去这个地方下载Go https://go.dev/doc/install 如果之前安装过,可以参考这个(没有可以忽略) 下载完成后执行 sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz 然后修改环境变量 sudo ge…

GaussDB 实验篇+openGauss的4种1级分区案例

✔ 范围分区/range分区 -- 创建表 drop table if exists zzt.par_range; create table if not exists zzt.par_range (empno integer,ename char(10),job char(9),mgr integer(4),hiredate date,sal numeric(7,2),comm numeric(7,2),deptno integer,constraint pk_par_emp pri…

python数据分析需要学哪些,python数据分析要学多久

大家好,小编为大家解答python数据分析应该学什么软件的问题。很多人还不知道python数据分析需要什么基础,现在让我们一起来看看吧! 根据调查结果,十大最常用的数据工具中有八个来自或利用Python。Python广泛应用于所有数据科学领域…

开发一个RISC-V上的操作系统(八)—— 抢占式多任务(Preemptive Multitasking)

目录 一、抢占式多任务 二、代码实现 三、上板测试 本节的代码在仓库的 06_Preemptive_Muti_Task 目录下,仓库链接:riscv_os: 一个RISC-V上的简易操作系统 本文代码的运行调试会在前面开发的RISC-V处理器上进行,仓库链接:cpu_…

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基于…

Python Opencv实践 - 图像金字塔

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#图像上采样 #cv.pyrUp(src, dstNone, dstsizeNone, borderTypeNone) #参考资料:https://blo…

60页数字政府智慧政务大数据资源平台项目可研方案PPT

导读:原文《60页数字政府智慧政务大数据资源平台项目可研方案PPT》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 项目需求分析 项目建设原则和基本策略…

python做出来的作品,python作品创意简单

大家好,小编来为大家解答以下问题,python做出来的作品,python作品创意简单,今天让我们一起来看看吧! Python语言学习-----简易计算器的制作 我是一名普通的大二在校学生,在大二第一学期开设的课程里接触到P…

selenium语法进阶+常用API

目录 浏览器操作 浏览器回退,前进 与刷新 浏览器窗口设置大小 浏览器设置宽高 浏览器窗口最大化 浏览器控制滚动条 信息打印 打印页面的标题和当前页面的URL 定位一组元素 鼠标和键盘事件 键盘 鼠标 下拉框操作 通过索引定位(se…

一.RocketMQ概念

RocketMQ概念 1.概念2.应用场景3.MQ的优点和缺点4.常见MQ对比 1.概念 MQ(Message Queue),是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。 RocketMQ是阿里巴巴2016年MQ中间件&…

算法学习总结

算法总结 文章目录 算法总结搜索遍历dfs树的深度树的重心图的连通块划分 bfs双端队列bfsbfs图问题 迭代加深双向搜索A*IDA*Morris遍历Manacher 数论质数判断质数分解质因数埃氏筛法线性筛法 约数求N的正约数集合——试除法求1~N每个数的正约数集合——倍除法 欧拉函数快速幂快速…

C语言好题解析(一)

目录 选择题1选择题2选择题3选择题4编程题一 选择题1 执行下面程序,正确的输出是( )int x 5, y 7; void swap() {int z;z x;x y;y z; } int main() {int x 3, y 8;swap();printf("%d,%d\n",x, y);return 0; }A: 5,7 B: …

2022年工作架构分析

mpmw自动化流程工具 schema动态数据 Schema 本身是一个JSON ,Schema 通过一些特定字段描述和定义 JSON的数据结构。 最常见的表单通过类XML语法定义。一些库支持通过一些特定结构的 JSON (Schema)来生成类XML标签。 formily 是其中实现之一。 表单设计器通过可视…

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka 一、技术流程二、搭建环境三、创建Kafka changefeed四、写入数据以产生变更日志五、配置 Flink 消费 Kafka 数据 一、技术流程 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群创建 c…

三种MMIC放大器偏置电压顺序

HBT自偏置放大器偏置顺序 1、有两种HBT放大器,自偏置和带电流控制的自偏置,下图是HBT自偏置放大器最简单的偏置。这些放大器只需要接通集电极电压。有一个设置电流的偏置电阻。放大器有一个电流反射镜来控制基极电压。 2、 电阻值的计算 3、打开电源并…

【BASH】回顾与知识点梳理(三十一)

【BASH】回顾与知识点梳理 三十一 三十一. 进程的管理31.1 给进程发送讯号kill -signal PIDlinux系统后台常驻进程killall -signal 指令名称 31.2 关于进程的执行顺序Priority 与 Nice 值nice :新执行的指令即给予新的 nice 值renice :已存在进程的 nice…

机器学习笔记:线性链条件随机场(CRF)

0 引入:以词性标注为例 比如我们要对如下句子进行标注: “小明一把把把把住了”那么我么可能有很多种词性标注的方法,中间四个“把”,可以是“名词名词动词名词”,可以是“名词动词动词名词”等多种形式。 那么&#…

图片转换成pdf格式?这几种转换格式方法了解一下

图片转换成pdf格式?将图片转换成PDF格式的好处有很多。首先,PDF格式具有通用性,可以在几乎任何设备上查看。其次,PDF格式可以更好地保护文件,防止被篡改或者复制。此外,PDF格式还可以更好地压缩文件大小&am…

django-基本环境配置

文章目录 django 环境安装1. 安装环境1.1 安装 Python (配置虚拟环境)1.1.1 步骤 1.2 Conda配置环境参考 django 环境安装 1. 安装环境 1.1 安装 Python (配置虚拟环境) 由于国外源速度慢,可以pip添加清华源 pip config set global.index-url https://pypi.tuna.…

汽车级36V、4A同步降压转换器MAX20404AFOD/VY、MAX20404AFOC/VY、MAX20404AFOA/VY开关稳压器

MAX20404是小型同步降压转换器,集成了高端和低端开关。这些IC均设计为可在3V到36V的宽输入电压范围内提供高达4A的电流。电压质量可以通过观察PGOOD信号来监测。该器件可以在99%的占空比下运行,非常适合汽车和工业应用。 MAX20404提供可编程输出电压或5…