【探索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++、算法和编程的奥秘。祝您生活愉快,排便顺畅!

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c#设计模式-结构型模式 之 桥接模式

前言 桥接模式是一种设计模式,它将抽象与实现分离,使它们可以独立变化。这种模式涉及到一个接口作为桥梁,使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。 桥接模式的主要目的是通过将实现和抽象分离,…

机器学习知识点总结:什么是GBDT(梯度提升树)

什么是GBDT(梯度提升树) 虽然GBDT同样由许多决策树组成,但它与随机森林由许多不同。 其中之一是GBDT中的树都是回归树,树有分类有回归,区分它们的方法很简单。将苹果单纯分为好与坏的是分类树,如果能为苹果的好坏程度打个分&…

c++实现哈希桶

闭散列的回顾 在前面的学习中我们知道了闭散列的运算规则,当两个数据计算得到的位置发生冲突时,它会自动的往后寻找没有发生冲突的位置,比如说当前数据的内容如下: 当插入的数据为33时计算的位置为3,可是位置3已经被占…

一百五十二、Kettle——Kettle9.3.0本地连接Hive3.1.2(踩坑,亲测有效,附截图)

一、目的 由于先前使用的kettle8.2版本在Linux上安装后&#xff0c;创建共享资源库点击connect时页面为空&#xff0c;后来采用如下方法&#xff0c;在/opt/install/data-integration/ui/menubar.xul文件里添加如下代码 <menuitem id"file-openZiyuanku" label&…

Zass主题 - 手工艺术家和工匠的WooCommerce商城主题

Zass主题是适合手工艺术家和工匠的完美 WordPress / WooCommerce 主题。无论您是想为您的手工制作业务构建功能齐全的 Etsy Style 在线商店、博客还是作品集&#xff0c;Zass 主题都是您的正确选择。凭借其极其强大的自定义电子商务功能、无限的作品集风格、不同的博客风格和无…

DNNGP模型解读-early stopping 和 batch normalization的使用

一、考虑的因素&#xff08;仅代表个人观点&#xff09; 1.首先我们看到他的这篇文章所考虑的不同方面从而做出的不同改进&#xff0c;首先考虑到了对于基因组预测的深度学习方法的设计 &#xff0c;我们设计出来这个方法就是为了基因组预测而使用&#xff0c;这也是主要目的&…

sklearn机器学习库(二)sklearn中的随机森林

sklearn机器学习库(二)sklearn中的随机森林 集成算法会考虑多个评估器的建模结果&#xff0c;汇总之后得到一个综合的结果&#xff0c;以此来获取比单个模型更好的回归或分类表现。 多个模型集成成为的模型叫做集成评估器&#xff08;ensemble estimator&#xff09;&#xf…

NLP中的RNN、Seq2Seq与attention注意力机制

目录 NLP自然语言处理 的RNN、Seq2Seq与attention注意力机制 RNN循环神经网络 前馈网络入门 前馈网络 循环网络 多层感知器架构示例 循环神经网络的运作原理 展开 RNN seq2seq模型 Attention&#xff08;注意力机制&#xff09; 总结 引用 NLP自然语言处理 的RNN、…

iPhone删除的照片能恢复吗?不小心误删了照片怎么找回?

iPhone最近删除清空了照片还能恢复吗&#xff1f;大家都知道&#xff0c;照片对于我们来说是承载着美好回忆的一种形式。它记录着我们的平淡生活&#xff0c;也留住了我们的美好瞬间&#xff0c;具有极其重要的纪念价值。 照片不小心误删是一件非常难受的事&#xff0c;那么iP…

【Redis】Redis的持久化(备份)

【Redis】Redis的持久化&#xff08;备份&#xff09; Redis的数据全部在内存里&#xff0c;如果突然宕机&#xff0c;数据就会全部丢失&#xff0c;因此必须有一种机制来保证Redis的数据不会因为故障而丢失&#xff0c;这种机制就是Redis的持久化机制。 如图所示&#xff0c…

改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)

改善神经网络——优化算法 梯度下降Mini-batch 梯度下降&#xff08;Mini-batch Gradient Descent&#xff09;指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快&#xff0c;机器学习的应用是一个高度依赖经验的过程&#xff0c;伴随着大量…

2023年Android性能优化常见30道面试题解

在Android开发领域&#xff0c;性能优化是一个关键而广泛讨论的话题。对于任何一位Android开发者而言&#xff0c;了解和掌握性能优化的技巧是至关重要的。无论是在开发过程中还是在面试环节中&#xff0c;掌握Android性能优化的知识都能展示出你作为一名优秀开发者的能力。 本…

利用HTTP代理实现请求路由

嘿&#xff0c;大家好&#xff01;作为一名专业的爬虫程序员&#xff0c;我知道构建一个高效的分布式爬虫系统是一个相当复杂的任务。在这个过程中&#xff0c;实现请求的路由是非常关键的。今天&#xff0c;我将和大家分享一些关于如何利用HTTP代理实现请求路由的实用技巧&…

HTML(JavaEE初级系列12)

目录 前言&#xff1a; 1.HTML结构 1.1认识HTML标签 1.2HTML文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML常见标签 2.1注释标签 2.2标题标签&#xff1a;h1-h6 2.3段落标签&#xff1a;p 2.4换行标签&#xff1a; br 2.5格式化标签 2.6图片标签&#…

【k8s】基于Prometheus监控Kubernetes集群安装部署

目录 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 二、部署kubernetes集群 三、部署Prometheus监控平台 四、部署Grafana服务 五、grafana web操作 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 IP地址 主机名 组件 192.168.100.131 k8s-ma…

Activiti6

一、Activiti介绍与搭建开发环境 二、运行官方例子 三、编写第一个Activiti程序 3.1 流程部署 代码 /*** 部署流程* 涉及到的表有&#xff1a; * 1.act_ge_bytearray 两条记录&#xff0c;一条xml数据&#xff0c;一条png图片信息 * 2.act_re_deployment 一条记录 * 3.a…

Android FrameWork 层 Handler源码解析

Handler生产者-消费者模型 在android开发中&#xff0c;经常会在子线程中进行一些耗时操作&#xff0c;当操作完毕后会通过handler发送一些数据给主线程&#xff0c;通知主线程做相应的操作。 其中&#xff1a;子线程、handler、主线程&#xff0c;其实构成了线程模型中经典的…

【独立版】新零售社区团购电商系统生鲜水果商城兴盛优选十荟团源码

【独立版】新零售社区团购电商系统生鲜水果商城兴盛优选十荟团源码

CentOS系统环境搭建(七)——Centos7安装MySQL

centos系统环境搭建专栏&#x1f517;点击跳转 坦诚地说&#xff0c;本文中百分之九十的内容都来自于该文章&#x1f517;Linux&#xff1a;CentOS7安装MySQL8&#xff08;详&#xff09;&#xff0c;十分佩服大佬文章结构合理&#xff0c;文笔清晰&#xff0c;我曾经在这篇文章…

5G无人露天矿山解决方案

1、5G无人露天矿山解决方案背景 ①2010.10&#xff0c;国家安监总局《金属非金属地下矿山安全避险“六大系统”安装使用和监督检查暂行规定》 ②2016.03&#xff0c;国家发改委《能源技术革命创新行动计划&#xff08;2016-2030&#xff09;》&#xff0c;2025 年重点煤矿区采…