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

如何熟练使用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.kler.cn/a/156019.html

相关文章:

  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:数据加载策略如何决定分析速度(上)(15/30)
  • ‌MySQL 5.7和8.0版本在多个方面存在显著区别,主要包括性能优化、新特性引入以及安全性提升
  • 随机链表 (Randomized Linked List)、随机树 (Randomized Tree)详细解读
  • BGP线路的优势和使用场景有哪些?
  • 丹韵红墙成红毯至美背景!冠珠华脉「雍华京韵」于M essential大秀绽放京韵时尚
  • solidworks默认模板无效/打开step文件为空白 不显示模型
  • spring boot的redis连接数过多导致redis服务器压力过大的一次问题排查
  • 数据挖掘之时间序列分析
  • 万界星空科技灯具行业MES介绍
  • 【java毕业设计源码】基于SSM框架的在线智能题库管理系统设计与实现
  • TensorRT安装及使用教程(ubuntu系统部署yolov7)
  • 解决浏览器缓存问题
  • 基于算能的国产AI边缘计算盒子8核心A53丨17.6Tops算力
  • 设置随机种子保证网络可复现性
  • 智能优化算法应用:基于黄金正弦算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 有序表常见题型
  • 2023年GopherChina大会-核心PPT资料下载
  • Fiddler抓包工具之fiddler的常用快捷键
  • SpringAMQP入门案例——发送消息
  • Android CardView基础使用
  • 反序列化漏洞详解(三)
  • blender导出相机参数
  • ESP32使用mpu6050以及pid调参
  • Python - 字典3
  • 详解云WAF:免费GOODWAF归来
  • HarmonyOS—ArkTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化【鸿蒙专栏-11】