Linux基础开发工具—vim

news/2025/3/17 11:07:21/

目录

vim%E7%9A%84%E6%A6%82%E5%BF%B5-toc" name="tableOfContents" style="margin-left:0px">1、vim的概念

vim%E7%9A%84%E5%B8%B8%E8%A7%81%E6%A8%A1%E5%BC%8F-toc" name="tableOfContents" style="margin-left:0px">2、vim的常见模式

vim%E6%A8%A1%E5%BC%8F-toc" name="tableOfContents" style="margin-left:40px">2.1 演示切换vim模式

vim%E5%91%BD%E4%BB%A4%E6%A8%A1%E5%BC%8F%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C-toc" name="tableOfContents" style="margin-left:0px">3、vim命令模式常用操作

3.1 移动光标

3.2 删除文字

3.3 复制

3.4 替换

vim%E5%BA%95%E8%A1%8C%E6%A8%A1%E5%BC%8F%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4-toc" name="tableOfContents" style="margin-left:0px">4、vim底行模式常用命令

4.1 查找字符

vim%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6-toc" name="tableOfContents" style="margin-left:0px">5、vim的配置文件


vim%E7%9A%84%E6%A6%82%E5%BF%B5" name="1%E3%80%81vim%E7%9A%84%E6%A6%82%E5%BF%B5">1、vim的概念

Vim全称是Vi IMproved,即说明它是Vi编辑器的增强版。

Vim是一种多模式编辑器,不同模式下按键功能不同。

vim%E7%9A%84%E5%B8%B8%E8%A7%81%E6%A8%A1%E5%BC%8F" name="2%E3%80%81vim%E7%9A%84%E5%B8%B8%E8%A7%81%E6%A8%A1%E5%BC%8F">2、vim的常见模式

vim的常见模式有三种:命令模式、插入模式、底行模式。

命令模式(Normal mode)

vim打开文件时默认的模式,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段进入插入模式下,或者到底行模式。

插入模式(Insert mode)

只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令模式。该模式是我们后面使用得最频繁的编辑模式。在命令模式下按i\o\a等即可进入插入模式。

底行模式(last line mode)

可以执行文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,按下shift+: 即可进入该模式,按「ESC」键可回到命令模式

三种模式的切换


vim%E6%A8%A1%E5%BC%8F" name="2.1%20%E6%BC%94%E7%A4%BA%E5%88%87%E6%8D%A2vim%E6%A8%A1%E5%BC%8F">2.1 演示切换vim模式

在bash中输入vim+文件名就可以用vim打开文件,此时vim为默认的命令模式

这就是进入了vim且模式为命令模式

从命令模式进入插入模式,需要输入i/o/a。

i\o\a的区别:

i进入后光标在位置不变,但推出后若在一行的首个字符,光标不变,不在就会到上一个字符的位置。

o进入后会光标在上一次的行换行到下一行,退出插入模式回到命令模式后,光标位置不变。

a进入后光标会转移到上一个字符的下一个位置,退出插入模式回到命令模式后,光标会回到在插入模式所处字符的上一个字符位置。

在命令模式下按 : (冒号)即 【shift+;】,就可以进入底行模式


vim%E5%91%BD%E4%BB%A4%E6%A8%A1%E5%BC%8F%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C" name="3%E3%80%81vim%E5%91%BD%E4%BB%A4%E6%A8%A1%E5%BC%8F%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C" style="background-color:transparent">3、vim命令模式常用操作

3.1 移动光标

gg:光标定位到文件开头。
shift + g(G):光标定位到文件结尾。
n + shift + g(nG):光标定位到文件第n行。
shift + 6(^):光标定位到行开始。
shift + 4($):光标定位到行结尾。
h、j、k、l:左、下、上、右移动。

3.2 删除文字

x :每按一次,删除光标所在位置的一个字符
n + x :例如,「6x」表示删除光标所在位置的“后面(包含自己在内)"6个字符
X :大写的X,每按一次,删除光标所在位置的“前面”一个字符
n + X :例如,「20X」表示删除光标所在位置的“前面”20个字符

以上都是在一行内的操作。是一行内的前后。
dd :删除光标所在行
n + dd :从光标所在行开始删除n行

3.3 复制

