当前位置: 首页 > news >正文

『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
……

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

相关文章:

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

🔥博客主页:小王又困了 📚系列专栏:Linux 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、vim的基本概念 📒1.1命令模式 📒1.2插入模式 &…...

【Excel】补全单元格值变成固定长度

我们知道股票代码都为6位数字,但深圳中小板代码前面以0开头,数字格式时前面的0会自动省略,现在需要在Excel表格补全它。如下图: 这时我们需要用到特殊的函数:TEXT或者RIGHT TEXT函数是Excel中一个非常有用的函数。TEX…...

HackTheBox-Starting Point--Tier 2---Base

文章目录 一 题目二 过程记录2.1 打点2.2 权限获取2.3 横向移动2.4 权限提升 一 题目 Tags Web、Vulnerability Assessment、Custom Applications、Source Code Analysis、Authentication、Apache、PHP、Reconnaissance、Web Site Structure Discovery、SUDO Exploitation、Au…...

算法导论笔记4:散列数 hash

一 了解一些散列的基本概念,仅从文字角度,整理了最基础的定义。 发现一本书,《算法图解》,微信读书APP可读,有图,并且是科普性质的读物,用的比喻很生活化,可以与《算法导论》合并起…...

知识蒸馏概述及开源项目推荐

文章目录 1.介绍2.知识2.1 基于响应的知识(response-based)2.2 基于特征的知识(feature-based)2.3 基于关系的知识(relation-based) 3.蒸馏机制3.1 离线蒸馏3.2 在线蒸馏3.3 自蒸馏 4.教师-学生架构5.蒸馏算法5.1 对抗性蒸馏(Adversarial Dis…...

jupyter notebook中markdown改变图像大小

文章目录 &#x1f56e;原始图像&#x1f56e;改变图像大小&#x1f56e;使图像靠左 在 jupyter notebook中&#xff0c;导入的图片过大&#xff0c;想要改变图像的大小 &#x1f56e;原始图像 &#x1f56e;改变图像大小 复制小括号里面的内容到src后面&#xff0c;满足<…...

SpringGateWay——yml文件配置详解

Spring Gateway 是一个基于 Spring 框架的网关服务&#xff0c;主要作用是将流量路由到不同的微服务中。它的灵活性和可扩展性使它成为构建云原生应用架构的不二之选。 下面是 Spring Gateway 的 yml 文件配置参数详解&#xff1a; spring:cloud: gateway: routes: # 路由相…...

Haproxy实现七层负载均衡

目录 Haproxy概述 haproxy算法&#xff1a; Haproxy实现七层负载 ①部署nginx-server测试页面 ②(主/备)部署负载均衡器 ③部署keepalived高可用 ④增加对haproxy健康检查 ⑤测试 Haproxy概述 haproxy---主要是做负载均衡的7层&#xff0c;也可以做4层负载均衡 apache也可…...

k8s最详细集群部署

安装kubeadm、kubectl、和 kubelet 这里通过百度网盘下载所需要的安装包&#xff1a; 链接: k8s部署包.zip_免费高速下载|百度网盘-分享无限制 提取码: 0000 1、下载部署包到本地后&#xff0c;在k8s部署包/k8s目录下 执行此yum命令安装&#xff1a;yum localinstall ./*.r…...

Redis底层数据结构:字典

在 Redis 中&#xff0c;字典&#xff08;Dictionary&#xff09;是一种常用的底层数据结构&#xff0c;它被用于实现 Redis 的哈希表&#xff08;Hash Table&#xff09;数据结构。字典用于存储键值对&#xff0c;它提供了快速的键值查找、插入和删除操作。 Redis 字典的特点&…...

upload 文件自动上传写法,前后端 下载流文件流

<el-uploadv-model:file-list"fileList":action"app.api/student/student/import":headers"{// Content-Type: multipart/form-data;boundary----split-boundary, 此处切记不要加&#xff0c;否则会造成后端报错 Required request part file is…...

Python文件、文件夹操作汇总

目录 一、概览 二、文件操作 2.1 文件的打开、关闭 2.2 文件级操作 2.3 文件内容的操作 三、文件夹操作 四、常用技巧 五、常见使用场景 5.1 查找指定类型文件 5.2 查找指定名称的文件 5.3 查找指定名称的文件夹 5.4 指定路径查找包含指定内容的文件 一、概览 ​在…...

CHM Viewer Star 6.3.2(CHM文件阅读)

CHM Viewer Star 是一款适用于 Mac 平台的 CHM 文件阅读器软件&#xff0c;支持本地和远程 CHM 文件的打开和查看。它提供了直观易用的界面设计&#xff0c;支持多种浏览模式&#xff0c;如书籍模式、缩略图模式和文本模式等&#xff0c;并提供了丰富的功能和工具&#xff0c;如…...

【GIT】git分支命令,使用分支场景介绍git标签介绍,git标签命令,git标签使用的场景git查看提交历史

目录 一&#xff0c;git分支命令&#xff0c;使用分支场景介绍 二&#xff0c;git标签介绍&#xff0c;git标签命令&#xff0c;git标签使用的场景 三&#xff0c;git查看提交历史 前言&#xff1a; 今天我们来聊聊关于Git 分支管理。几乎每一种版本控制系统都以某种形式支持…...

Zeitgeist ZTG Token以及其预测市场加入Moonbeam生态

波卡上的首选多链开发平台Moonbeam宣布与Zeitgeist达成XCM集成&#xff0c;将ZTG Token引入Moonbeam。此集成将使波卡内的Moonbeam和Zeitgeist网络之间的流动性得以流动&#xff0c;并通过Moonbeam的互连合约实现远程链集成。 Zeitgeist是一个基于波卡的Substrate区块链框架构…...

AM@方向导数概念和定理

文章目录 abstract方向导数二元函数方向导数偏导数是方向导数的特例偏导数存在一定有对应的方向导数存在方向导数存在不一定有偏导数存在例 三元函数方向导数例 方向导数存在定理和计算公式证明二元函数三元函数 abstract 方向导数的概念,定理和计算公式方向导数是对偏导的补充…...

微信小程序隐私政策不合规,应当由用户自主阅读后自行选择是否同意隐私政策协议,不得默认强制用户同意

小程序隐私政策不合规&#xff0c;默认自动同意《用户服务协议》及《隐私政策》&#xff0c;应当由用户自主阅读后自行选择是否同意隐私政策协议&#xff0c;不得默认强制用户同意&#xff0c;请整改后再重新提交。 把 登录代表同意《用户协议》和《隐私政策》 改为 同意《用…...

Python中如何判断两个对象的内存地址是否一致?

目录 一、引言 二、Python的内存管理 三、对象的比较 四、使用id函数判断内存地址 五、总结 一、引言 在Python中&#xff0c;我们经常需要比较两个对象是否是同一个对象&#xff0c;或者说它们是否在内存中占据同一位置。在理解这个问题之前&#xff0c;我们需要了解Pyt…...

唯美仙侠3D手游2023【仙变3】画面精美/linux服务端+双端+GM后台+运营后台+详细教程

搭建资源下载地址&#xff1a;https://www.ldmzy.com/6618/6618.html...

React组件通信:如何优雅地实现组件间的数据传递

在React应用中&#xff0c;组件通信是至关重要的一部分。通过合适的数据传递和交互方式&#xff0c;我们可以构建出更加灵活和高效的前端应用。本文将介绍React组件通信的各种方式&#xff0c;并提供代码实现&#xff0c;帮助你更好地理解和应用这些技术。 1. 使用props进行父子…...

避坑指南:HuggingFace Hub国内镜像设置常见错误及解决方案

HuggingFace Hub国内镜像配置实战&#xff1a;从原理到避坑全解析 第一次在团队协作项目中使用HuggingFace Hub时&#xff0c;我花了整整两天时间才让所有成员的开发环境正常加载BERT模型。有的同事在Windows上遇到证书错误&#xff0c;有人用conda虚拟环境却始终连接超时&…...

【华为电脑管家】多屏协同下微软拼音输入法兼容性自动修复的终极指南

1. 多屏协同与输入法兼容性问题解析 华为电脑管家的多屏协同功能确实让跨设备办公变得无比便捷&#xff0c;但很多用户都遇到过这个烦人的问题&#xff1a;每次连接多屏协同时&#xff0c;微软拼音输入法的兼容性设置就会被自动修改。我自己也深受其扰&#xff0c;经常在重要会…...

Neeshck-Z-lmage_LYX_v2问题解决:常见报错与参数调节技巧

Neeshck-Z-lmage_LYX_v2问题解决&#xff1a;常见报错与参数调节技巧 1. 引言&#xff1a;为什么需要这份指南&#xff1f; 当你第一次打开Neeshck-Z-lmage_LYX_v2这个本地AI绘画工具时&#xff0c;可能会被它简洁的界面所迷惑——几个滑块、一个输入框和一个生成按钮&#x…...

KrillinAI:AI视频翻译与配音的终极解决方案,让多语言内容创作触手可及

KrillinAI&#xff1a;AI视频翻译与配音的终极解决方案&#xff0c;让多语言内容创作触手可及 【免费下载链接】KrillinAI Video translation and dubbing tool powered by LLMs. The video translator offers 100 language translations and one-click full-process deploymen…...

滚动轴承故障诊断的MATLAB分析方法:基于快速谱峭度与包络谱结合的研究方法

滚动轴承故障诊断MATLAB程序&#xff1a;快速谱峭度、谱峭度包络谱分析 滚动轴承故障诊断是机械工程领域的一个重要研究方向。滚动轴承是一种常见的机械元件&#xff0c;用于支撑和转动机械装置中的轴。然而&#xff0c;由于长时间使用或其他原因&#xff0c;滚动轴承可能会出现…...

SD1.5 Archive 镜像使用全解析:Web界面操作与参数设置指南

SD1.5 Archive 镜像使用全解析&#xff1a;Web界面操作与参数设置指南 1. 开箱即用的Web界面初探 Stable Diffusion v1.5 Archive镜像最吸引人的特点就是它精心设计的Web界面&#xff0c;让用户无需任何技术背景就能快速上手AI绘画。这个界面将复杂的技术细节隐藏在简洁的UI背…...

从零构建MMRotate旋转检测实战:自定义数据集制作与模型调优全解析

1. 环境准备与MMRotate安装 第一次接触旋转目标检测时&#xff0c;我被各种坐标转换搞得头晕眼花。直到发现MMRotate这个神器&#xff0c;才让整个流程变得清晰可控。作为OpenMMLab家族成员&#xff0c;它封装了R3Det、Rotated Faster RCNN等主流旋转检测算法&#xff0c;特别适…...

WPF网格布局实战:从基础定义到动态行列操作

1. WPF网格布局基础入门 第一次接触WPF的Grid布局时&#xff0c;我完全被它强大的灵活性震撼到了。这就像小时候玩的乐高积木&#xff0c;通过行列组合可以搭建出任何你想要的界面结构。Grid是WPF中最常用的布局容器之一&#xff0c;它通过二维网格系统来组织子元素&#xff0c…...

为什么93%的企业NER项目卡在第2.7阶段?——基于奇点大会27家头部厂商落地数据的断点诊断模型

第一章&#xff1a;为什么93%的企业NER项目卡在第2.7阶段&#xff1f; 2026奇点智能技术大会(https://ml-summit.org) “第2.7阶段”并非官方标准&#xff0c;而是工业界对NER&#xff08;命名实体识别&#xff09;落地过程中一个高频失败临界点的戏称——它介于完成模型训练&…...

TensorRT量化实战:动态范围计算中的熵校准技术解析

1. TensorRT量化与动态范围计算基础 在深度学习模型部署中&#xff0c;TensorRT的INT8量化技术能显著提升推理速度&#xff0c;但量化过程的核心挑战在于如何准确计算动态范围&#xff08;Dynamic Range&#xff09;。动态范围决定了浮点数值到整数的映射关系&#xff0c;直接影…...