如何熟练使用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,欢迎大家私信找我免费获取哦!

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

在这里插入图片描述

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

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

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

相关文章

软件系统安全漏洞检测应该怎么做?靠谱的软件安全检测公司推荐

软件系统安全漏洞检测是指通过对软件系统进行全面的、系统化的评估,发现和解决其中可能存在的安全漏洞和隐患。这些安全漏洞可能会被不法分子利用,引发数据泄露、系统瘫痪、信息被篡改等安全问题,给企业造成严重的经济和声誉损失。那么软件系…

zabbix分布式监控平台从IPV4切换到IPV6之监控主机切换

现在有一套监控了海量服务器的zabbix分布式监控平台需整体在线从IPV4切换到IPV6,不能影响其原有的定制监控及视图。本文讲解了切换的第一步--监控主机切换。 一、zabbix分布式监控平台平台架构 本套zabbix分布式监控平台是一个多代理服务器分布式部署的典型传统架构…

Node——Node.js简介

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它能够让JavaScript脚本运行在服务端,这使得JavaScript成为与PHP、Python等服务端语言平起平坐的脚本语言。 1、认识Node.js Node.js是当今网站开发中非常流行的一种技术,它以简单易…

开放远程访问MySQL的权限

访问远程数据库时,产生Access denied for user ‘root‘‘xxx.xxx.xxx.xxx‘ (using password: YES)异常的解决办法 一. 异常现象 我编写了一个SpringBoot项目,项目中连接的数据库服务器地址是192.168.87.107,然后打包生成了对应的jar包&am…

Microsoft Remote Desktop高效、安全、稳定的远程办公解决方案

在今天的数字化时代,Remote Desktop远程办公已成为许多人的日常生活。无论你是因为工作需要,还是因为在家中需要访问公司服务器,微软远程连接软件都是一个理想的选择。 微软远程连接软件Remote Desktop是一款高效、安全、稳定的远程办公解决…

苹果手机照片恢复,这3个方法收藏好了吗?

如今,我们越来越喜欢用手机拍照来记录生活的点点滴滴。对于很多人来说,手机中的照片是他们珍贵的记忆和情感。如果这些照片丢失了,会给他们带来很大的困扰。那么,如何恢复苹果手机照片呢?本文将为您介绍有关苹果手机照…

内网穿透的应用-如何部署Tale博客并结合cpolar内网穿透发布个人站点到公网访问

Linux系统部署Tale个人博客并发布到公网访问 文章目录 Linux系统部署Tale个人博客并发布到公网访问前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale…

阿里云效一键部署前后端

静态站点到OSS 阿里云-云效,阿里云企业级一站式 DevOps,可以免费使用(会限制人数、流水线数量等,个人项目够用了)。相关文章 CI 持续集成 - 阿里云云效 OSS 是对象存储的意思,一般一个项目对应一个 Bucke…

深度学习手势检测与识别算法 - opencv python 计算机竞赛

文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…

STM32 外部中断配置与中断函数设计

单片机学习 目录 文章目录 一、外部中断配置步骤 1.1配置RCC 1.2配置GPIO 1.3配置AFIO 1.4配置EXTI 1.5配置NVIC 二、中断函数设计 总结 一、外部中断配置步骤 第一步:配置RCC,把涉及外设的时钟打开。第二步:配置GPIO,选择…

样品实验K-KAT348羧酸铋催化剂TDS说明书

样品实验K-KAT348羧酸铋催化剂TDS说明书 50克 100克 200克

STM32_11(SPI)

一、SPI通信 SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slav…

还在愁没项目?来瞧瞧这些另类赚钱方式

客套话不多说,直接上案例,这些都是正儿八经的真实案例,相信大家通过这些人的案例自然能摸索整理出一套属于自己的项目!摸索不出,也多多少少能受一些灵感上的启发。 小A是长期混B站的,大家称他为“B站搬运工…

C++ 通过SQLite实现命令行工具

本文介绍了一个基于 C、SQLite 和 Boost 库的简单交互式数据库操作 Shell。该 Shell 允许用户通过命令行输入执行各种数据库操作,包括添加、删除主机信息,设置主机到特定主机组,以及显示主机和主机组列表。通过调用 SQLite3 库实现数据库连接…

【网络安全】meterpreter攻击实战

1.meterpreter 攻击成功后可以做什么指令? 远程控制命令执行摄像头监控密码获取创建后门用户破坏篡改系统。 2.创建后门用户并开启远程连接: net user zhangsan 123456/add && net localgroup adminstrators zhangsan/add exit run getgul -…

拓数派荣获上海市“智慧工匠”工业软件创新案例奖

近日,由上海市经济和信息化委员会指导、上海市城市数字化转型应用促进中心主办、上海中创产业创新研究院承办的“工业软件赋能新型工业化”主题沙龙暨2023“智慧工匠”工业软件创新案例竞赛颁奖典礼在上海圆满落幕。拓数派凭借上汽集团工业数据管理服务平台案例成功…

ROS vscode使用基本配置

1、创建ros工作空间 2、启动 vscode 3、vscode 中编译 ros ctrl shift B 调用编译,选择:catkin_make:build 修改.vscode/tasks.json 文件 4、 创建 ROS 功能包 选定 src ---> create catkin package 依次设置包名、添加依赖 5、C 实现 在功能包的 src 下…

Yolov8训练数据集过程 + 测试测试集 + 继续训练+报错解决

做自己第一次使用Yolov8训练的记录 1、下载代码 官网的我没找到对应的视频教程,操作起来麻烦,一下这个链接的代码可以有对应bilibili教程:完整且详细的Yolov8复现训练自己的数据集 选择这个下载: 2、安装需要的包: …

扫码听音乐该如何制作?音乐的二维码生成方法

多个音频文件怎么做成一个二维码显示?二维码在现在的生活中拥有丰富的使用场景,可以用来作为多种内容类型的载体,比如音频二维码就是经常被使用的一种二维码类型。通过扫秒二维码来听音频文件,更加的灵活方便,那么音频…

MySQL C代码连接

环境:5.7.42-0ubuntu0.18.04.1 (Ubuntu) mysql接口介绍 初始化mysql指针 用来生成MySQL对象,返回值为MySQL*,MySQL*是MySQL对象的指针。 MySQL在mysql.h中是一个结构体 链接数据库 初始化完毕之后,必须先链接数据库&#xff…