『Linux升级路』基础开发工具——vim篇

🔥博客主页:小王又困了

📚系列专栏:Linux

🌟人之为学,不日近则日退 

❤️感谢大家点赞👍收藏⭐评论✍️


目录

一、vim的基本概念 

📒1.1命令模式

📒1.2插入模式

📒1.3底行模式

二、vim的基本操作

📒2.1进入vim

📒2.2模式转换

📒2.3退出vim

三、命令模式命令集

📒3.1移动光标

📒3.2复制粘贴 

📒3. 3删除文字

📒3.4撤销

📒​​​​​​​3.5替换

四、底行模式命令集

📒4.1调出行号

📒​​​​​​​​​​​​​​4.2保存退出

📒​​​​​​​​​​​​​​4.3多文件操作

📒4.4命令执行 

📒4.5查找字符

五、vim的配置

📒5.1配置文件的位置

📒 5.2vim常用配置选项


🗒️前言:

本期给大家介绍的工具是vim,它是多模式编辑器,vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

一、vim的基本概念 

     我们先介绍 vim 的三种模式,分别是命令模式(command mode)插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

📒1.1命令模式

     控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者进入底行模式。

📒1.2插入模式

     只有在插入模式下,才可以做文字输入,按ESC键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

📒1.3底行模式

     文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下输入,shift  +  ' : '即可进入底行模式。

注意:要查看你的所有模式:打开vim,底行模式直接输入help vim-modes

二、vim的基本操作

📒2.1进入vim

指令: 

  •  vim code.c

     在系统提示符号输入vim加文件名称后,就进入vim全屏幕编辑画面。打开vim默认是命令模式,命令模式下所有的输入都被当成命名,所以我们敲击键盘,屏幕不会显示字符,想要显示字符,我们要切换为插入模式,接下来就让我们看看怎么切换模式。

注意:如果vim后的文件不存在,系统会生成一个新文件并进入编辑画面。

📒2.2模式转换

🎀「命令模式​​​​​​​」切换为「插入模式」

     从命令模式切换为插入模式,可以输入 a o i ,它们三个的区别在于,进入插入模式后光标的位置不同。

  • 输入 a :进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字
  • 输入 o :进入插入模式后,是插入新的一行,从行首开始输入文字 
  • 输入 i :进入插入模式后,是从光标当前位置开始输入文件 

🎀「插入模式​​​​​​​」切换为「命令模式​​​​​​​」 

      点击键盘上的Esc键,就可以退回到命令模式。(所有模式退到命令模式都是按Esc)

🎀「命令模式​​​​​​​」切换为「底行模式​​​​​​​」

  • 点击shift + ; ,其实就是输入。​​​​​​​

     插入模式无法直接进入底行模式, 因为插入模式下所有的输入都会被当成文本输入,没有被解释成命令。

📒2.3退出vim

     要退出vim要在底行模式下进行,在命令模式下输入「:」即可进入底行模式,输入q退出vim。

  • :w :保存当前文件
  • :wq:保存并退出vim
  • :q!:不保存,强制退出vim

三、命令模式命令集

📒3.1移动光标

  •  $ :移动到光标到所在行的行尾
  •  ^ :移动到光标到所在行的行首
  • gg:移动到光标到文本开始
  •  G :移动到光标到文本末尾
  •  w :光标移动到下个字的开头(可以配合n,一次跳过n个单词)
  •  b :光标移动到上个字的开头(可以配合n,一次跳过n个单词)
  •  h    :以字符为单位,进行左、下、上、右移动

📒3.2复制粘贴 

  • yy:复制光标所在行到缓冲区
  •  p :将缓冲区内的字符贴到光标所在行的下一行位置。
  • n+yy:n是任意数字,从光标所在行开始,复制n行
  • n+p:n是任意数字,将缓冲区的的字符粘贴n份

注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

📒3. 3删除文字

  • dd:删除光标所在行
  • n+dd:从光标所在行开始删除n行
  •  x 删除光标所在位置的一个字符
  • n+x删除从光标位置开始的n个字符
  •  X :删除光标所在位置的前一个字符
  • n+X删除从光标位置开始的前n个字符

注意:dd完如果不p的话就是删除,如果p的话就是剪切。

📒3.4撤销

  •  u 回到上一个操作,按多次可以执行多次回复
  • ctrl+r撤销的恢复