yw :将光标所在之处到字尾的字符复制到缓冲区。
n + yw :复制n个字到缓冲区。
yy :复制光标所在行到缓冲区。
n + yy :例如,「6yy」表示连续复制从光标所在的该行“往下数”6行文字到缓冲区。
p :将缓冲区内的字符粘贴到光标所在位置。

n + p : 例如,「6p」表示连续粘贴从光标所在的该行“往下数”6行。

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

u :撤销

ctrl + r :对撤销撤销

dd :剪切

n + dd :剪切n行

3.4 替换

r :替换光标所在的字符

n + r :替换光标所在的后n个字符

shift + r(R) :替换光标所到之处的字符,直到按下「ESC」键为止。

3.5 批量化注释

批量化注释

1、ctrl v(进入可视化模式)

2、h、j、k、l区域选择,j

3、shift + i = I

4、//

5、ESC

批量化去注释

1、ctrl v

2、h、j、k、l区域选择

3、d


vim%E5%BA%95%E8%A1%8C%E6%A8%A1%E5%BC%8F%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4" name="4%E3%80%81vim%E5%BA%95%E8%A1%8C%E6%A8%A1%E5%BC%8F%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4">4、vim底行模式常用命令

列出行号:set nu

跳转到文件中的某一行:n

保存文件:w

离开vim:q,如果无法离开,在 q 后面加 ! 强制离开vim,此时一般并没有退出,按任意键又可以返回vim

保存并退出:wq

分屏:vs 文件名

4.1 查找字符

/ + 关键字 :先按 / 键,再输入想要查找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往后寻找到需要要的关键字为止。
? + 关键字 :先按 ? 键,再输入想要查找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往前寻找到需要的关键字为止。


vim%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6" name="5%E3%80%81vim%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">5、vim的配置文件

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

每个用户的家目录下都有自己的配置文件.vimrc,如果没有可以创建一个。配置这个文件只对该用户有效。

vim的配置就是对这个名为vimrc.vimrc的文件内容的修改。

对于vim的配置,大家可以按照vim的配置代码进行一个一个地配置,也可以在网络上寻找别人公开的vim配置文件进行使用,这里不再赘述。


http://www.ppmy.cn/news/1579793.html

相关文章

ffmpeg + opencv 打静态库编译到可执行文件中

下载ffmpeg ,我下载的为6.0 版本,解压后执行: ./configure --enable-static --disable-shared --pkg-config-flags=“–static” --extra-cflags=“-fPIC” --extra-cxxflags=“-fPIC” --prefix=/usr/local2.等待配置完成,执行 make && make install 进行编译安装…

【零基础入门unity游戏开发——unity3D篇】3D物理系统之 —— 3D碰撞器Collider

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

【蓝桥杯】省赛:连连看(暴力 非AC)

对角线 遍历每个元素的左下、右下对角线,检查是否值相等 n,m map(int,input().split()) A [] for i in range(n):ls list(map(int,input().split()))A.append(ls)cnt 0 for i in range(n):for j in range(m):# zuoxiafor p in range(1, min(n-1-i 1,j1)):if A…

音视频入门基础:RTP专题(20)——通过FFprobe显示RTP流每个packet的信息

通过FFprobe命令: ffprobe -protocol_whitelist "file,rtp,udp" -of json -show_packets XXX.sdp 可以显示SDP描述的RTP流每个packet(数据包)的信息: 对于RTP流,上述的“packet”(数据包&#…

【系统设置】安装CUDA Toolkit,提升本地大模型运行效率

目标 安装CUDA Toolkit,提升本地大模型运行效率。 背景知识 CUDA(Compute Unified Device Architecture)是由NVIDIA开发的并行计算平台和编程模型,它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。 CUD…

贪心算法五

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是贪心算法,并且掌握贪心算法。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…

关于stac和clac的进一步细节及EFLAGS

一、背景 在之前的博客 内核态代码直接使用用户态数据的注意事项_内核态如何打开用户态文件-CSDN博客 里,我们x86平台上在内核态里使用用户态数据的相关细节,即需要使用stac和clac函数来打开/关闭内核态访问用户态数据的权限,这里说是权限&a…

kong搭建一套微信小程序的公司研发环境

一、物理架构 微信小程序H5部署在微信公众平台,需要通过外网域名访问到公司机房。 为了区分生产和研发环境,需要创建两个外网域名。 另外,微信小程序需要配置业务域名, 请参考文章- 微信小程序的业务域名配置(通过kong网关的pre…