【探索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.mzph.cn/news/46210.shtml

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

相关文章

docker 基础知识

目录 1. 加载docker镜像 2. 显示所有的镜像 3. 执行镜像,生成容器, 每执行一次,便生成一个容器 4. 显示出container名称 5. 进入容器 6. 如何将文件传入容器内 首先要确保已经安装了docker。注意:服务器上若没有管理员权限&am…

K8s学习笔记1

一、课程介绍: 1、背景: 1)从基础设备主机化向容器化转换。 2)从人肉式运维工作模式向自动化运维模式转换。 3)从自动化运维体系向全体系智能化运维模式转换。 2、课程目标人群: 1)掌握Linux操作系统基…

SQL助你面大厂(窗口函数)

在面试过程中窗口函数的应用可谓是数不胜数,前提你要知道什么是窗口函数,最常用的窗口函数有哪些?语法是什么?分别用的场景是什么?今天会以这三个问题开始我们今天的学习 什么是窗口函数? 所谓的窗口函数就…

iOS设计规范是什么?都有哪些具体规范

iOS设计规范是苹果为移动设备操作系统iOS制定的设计指南。iOS设计规范的制定保证了苹果应用在外观和操作上的一致性和可用性,从而提高了苹果界面设计的用户体验和应用程序的成功性。本文将从七个方面全面分析iOS设计规范。 1.iOS设计规范完整版分享 由「即时设计」…

V2board缓存投毒漏洞复现

1.什么是缓存投毒 缓存投毒(Cache poisoning),通常也称为域名系统投毒(domain name system poisoning),或DNS缓存投毒(DNS cache poisoning)。它是利用虚假Internet地址替换掉域名系…

【Django】Task2 了解models和使用admin后台

文章目录 【Django】Task2 了解models和使用admin后台1.什么是models1.1常用字段类型说明1.2常用配置参数1.3models示例 2.使用Django的admin管理模块2.1admin管理模块介绍2.2创建管理员用户2.3定义models实体对象2.4注册对象2.5合并数据库2.6启动项目并进入管理后台 3.springb…

通过cpolar在外远程查看家里内网监控

通过cpolar在外远程查看家里内网监控 文章目录 通过cpolar在外远程查看家里内网监控前言1. 在cpolar官网预留一个空白隧道2. 完成空白数据隧道,生成地址3. 设置空白隧道的出口4. 空白数据隧道的出口设置5. 获取公网地址6. 打开本地电脑“远程桌面”7. 打开Windows自…

unity打造路径编辑与导航系统

Unity是一款非常流行的游戏引擎,它提供了丰富的工具和API,方便开发者快速创建游戏。其中,路径编辑与导航系统是游戏开发中非常重要的一部分,可以帮助玩家更好地探索游戏世界,提升游戏体验。本文将详细介绍如何在Unity中…

C++对象模型实验(clang虚函数表结构)

摘要:本科期间有对比过msvc,gcc,clang的内存布局,距今已经6-7年了,当时还是使用的c11。时间过得比较久了,这部分内容特别是内存对齐似乎C17发生了一些变化,因此再实践下C类模型。本文描述了C不同…

用easyui DataGrid编辑树形资料

easyui显示编辑树形资料有TreeGrid元件,但是这个元件的vue版本和react版本没有分页功能。virtual scroll功能也表现不佳。 我用DataGrid来处理。要解决的问题点: (1)如何显示成树形。即,子节点如何有缩进。 先计算好…

clickhouse-监控配置

一、概述 监控是运维的一大利器,要想运维好clickhouse,首先就要对其进行监控,clickhouse有几种监控数据的方式,一种是系统本身监控,一种是通过exporter来监控,下面分别描述一下 二、系统自带监控 我下面会对监控做一…

【学习日记】【FreeRTOS】时间片的实现

前言 本文以野火的教程和代码为基础,对 FreeRTOS 中时间片的概念作了解释,并且给出了实现方式,同时发现并解决了野火教程代码中的 bug。 一、时间片是什么 在前面的文章中,我们已经知道任务根据不同的优先级被放入就绪列表中不…

计算机竞赛 python的搜索引擎系统设计与实现

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python的搜索引擎系统设计与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:5分创新点:3分 该项目较为新颖&#xff…

1、攻防世界第一天

1、网站目录下会有一个robots.txt文件,规定爬虫可以/不可以爬取的网站。 2、URL编码细则:URL栏中字符若出现非ASCII字符,则对其进行URL编码,浏览器将该请求发给服务端;服务端会可能会先对收到的url进行解码&#xff0…

深度解读波卡 2.0:多核、更有韧性、以应用为中心

本文基于 Polkadot 生态研究院整理,有所删节 随着波卡 1.0 的正式实现,波卡于 6 月 28 日至 29 日在哥本哈根举办了年度最重要的会议 Polkadot Decoded 2023,吸引了来自全球的行业专家、开发者和爱好者,共同探讨和分享波卡生态的…

ByteV“智农”平台--数字乡村可视化

“智农”平台基于自主可控的数字孪生技术、物联网技术、大数据技术,构建全流程的新型农业一体化管理平台,围绕产运销管理全流程,实现生产->存储->包装->运输->销售的全链条管理。融合农业数据管理、农业数据预警显示、多维数据综…

达梦数据库8用户管理以及忘记sysdba密码修改办法

达梦数据库8用户管理&达梦数据库v8忘记sysdba密码,修改办法。 达梦数据库8用户管理1.创建用户的语法:2.锁定/解锁用户3.修改用户的密码(同样要符合密码策略PWD_POLICY)4.修改用户默认表空间5.删除用户6.同样地可以使用DM管理工具进行创建…

【工具】 删除Chrome安装的“创建快捷方式”

创建Chrome的快捷方式,可以放在桌面,想用时双击就可以打开网页,比书签(brookmark)结构化管理更方便。 但是,安装一时爽,卸载有问题。 如果用 windows 控制面板\所有控制面板项\程序和功能 卸载…

Facebook 应用未启用:这款应用目前无法使用,应用开发者已得知这个问题。

错误:Facebook 应用未启用:这款应用目前无法使用,应用开发者已得知这个问题。应用重新启用后,你便能登录。 「应用未经过审核或未发布」: 如果一个应用还没有经过Facebook的审核或者开发者尚未将应用发布,那么它将无法…