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

如何熟练使用vim工具?

在这里插入图片描述

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨
🐻推荐专栏1: 🍔🍟🌯C语言初阶
🐻推荐专栏2: 🍔🍟🌯C语言进阶
🔑个人信条: 🌵知行合一
🍉本篇简介:>:讲解C++中的函数重载、引用、auto关键字、内联函数等.
金句分享:
✨生活本就沉默,但是跑起来有风!✨

前言

文末有彩蛋哦!

Vim是一款文本编辑器,是从Unix中的vi编辑器(visual editor)发展而来的。Vim可以在多种操作系统上运行,包括Unix、Linux、macOSWindows等。Vim主要用于编辑纯文本文件,支持语法高亮、多窗口编辑、标签页、插件等功能。对于程序员来说,Vim是一个非常强大的编辑器,可以提高编码效率。

目录

  • 前言
  • 一、vim的使用
    • (1) 模式介绍
    • (2) 打开vim
    • (3) 光标操作(在命令模式下)
      • 🍔上下左右移动
      • 🌰按单词左右移动
      • 🍭行首行尾
      • 🍉文章开头和结尾
      • 🔑按页和其他
    • (4) 删除
    • (5) 复制
    • (6) 替换
    • (7) 撤销与恢复:
  • 二、底行模式
    • 列出行号(底行模式下)
    • 跳转指定行(底行模式下)
    • 查找字符(串)
    • 保存文件(并退出)
  • 三、配置vim

一、vim的使用

(1) 模式介绍

Vim有不同的模式,每个模式都具有不同的功能和操作方式。下面是Vim的几种常见模式的介绍:

  1. 命令模式(Command Mode):这是Vim的默认模式,用户可以在该模式下输入命令来执行各种编辑操作,

  2. 插入模式(Insert Mode):在插入模式下,用户可以像在其他编辑器中一样直接输入文本。只有在Insert mode下,才可以做文字输入,该模式是我们用的最频繁的编辑模式。
    (1) 按"i"键即可进入插入模式
    (2) 按下"Esc"键可退出插入模式返回命令模式。

  3. 替换模式(Replace Mode):替换模式允许用户替换已有的文本。
    (1)按shift+r键即可进入替换模式,在该模式下,用户输入的字符将直接替换光标当前位置的字符.
    (2)按"Esc"键退出替换模式。

  4. 底行模式(Command-line Mode):底行模式允许用户执行一些高级的编辑和搜索操作。
    (1)按shift+;键即可进入底行模式,用户可以在该模式下输入各种命令,文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作等。
    (2) 按"Esc"键退出到命名模式.

这些模式的切换可以通过按下相应的快捷键来完成。Vim的模式使得用户可以灵活地进行文本编辑,提高编辑效率。熟练掌握这些模式及其相关操作是使用Vim的关键。

(2) 打开vim

一般情况下,vim都是自带的一款软件.

情况1 :
vim+文件名(文件未被创建)
底行模式按q:文件依旧没有被创建,退出vim.
底行模式按wq:文件被创建,并退出.

情况2:
vim+文件名(文件已被创建)

示例:打开vim
在这里插入图片描述

下图是进入vim以后的界面:
在这里插入图片描述

输入:i进入插入模式.

在这里插入图片描述
如果想退出,按Esc到命令模式,再shift+;到底行模式,输入wq(保存并退出).

(3) 光标操作(在命令模式下)

🍔上下左右移动

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
为啥是这四个键代表上下左右而不用光标键 .
因为,早期的键盘是没有光标键的。

🌰按单词左右移动

按键「w」:光标跳到下个单词的开头.
按「e」:光标跳到这个词的结尾.
按「b」:光标回到单词的开头.

在这里插入图片描述

🍭行首行尾

$ 」:移动到光标所在行的“行尾”
^」:移动到光标所在行的“行首”

🍉文章开头和结尾

gg]:进入到文本开始
shift+g]:进入文本末端

跳至指定的行
ctrl」+「g」列出光标所在行的行号。(底行模式下可以使用set nu列出行号)
nG」:表示移动光标至文章的n行行首。

🔑按页和其他

ctrl」+「b」:屏幕往“后”移动一页
ctrl」+「f」:屏幕往“前”移动一页
ctrl」+「u」:屏幕往“后”移动半页
ctrl」+「d」:屏幕往“前"移动半页

n+l」:光标移到该行的第n个位置,12l,移动到改行的12位置处.