📒​​​​​​​3.5替换

  • shift + ~:快速更换大小写
  •  r :替换光标所在字符,点击r后,再点输入待替换的字符
  • n+r:把从光标位置开始的n个字符全部替换成目标字符
  •  R :替换光标所到之处的字符,直到按下Esc键停止

四、底行模式命令集

     在使用底行模式之前,请记住先按ESC键确定已经处于命令模式,再按冒号即可进入底行模式。

📒4.1调出行号

  • set nu:调出行号,在文件每一行前面列出行号
  • set nonu:取消行号

📒​​​​​​​​​​​​​​4.2保存退出

  •  w :保存
  • w!:强制保存
  •  q :退出
  • q!:强制退出
  • wq:保存并退出
  • wq!:强制保存并退出

📒​​​​​​​​​​​​​​4.3多文件操作

  • vs 文件名:实现多文件分屏
  • ctrl+w+w:实现光标在分屏多文件之间的切换

注意:光标在哪个界面,我们就在编辑哪一个界面,底行也是一样。

📒4.4命令执行 

  •  !command:在底行模式下执行命令

在!后直接跟shell命令就可以执行 。

📒4.5查找字符

  • / 关键字:先输入 ,在输入你先更要查找的字符,如果第一次找的不是你想要的,可以一直按n,会继续往后寻找你想要的。
  • ?关键字:先输入 ,在输入你先更要查找的字符,如果第一次找的不是你想要的,可以一直按n,会继续往后寻找你想要的。

五、vim的配置

    没有配置的vim,在插入模式下写代码的时候,没有任何语法提醒,也没有自动补全功能,使用起来比较笨重。要实现在写代码的时候给出提示,需要我们自行对vim进行配置。

📒5.1配置文件的位置

     配置项一般都放在用户家目录下,我们在家目录下建立私有的配置文件,命名为.vimrc。如果/root目录下,已经存在一个.vimrc文件,就不用创建。

示例:

1. 我们先进入配置文件,给配置文件中加入,调出行号的选项set nu

2. 再用vim打开文件,就可以看见,文本每一行的前面都有了行号 

     以上就是配置vim的基本原理,即:将自己所需要的配置项,写入配置文件.vimrc中就行。
  在每一个用户自己家目录下配置的vim不会影响的其他普通用户,只对当前用户有效。而在/ect/目录下的
.vimrc属于系统公共的vim配置文件,对所有用户都有效,一般不建议对公共的配置文件进行修改。

📒 5.2vim常用配置选项

set nu              //设置行号
syntax on           //语法高亮
set showmode        //底部显示当前处于什么模式
set cursorline      //显示行号下划线
set shiftwidth=4    //设置缩进的空格数为4
……

本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。

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

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

相关文章

dcat admin 各种问题

样式问题 如何根据条件给表格数据栏添加背景色 use Illuminate\Support\Collection;protected function grid(){return Grid::make(new BookArticle(), function (Grid $grid) {... 其他代码// Collection的完整路径:Illuminate\Support\Collection;$grid->row…

Spark的执行计划

Spark 3.0 大版本发布,Spark SQL 的优化占比将近 50%。Spark SQL 取代 Spark Core,成为新一代的引擎内核,所有其他子框架如 Mllib、Streaming 和 Graph,都可以共享 Spark SQL 的性能优化,都能从 Spark 社区对于 Spark …

笔记:AI量化策略开发流程-基于BigQuant平台(一)

从本文开始,按照AI策略开发的完整流程(共七步),上手在BigQuant平台上快速构建AI策略。本文首先介绍如何使用证券代码模块指定股票范围和数据起止日期。重要的事情说三遍:模块的输入端口有提示需要连线的上游数据类型&a…

魔搭社区LLM模型部署实践, 以ChatGLM3为例(一)

魔搭社区LLM模型部署实践, 以ChatGLM3为 例 本文以ChatGLM3-6B为例, 主要介绍在魔搭社区如何部署LLM, 主要包括如下内容: ● SwingDeploy - 云端部署, 实现零代码一键部署 ● 多端部署 - MAC个人笔记本,…

快速入门安装及使用git与svn的区别常用命令

一、导言 1、什么是svn? SVN是Subversion的简称,是一个集中式版本控制系统。与Git不同,SVN没有分布式的特性。在SVN中,项目的代码仓库位于服务器上,团队成员通过向服务器提交和获取代码来实现版本控制。SVN记录了每个…

Leetcode刷题详解—— 目标和

1. 题目链接:494. 目标和 2. 题目描述: 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums [2, 1] ,可…

时间序列预测实战(十二)DLinear模型实现滚动长期预测并可视化预测结果

官方论文地址->官方论文地址 官方代码地址->官方代码地址 个人修改代码->个人修改的代码已经上传CSDN免费下载 一、本文介绍 本文给大家带来是DLinear模型,DLinear是一种用于时间序列预测(TSF)的简单架构,DLinear的核…

Ansible自动化运维工具及模块

目录 一、Ansible 1.ansible简介 2、ansible的特性 二、ansible的部署 1)管理端安装ansible 2)配置主机清单 3)配置密钥对验证 三、ansible命令块模块 1)command模块 2)shell模块 3)cron模块 4)…

