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

【Linux】vim的操作大全

目录

vim的5种常用模式:

一、命令模式

二、替换模式

三、底行模式

四、视图模式

五、补充

总结



vim的5种常用模式:

  • 常见的5种模式:命令模式、插入模式、替换模式、底行模式、视图模式
  • 图中箭头上的字符表示模式转换需要按下的按键:
  • 首先我们vim打开任意一个文本文件,默认就是命令模式。
  • 从命令模式可以进入其他任意模式,其他任意模式下按ESC即可返回命令模式。
  • 插入模式:在命令模式下按 a 或 i 或 o 键,即可进入插入模式,该模式就是我们进行文本编写的模式,使用方式和和使用记事本一样,就不多说了,此模式下按ESC即可返回命令模式。
  • 其他模式以及对应的命令用法,下面我们来一一介绍:

ps:vim模式不止这些,但这些是最常用的,了解并熟练掌握后即可使用vim快速编写代码和文本


一、命令模式

进入vim默认是命令模式,也可以在任何模式下按ESC进入该模式

1.gg

  • 功能:将光标定位到文本开头


2.G(shift+g)

  • 功能:将光标定位到文本末尾


3.数字+gg / 数字+G

  • 功能:都是将光标定位到数字对应的那一行开头位置

如:3+gg


4.$(shift+4)

  • 功能:将光标定位到当前行末尾处


5.^(shift+6)

  • 功能:将光标定位到当前行的行首处


6.h、j、k、l、w、b

  • h:光标向左移动一格
  • j:光标向下移动一格
  • k:光标向上移动一格
  • l:光标向右移动一格
  • w:光标向左以单词为长度进行移动(数字+w可以控制跳过单词个数)
  • b:光标向右以单词为长度进行移动(数字+b可以控制跳过单词个数)

补充:方向键也是控制光标的,效果一样


7.yy / p

  • 功能:复制粘贴
  • yy:复制当前行
  • p:粘贴到当前行的下一行

  • 数字 + p:粘贴n行相同内容

如:10p

  • 数字+yy:一次性复制n行内容(光标处往下n行)

如:在首行7yy复制后,p粘贴在第8行


8.u / ctrl+r

  • u功能:撤销上一步操作

如:撤销10p操作

  • ctrl+r功能:对u进行撤销,恢复撤销前的操作


9.dd

  • 功能:剪切或删除当前行,搭配p使用可以将剪切内容粘贴

如:将printf语句剪切到第7行

  • 数字+dd:剪切或删除n行

如:在首行上7dd,然后p在第6行


10.x / X

  • x功能:删除光标处的单个字符

  • X功能:删除光标前一个字符

  • 数字 + x/X:可以控制一次性删除字符个数