(4) 删除

x」(小写):,删除光标所在位置的一个字符.
nx」:表示删除从光标所在位置开始往后n个字符.(包括光标所在字符).
X」(大写):删除光标所在位置的“前面”一个字符.
nX」:表示删除从光标所在位置开始的往前n个字符.(包括光标所在字符).
dd」:删除一行,删除光标所在行.
ndd」:从光标所在行开始删除n行.

(5) 复制

复制:
yw」:复制从光标处开始到单词的结尾的字符到缓存区.
nyw」:复制n个字到缓冲区
yy」:复制光标所在行到缓冲区。
nyy」:表示拷贝从光标所在的该行往后n行数据.
粘贴:
p」:将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

(6) 替换

r」:替换光标所在处的字符

进入替换模式,直接全部变成替换操作.
R」:替换光标所到之处的字符,直到按下「ESC」键为止。

(7) 撤销与恢复:

u」:撤销上一次操作可以按u键.

ctrl + r」: 恢复:撤销撤销操作.

二、底行模式

先按ESC键回退到命令行模式,再使用shift+:进入底行模式.

列出行号(底行模式下)

set nu」:会在文件中的每一行前面列出行号。

列出行号:
在这里插入图片描述
列出行号:
在这里插入图片描述
添加行号:

set nu

取消行号:

set nonu

跳转指定行(底行模式下)

n」: 表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了.

再回车,就会跳到第5行。

查找字符(串)

「/+查找字符(串)」:
示例:查找linux

指令:/linux
配合n进行搜索下一个符合条件的语句.

?+要查找的字符(串)」:
同样按n可以查找下一处符合条件的语句.

查找有和区别?
:默认是往下(后)搜索.,按n是往下(后)的下一处符合条件的语句.
?:默认是往上(前)搜索.,按n是往下(后)的下一处符合条件的语句.

保存文件(并退出)

保存:
w」: 将文件保存起来

退出vim:
「q」:退出vim
强制退出:有的时候某些文件不让修改后退出,可以使用q!进行强制退出.

通常我们wq配合使用,即输入wq指令进行保存并退出.

小知识:
可以在底行模式中执行外部的命令.编译啊等等,而不退出vim.
示例:如果想要使用ls命令.

  1. Vim编辑器中,按下冒号键(:)进入底行模式
  2. 输入!后面跟着你想要执行的外部指令。示例如果你要执行ls命令来列出当前目录的文件,可以输入!ls
  3. 按下回车键,Vim将会执行该外部指令并在底行显示输出结果。

三、配置vim

我们不难发现,相较于我们之前使用的VS,vim的使用极其不方便,没有语法提醒,也没有括号自动补齐等等功能.这就很难受了,我可适应不了.

为了能够方便我们更加方便的使用vim进行代码的编写,我们可以去配置vim,使其更加符合我们的需求.

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

在这里插入图片描述

配置自己用户的专属vim

在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。
我们进入自己的家目录:

方法1:

cd ~

方法2:

cd /home/cjn

创建vim的配置文件:touch .vimrc

在这里插入图片描述

使用vim.vimrc文件进行编写:vim .vimrc

下面是示例的一些配置:
在这里插入图片描述

配置成功后,保存并退出vim,后续再使用vim就会生效了.
在这里插入图片描述

其实上面的配置还是很挫的,毕竟配置这么点东西可不够,没有语法报错,自动补齐括号等等.
但是我们并不擅长去配置vim,所以我这里有一套已经配置好的vim,欢迎大家私信找我免费获取哦!

展示:
在这里插入图片描述

在这里插入图片描述

好了,本篇的内容就讲到这里了.
在这里插入图片描述

相关文章:

如何熟练使用vim工具?

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…...

ClassNotFoundException: org.apache.hive.spark.client.Job

hive使用的是3.13版本,spark是3.3.3支持hadoop3.x hive将engine从mr改成spark,通过beeline执行insert、delete时一直报错,sparkTask rpc关闭, 查看yarn是出现ClassNotFoundException: org.apache.hive.spark.client.Job。 开始…...

《合成孔径雷达成像算法与实现》_使用CS算法对RADARSAT-1数据进行成像

CSA 简介:Chirp Scaling 算法 (简称 CS 算法,即 CSA) 避免了 RCMC 中的插值操作。该算法基于 Scaling 原理,通过对 chirp 信号进行频率调制,实现了对信号的尺度变换或平移。基于这种原理,可以通过相位相乘代替时域插值…...