Jdk 1.8 for mac 详细安装教程(含版本切换)

Jdk 1.8 for mac 详细安装教程(含版本切换) 官网下载链接 https://www.oracle.com/cn/java/technologies/downloads/#java8-mac 一、选择我们需要安装的jdk版本,这里以jdk8为例,下载 macOS 版本,M芯片下载ARM64版本…

数据结构之双向链表

目录 引言 链表的分类 双向链表的结构 双向链表的实现 定义 创建新节点 初始化 打印 尾插 头插 判断链表是否为空 尾删 头删 查找与修改 指定插入 指定删除 销毁 顺序表和双向链表的优缺点分析 源代码 dlist.h dlist.c test.c 引言 数据结构…

网络通信TCP、UDP详解

目录 IP 和端口 网络传输中的 2 个对象:server 和 client 两种传输方式:TCP/UDP TCP 和 UDP 原理上的区别 为何存在 UDP 协议 TCP/UDP 网络通信大概交互图 IP 和端口 所有的数据传输,都有三个要素 :源、目的、长度。 怎么表…

ZYNQ_project:IP_ram_pll_test

例化MMCM ip核,产生100Mhz,100Mhz并相位偏移180,50Mhz,25Mhz的时钟信号。 例化单口ram,并编写读写控制器,实现32个数据的写入与读出。 模块框图: 代码: module ip_top(input …

基于FPGA的PS端的Si5340的控制

1、功能 Si5340/41-D可以输出任意频率,当然有范围,100Hz1GHz。外部输入为24M或者4854M的XTAL,VCO在13500~14256Mhz之间,控制接口采用IIC或者SPI。 芯片架构图 2、IIC控制方式 3、直接上控制代码 使用米联客ZU3EG,将…

git使用笔记

0.记录使用经验 1.提交和push代码 git add .添加修改 git commit -m "提交日志" git push origin branch_name推送分支名称代码到远程服务器对应分支 1.1日常操作 git status查看仓库状态 git branch查看分支 git branch -a查看所有分支【包含远程】 git checkou…

如何从存档服务器上完全删除PDM用户

当创建新用户时使用“PDM 登录”类型(如下图),PDM用户名和密码会存储于存档服务器的注册表中。 存档服务器的注册表位置如下: HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\Applications\PDMWorks Enterprise\ArchiveServer\ConisioU…

在 Microsoft Word 中启用护眼模式

在 Microsoft Word 中启用护眼模式 在使用 Microsoft Word 365 或 Word 2019(Windows)版本时,启用护眼模式(也称为“夜间模式”)可以有效减轻屏幕亮度,有助于减少眼睛疲劳。以下是启用护眼模式的步骤&…

Linux centos系统中添加磁盘

为了学习与训练文件系统或磁盘的分区、格式化和挂载/卸载,我们需要为虚拟机添加磁盘。根据需要,可以添加多块不同大小的磁盘。具体操作讨论如下,供参考。 一、添加 1.开机前 有两个地方,可选择打开添加硬盘对话框 (1)双击左侧…

深度学习模型基于Python+TensorFlow+Django的垃圾识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 要使用Python、TensorFlow和Django构建一个垃圾识别系统,您可以按照以下步骤进行操作: 安装…

Learn runqlat in 5 minutes

内容预告 learn X in 5 系列第一篇. 本篇主要介绍进程时延统计方式和 rawtracepoint. runqlat "高负载场景下应用为何卡顿", "进程 A 为什么得不到调度". 当我们在工作生活中产生这样的疑问, 目标进程的调度时延是一个不错的观测切入点. runqlat 可以帮…