☰
Linux 开发工具(二) 简单认识一下编辑器 —— vim
2026/10/9 2:48:09 网站建设 项目流程

目录

一. vim

1.1 什么是 vim

1.2 vim 的多模式

1.2.1 命令模式

1.2.1.1 命令模式下的光标移动

1.2.1.2 在命令模式下的编辑

1.2.1.3 在命令模式下的查找

1.2.2 插入模式\编辑模式

1.2.2.1 命令模式进入插入模式的其他方法

1.2.2.2 退出

1.2.3 底行模式

1.2.3.1 简单命令

1.2.4 视图模式

1.2.4.1 批量化注释

1.2.4.2 批量化去注释

1.2.4.3 批量化处理

1.2.5 两个实用的技巧

1.2.5.1 vim 文件名 +行号

1.2.5.2 !


一. vim

1.1 什么是 vim

vim 可以看作是文本编辑器,作用主要就是编写代码和修改各种文本文件。​​​​​​我们常用的 vscode 其实也算是文本编辑器,只不过 vscode 的功能更加多样,是一个集成开发环境简称IDE,可以编写代码、编译、调用、运行等等,文本编辑器只是它的一种功能。

1.2 vim 的多模式

vim 的模式有很多,高达十几种,但是最常用的只有三种:

1.2.1 命令模式

vim的命令模式其实就是启用vim时进入的默认模式。

1.2.1.1 命令模式下的光标移动
  • 基本移动(可以用n):h(左)、j(下)、k(上)、l(右)(替代方向键,手指不离主键盘)我们可以在相应的指令前加上数字来加快我们的移动:6h 向左移动6次。
  • 单词移动(可以用n):w(下一个单词开头)、b(上一个单词开头)同样可以在前面加上数字加快移动。
  • 行内移动:[shift+6](^)(行首第一个非空字符)、[shift+4]($)(行尾)
  • 文件内移动:gg(文件开头)、[shift+g](G)(文件结尾)、nG(跳转到第 n 行,如 5G 跳第 5 行)
1.2.1.2 在命令模式下的编辑
  • 复制粘贴:yy(复制当前行)、yw(复制当前单词)、p(光标后粘贴)、[shift+p](P)(光标前粘贴)、nyy(复制n行,比如 5yy 复制5行)、np(将复制内容粘贴n次)
  • 删除:x(删除/剪切光标处字符)、dd(删除/剪切当前行)、dw(删除当前单词)、ndd(删除/剪切 n 行,比如3dd,删除/剪切3行)、[shift+x](X)(删除/剪切光标处左侧字符)、nx(删除n个字符)
  • 撤销与重做:u(撤销上一步)、Ctrl+r(重做撤销操作)、.(重复上一次编辑命令)
  • 替换:r(替换光标处单个字符)、[shift+r](R)(进入替换模式,替换模式和插入模式功能大致一样,只是当光标移动到有字符的位置时,不是插入而是替换)、nr(替换光标处开始的n个字符)
  • 切换:~:(对特定的字符进行大小写切换,光标自动跳跃到该行下一个字符)
1.2.1.3 在命令模式下的查找

在命令模式下,把光标移动到要查找的单词上,按Shift+3(也就是#),Vim 会自动识别光标所在单词,并向上查找相同单词;之后按n可以继续沿向上的方向查找下一个相同单词。

1.2.2 插入模式\编辑模式

当我们想要对文本进行编辑时,就需要进入插入模式,我们只需要在命令模式下按i即可进入。当左下角的字变为INSERT时就代表进入了插入模式。

1.2.2.1 命令模式进入插入模式的其他方法

除了输入i,在命令模式下输入a、o也都可以进入插入模式

i:光标所处位置不动。

a:光标往后退一格。

o:光标往下退一格,并且开辟新行。

1.2.2.2 退出
  • 在当前模式下 vim 是不能退出的,你先按ESC退入到默认模式下,然后输入大写的ZZ即可退出。
  • 如果我们不想在插入模式退出,我们也可以通过命令在底行模式下退出,首先按下shift+;进入底行模式,在底行命令中w代表保存,q代表退出,wq就是保存并退出。

1.2.3 底行模式

在命令模式下按下shift+;进入底行模式(底行模式回退到命令模式按下ESC即可),我们想设置行号就可以通过底行命令set un完成:

1.2.3.1 简单命令
  • 保存退出:这个我们之前讲过,这里主要提一下:w!(强制保存)、q!(强制退出)、wq!(强制保存并退出)
  • 行号:set nu(显示行号)、set nonu(取消行号)
  • 能直接回到vim:!command(bash中执行的命令,都可以在底行之间切换)–再按任意键回到vim
  • 批量替换:%s/被替换/新内容/g(用新内容替换指定项目)
  • 查找:/要查找的内容、n(下一个)、N(上一个)
  • 分屏:vs文件名(分屏,用来写文件,光标在那就以哪个文件为主)、ctrl+ww(移到其它文件)

这里提一嘴,vim 未创建的文件名、 vim 下 vs 未创建的文件名都会代开一个新缓冲区,只有保存了才会以此文件名建立新的文件。

1.2.4 视图模式

在命令模式下按下ctrl+v进入视图模式,视图模式回退到命令模式按下ESC即可。

1.2.4.1 批量化注释

1.2.4.2 批量化去注释

1.2.4.3 批量化处理

例如:我要把hallo world里的world全部删除

例如:我又把world重新插入

1.2.5 两个实用的技巧

1.2.5.1 vim 文件名 +行号

意思就是打开文件的同时,光标定位到想要的行号。

vim code.cpp +2

1.2.5.2 !

之前在指令(三)中提到过 ctrl+r 和 上下键 可以快速使用历史指令,这次的指令也是一样;

!vim #按下回车,找最近一条以vim开头的历史命令 #直接再次执行 #假如我最近执行了指令 vim code.cpp,那么按下回车,直接执行 vim code.cpp

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询