GCN01——Ubuntu中设置vivado编辑器为vscode

确定vscode位置 在命令行中输入 which code得到文件地址 进入文件夹后可看到,这是个链接文件,不过无所谓,就用这个地址就行 设置Text Editor 打开setting选择右侧text editor 这里说明了如何进行设置 将自己的地址加进去就行 /usr/share…...

Android 11.0 软硬键盘同时使用的兼容(软键盘与内置物理键盘共存)

1.概述 在11.0的系统rom产品定制化开发总,在有些设备上,如果外接了USB扫描枪之类的设备,当插入USB扫描枪以后,然后点击输入调用输入法的时候,没有反应,但是拔掉USB扫描枪以后,输入法又能正常使用,这说明和输入法起冲突了,询问了好多同时,说可能把会把USB扫描枪识别为…...

ARM安全架构——为复杂软件提供保护

目录 一、概述 二、栈溢出和执行权限 三、面向返回的编程ROP 四、面向跳转的编程(JOP) 五、将这些技术应用于实际代码 七、检查你的知识...

提升网页交互体验的秘密武器——防抖和节流

说在前面 在现代Web开发中,提高网页性能是至关重要的。本文介绍了防抖和节流这两种常用的性能优化技术,通过控制函数的执行频率,有效减少不必要的计算和网络请求,从而提升用户体验和页面加载速度。 函数节流 节流是指限制一个函数…...

HX3002入耳检测光感驱动调试-感0x08 寄存器溢出,不变化错误问题解决方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 读取光感0x08 寄存器溢出,不变化错误问题?原因 原因:没有读取到0x08数据,没有读0x…...

目标检测开源数据

KITTI KITTI数据集下载(百度云)_kitti数据集百度云-CSDN博客 KITTI数据集下载及解析_kitti bin文件标签-CSDN博客 KITTI 3D目标检测数据集解析(完整版)_kitti数据集结构-CSDN博客 KITTI数据集简介与使用_kitti数据见一个视频多…...

AI模特换装的前端实现

本文作者为 360 奇舞团前端开发工程师 随着AI的火热发展,涌现了一些AI模特换装的前端工具(比如weshop网站),他们是怎么实现的呢?使用了什么技术呢?下文我们就来探索一下其实现原理。 总体的实现流程如下&am…...

git-5

1.GitHub为什么会火? 2.GitHub都有哪些核心功能? 3.怎么快速淘到感兴趣的开源项目 github上面开源项目非常多,为了我们高效率的找到我们想要的资源 根据时间 不进行登录,是没有办法享受到高级搜索中的代码功能的,登录…...

qt 5.15.2压缩和解压缩功能