11.~(shift+`)

  • 功能:将光标处的字符转为大写字符。


12.shift+zz

  • 功能:保存并退出vim


二、替换模式

  • 在命令模式下,按 shift+r 也就是 R,可以进入替换模式。
  • 在该模式下,可以进行连续替换字符。输入字符可以替换光标所在处的字符,并且光标自动移到下一位。

如:将printf语句全替换成1。

  • 该模式可以在某行文本或代码有误的情况下进行替换操作
  • 按键盘上的删除按键(backspace),如果删除的字符位置上之前存在字符,那么就会恢复替换前的字符:

如:一直按住删除按键直到开始替换的位置,就能恢复替换前的代码

按ESC即可退出替换模式,回到命令模式


三、底行模式

  • 在命令模式下,按 shift+; 也就是 : (冒号),进入底行模式,底行模式有专门的输入框。
  • 底行模式输入命令后需要回车才能起效,每次回车后都会退出底行模式到命令模式,下一次执行底行命令依旧需要先按 shift+; 进入底行模式。

1.w / q

  • w:保存文本
  • q:退出vim
  • wq:保存并退出vim
  • w!:强制保存
  • q!:强制退出vim
  • wq!:强制保存并退出vim
  • 平时使用最多的就是wq了,在一些配置文件中,普通的wq可能无法保存退出,此时就需要带上 ! 强制退出了


2.set nu / set nonu

  • set nu:设置行号

  • set nonu:取消行号

set nu 是 set number 的缩写,效果一样


3./ + 需要搜索的内容

  • 功能:/ 具有搜索的功能,/ 后面接需要搜索的内容即可高亮显示被搜索到的内容。

如:/main

  • 如果有多个匹配的搜索项,此时按下 n 键,即可把光标跳转到下一个匹配项


4.! + command(指令)

  • 功能:可以在不退出vim的情况下执行系统指令
  • 如:在底行模式中输入 !ls,即可查看当前目录下的所有文件

  • 如:!gcc test.c,即可不退出vim进行编译当前代码

  • 如:接着底行模式输入 !./a.out,即可运行编译好的可执行程序


5.vs + 其他文件名

  • 功能:支持多开文件,可以同时编写多个文件的内容

如:在test.h中,底行模式输入 vs test.c 打开test.c文件

  • 命令模式下输入 ctrl+ww 即可来回切换光标操控不同文件
  • 光标在哪个文件就是操控哪个文件,在光标指示的文件中即使关闭文件也不会把另一个文件退出,文件间命令互不干扰。

6.%s/需要替换的字符串/新字符串/g

  • 功能:批量化修改字符串
  • 如:想把下面代码中的所有 printf 改为 print:

  • 在底行模式中输入 %s/printf/print/g 然后回车即可:

  • 如果更改后黄色高亮没消失,底行模式中输入 nohl 即可取消上面的黄色高亮显示。

更多命令可以在需要时,使用AI进行查找


四、视图模式

  • 在命令模式下,按 ctrl+v 即可进入视图模式,视图模式可以完成以下操作:

ps:以下操作中,hjkl的效果和命令模式中一样是控制光标移动方向的,当然方向键效果也一样

1.批量化注释代码

  • 批量化注释代码演示:首先光标停在需要注释的代码前,然后 ctrl+v 进入视图模式,再按 j 向下选择注释多少行:

  • 随后按 shift+i,也就是大写 I,进入插入模式,随后光标会回退到开始位置,在该位置输入 // 注释掉该行代码:

  • 最后,按下ESC即可将刚才选中的代码全部注释

  • 注释全部代码:只需要把光标定位到第一行的行首(gg),然后 ctrl+v -> shift+g -> shifit+i-> // -> ESC 即可。不同点就是在选择注释内容时直接 shift+g(G) 跳到最后一行就行:


2.批量化取消注释

  • 首先光标定位到需要取消注释那一行的行首,然后 ctrl+v 进入视图模式,按 j 向下选中需要取消注释的代码的第一根 /,
  • 然后还需要按一下 l 向左选中第二根 / :
  • 最后按 d 即可批量化删掉注释字符 //:
  •  
  • 当然先 l 选择第二根/,在 j 往下选择需要注释的行,效果一样。

3.批量化的修改操作

  • 依旧先把光标定位到需要修改的起始位置,然后 ctrl+v 进入视图模式,接着使用 hjkl 选中需要批量修改的内容,比如下面演示将代码中的 "hello world" 改成 "你好 世界":
  • 先选中 "hello world" 的区域,方向键怎么动都行,只要能选中需要修改的区域就行:
  • 然后按 d 删掉,接着重新 ctrl+v 进入视图模式,使用方向键选中需要批量化输入的区域:
  • 再按 shift+i 进入插入模式,光标会回退到开始位置,此时输入 "你好 世界",最后按下 ESC 即可完成批量化修改操作:

shift+i 可从视图模式转到插入模式,对应文章开头那张图中的绿线

小结:

  • 视图模式下可以完成很多批量化操作,只要你想就可以试试,万变不离其宗,一般都是 ctrl+v 进入视图模式起手,然后使用 hjkl 或者方向键选择需要批量化处理的区域,再进一步操作,最后就是ESC见证奇迹,当然有时候需要多次批量化,也就是多次 ctrl+v 进入视图,再选区等等。


五、补充

1.vim [文件名] [+数字]

  • 效果:进入文件后光标自动定位在第n行,也就是你输入的数字那一行
  • 适用场景:当文件编译报错后,可以快速定位错误的位置:
  • 虽然不是特别准确,但是在附近就行,特别是大型文件中很好用

2.! + 指令首字母

  • 效果:可以快速执行最近的该字母开头的指令
  • 如:我们刚刚使用了 gcc 编译了某个文件,修改文件后,需要重新编译,此时输入 !g 即可快速完成编译:
  • 这个 ! + 指令首字母主要是加快我们操作速度的。适合那些又长,使用上方向键需要翻几次才能找到,短时间内使用次数较多的指令。

3.配置vim

  • 我们直接使用vim就会发现它和普通的记事本没什么区别,如果我们想把vim变得更好用,就可以编写配置文件对vim进行配置
  • 在根目录/etc/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效,不过不建议配置该文件,我们只需要对自己常用的普通账户进行配置即可。
  • 每个用户的家目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root 目录下,通常已经存在⼀个.vimrc⽂件, 如果不存在,则用vim创建之。不过root账户最好也不用配置,默认即可,平时用得少。
  • 我们进入自己普通账户的家目录,配置自己的.vimrc文件(vim .vimrc):
  • vim下粘贴外部代码可能会格式混乱,在底行模式下输入下面两个命令即可避免出现粘贴格式错误的情况:
  • :set noautoindent  " 关闭自动缩进
    :set paste         " 进入粘贴模式(避免自动处理缩进)
  • 以下是一些参考的配置:
  • set number          " 显示行号(类似VS的行号显示)
    set mouse=a         " 启用鼠标支持(复制粘贴、点击跳转等)
    set tabstop=4       " 一个制表符显示为4个空格
    set shiftwidth=4    " 自动缩进和手动缩进(>>/<<)的空格数
    set softtabstop=4   " 按Tab键时实际插入的空格数
    set autoindent      " 新行自动继承上一行的缩进(基础自动缩进)
    set smartindent     " 智能缩进(针对C/C++等语言,如{}后自动缩进)
  • 最后wq保存退出,再使用vim随便打开一个文件就能看到效果了,比如行号可以自动显示了。想要更多的配置清单可以借助AI进行生成再筛选,当然还有很多的功能需要插件进行支持。如果你需要一套完整的配置清单,网上一搜就有很多选择,这里就不做推荐了。
  • 如果要安装vim插件,就需要先在家目录中 mkdir .vim 创建一个.vim的目录,vim的插件就是安装在该目录下。


总结

        以上就是本文的全部内容了,感谢支持!

http://www.dtcms.com/a/456894.html

相关文章:

  • Web Worker:释放前端性能的“后台线程”技术
  • 机械行业网站建设方案电商公司有哪些?
  • 赋能智能制造领域:全星QMS质量管理软件系统深度解析
  • java返回参数报错
  • cesium126,230217,Pixel Streaming in Unreal Engine 像素流 - 1 基本概念:
  • JavaScript基础知识
  • 以太网数据报文各协议字段深度解析(第一、二章)
  • microsoft做网站浙江建设培训中心网站
  • 从LLM角度学习和了解MoE架构
  • 【学习笔记06】内存管理与智能指针学习总结
  • 0、FreeRTOS编码和命名规则
  • 无锡专业制作网站wordpress 手风琴
  • 通过camel AI创建多agent进行写作
  • qt常用控件
  • 离散化模板
  • linphone + minisipserver 下载和配置
  • 网站建设登录界面代码wordpress 按钮美化
  • 吴恩达机器学习课程(PyTorch 适配)学习笔记:3.4 强化学习
  • jEasyUI 自定义窗口工具栏
  • Spring Boot 和 MyBatis 环境下实现动态数据源切换
  • 2025 年度国产大模型「开源 vs. 闭源」深度评测与实战指南
  • 网页设计与网站建设电话香洲网站建设
  • 移动论坛网站模板免费下载revolution slider wordpress
  • TPM(Total Productive Maintenance)现场管理
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 11 自动化测试--框架设计--基础知识 7--各种弹窗处理
  • ubuntu terminal 设置代理
  • 《传感器与检测技术》第 2 章 电阻式传感器原理与应用
  • Linux中input子系统
  • 探索Linux:开源世界的钥匙
  • GitHub 热榜项目 - 日榜(2025-10-08)