qt 5.15.2压缩和解压缩功能 主要是添加qt项目文件.pro内容: 这里要先下载quazip的c项目先编译后引入到本项目中/zip目录下 INCLUDEPATH ./zip CONFIG(debug, debug|release) {win32:win32-g: PRE_TARGETDEPS $$PWD/zip/libquazipd.awin32:win32-g: LIBS -L$$PWD…...

thinkphp6出现 htmlentities() expects parameter 1 to be string, array given

为避免出现 XSS 安全问题, thinkphp6默认变量输出都会使用 htmlentities 方法进行转义 输出。 如果不想被转义输出,模板渲染时,需要在变量后面加上 raw方法,如:{$data|raw} 1、出现问题前的代码 PHP代码$this->assi…...

【android开发-03】android中Intent的用法介绍

1,Intent的作用 在Android开发中,Intent的使用非常广泛,包括启动Activity、启动Service、发送广播等。是各组件间交互的一种重要方式,他不仅可以指明当前组件想要执行的动作,还可以在不同组件间传递数据。 Intent可以…...

Java中时间工具详解:java.time包的应用

引言 时间在软件开发中是一个至关重要的概念,而Java自从引入java.time包后,提供了更加强大和灵活的时间处理工具。本文将深入介绍java.time包中的一些常用时间工具,帮助你更好地处理日期和时间的操作。 1. LocalDate - 处理日期 LocalDate…...

mysql 日志分析

程序启动标志 可以直接全局搜索,查看启动了几次 可以看到总共11次,当前是第2次 如何判断mysql是正常关闭,手动启动的 下图中启动之前出现 Shutdown complete打印说明启动之前是正常关闭的...

网络运维与网络安全 学习笔记2023.11.30

网络运维与网络安全 学习笔记 第三十一天 今日目标 实现AP自动注册、配置WLAN业务参数、无线终端通过wifi互访 实现AP自动注册 项目背景 企业内网的大量AP已经通过DHCP的方式获得IP地址 为了实现后期大量AP的统一管理,希望通过AC实现集中控制 在AC设备上&#…...

Perplexity 推出全新大型在线语言模型

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

python中的函数定义

默认参数 注: 在Python中,print(x, and y both correct)是一条打印语句(print statement),用于将一条消息输出到控制台或终端。它的作用是将变量x的值和字符串and y both correct同时输出到屏幕上。 在这个语句中&…...

信贷销售经理简历模板

这份简历内容,以信贷销售经理招聘需求为背景,我们制作了1份全面、专业且具有参考价值的简历案例,大家可以灵活借鉴。 信贷销售经理简历模板在线编辑下载:百度幻主简历 求职意向 求职类型:全职 意向岗位&#xff…...

Webdash API详解:如何通过RESTful接口扩展和集成外部系统

Webdash API详解:如何通过RESTful接口扩展和集成外部系统 【免费下载链接】webdash 🔥 Orchestrate your web project with Webdash the customizable web dashboard 项目地址: https://gitcode.com/gh_mirrors/we/webdash Webdash作为一款可定制…...

ARM处理器命名后缀解析与技术演进

1. ARM处理器命名后缀解析:从TDMI-S到T2F-S的技术演进作为一名长期从事嵌入式开发的工程师,我经常需要查阅ARM处理器的技术文档。初次接触ARM7TDMI-S、ARM926EJ-S这类命名时,那些神秘的字母后缀确实让人困惑。今天我们就来彻底拆解这些命名背…...

什么是占位符

占位符就是字符串里预留空位,后面填上真实数据,PyCharm里直接写代码就能运行调试1.%格式化占位符(旧式格式化)语法格式:"模板字符串"%(数据1,数据2...)基础类型占位符1.%s :适配字符串…...

SHE 密钥注入的“通配符魔法”:从 UID 通配到 AUTOSAR 分层落地

想象一下,你是一家汽车电子工厂的技术员,需要为成千上万个 ECU 刷写密钥。每个 ECU 都有一个独一无二的 ID(UID)。如果每次刷写都要读取这个 UID,再根据 UID 计算出专属的密钥数据,那产线的效率会大打折扣。…...

AI Agent 架构设计与实现原理深度解析

AI Agent 架构设计与实现原理深度解析 摘要 本文深入解析 AI Agent 的核心架构设计、关键组件原理及主流实现模式。从 ReAct 推理循环到记忆系统设计,从工具调用机制到生产级部署考量,全面剖析构建可靠智能体的技术要点。读者将掌握 AI Agent 的底层原…...

为什么你的Windows快捷键突然失效?Hotkey Detective一键定位占用程序终极指南

为什么你的Windows快捷键突然失效?Hotkey Detective一键定位占用程序终极指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-d…...

【IEEE冠名】第七届IEEE人工智能与机电自动化国际学术会议(IEEE-AIEA 2026)

第七届人工智能与机电自动化国际学术会议(AIEA 2026)致力于将“人工智能”与“机电自动化”领域的专家学者、研发者和技术人员汇集一堂的国际盛会。会议将于2026年6月26-28日在中国深圳举行。会议的主旨是为相关领域的从业者及研究人员提供一个开放、共享…...

Taotoken助力企业级AI应用开发,统一管理多个Agent的API成本与用量

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken助力企业级AI应用开发,统一管理多个Agent的API成本与用量 当团队同时运行多个基于不同大模型的智能体应用时&a…...

ElevenLabs支持贵州话吗?2024最新实测结果+3种绕过官方限制的合规接入方案

更多请点击: https://codechina.net 第一章:ElevenLabs对贵州话的原生支持现状与底层语音技术解析 ElevenLabs当前官方模型库中尚未提供针对贵州话(含贵阳话、遵义话等主要方言变体)的独立语言选项或预训练语音模型。其公开支持的…...

企业AI项目紧急叫停!DeepSeek许可证新增限制条款(2024.06.18生效)及72小时补救路径

更多请点击: https://kaifayun.com 第一章:DeepSeek许可证紧急变更事件全景速览 2024年7月12日,DeepSeek官方突然宣布对其开源模型系列(包括DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE等)的许可证进行紧急修订&#…...