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

【Linux系统编程】编辑器vim

【Linux系统编程】编辑器vim

  • 1. vim的基本概念
  • 2. 三种模式如何互相切换
  • 3. vim基本操作与常用命令
  • 4. vim的简单配置

1. vim的基本概念

vim是一个多模式编辑器,其主要包含三种基本模式。

  1. 命令模式(Command Mode)
    当用户使用vim打开文件时,首先进入的就是命令模式。在此模式下,所敲的按键编译器都理解为命令,以命令驱动执行不同的功能。此模式下不能自由进行文本编辑,但可以执行复制、删除、粘贴等操作。
  2. 编辑模式(Insert Mode)
    编辑模式也称作插入模式,此模式下用户可以对文本内容进行自由编辑。进入次模式后,用户可以输入任何字符,这些字符都会被当作文本内容插入到文件中。
  3. 底行模式(Last Line Mode)
    以“:”开始,通常用于文件的保存、退出等操作。在此模式下可以执行更复杂的命令,如查找替换、行跳转等。

2. 三种模式如何互相切换

首先我们通过vim打开文件的时候默认处于命令模式,下面介绍如何切换。

  • 命令模式 -> 编辑模式:按下 i 键(在光标前插入)。其他常用按键按包括a(在光标后插入)、o(在当前行下方新建一行并插入)。
  • 编辑模式 -> 命令模式:按下 Esc 键。
  • 命令模式 -> 底行模式:按下 Shift + ; ,也就是输入英文的冒号 : 。
  • 底行模式 -> 命令模式:按下 Esc 键。

注意:编辑模式和底行模式之间不能直接切换,必须通过命令模式作为“桥梁”进行中转。

在这里插入图片描述

3. vim基本操作与常用命令

通过上面三种模式的互相转换,我们已经可以在vim中编写C程序了,下面我们以该C程序为例,学习vim的基本操作和常用命令。

该代码是通过切换到编辑模式敲出来的。
在这里插入图片描述

1. set nu、set nonu 显式行号、不显示行号

先进入底行模式
在这里插入图片描述
在这里插入图片描述
set nonu 不再演示。

2. gg 将光标定位到文本开始

先进入命令模式

在这里插入图片描述

3. shift + g 讲光标定位到文本末端

在这里插入图片描述
4. n + shift + g / n + gg 将光标定位到第n行

3 shift g / 3 gg
在这里插入图片描述
5. shift + 4 将光标定位到该行末尾

在这里插入图片描述

6. shift + 6 将光标定位到该行开头

在这里插入图片描述

7. w 将光标按照单词向后进行行内或跨行移动,n + w 表示每次向后移动n个单词

在这里插入图片描述

8. b 将光标按照单词向前进行行内或跨行移动,n + w 表示每次向前移动n个单词

在这里插入图片描述

9. h、j、k、l 分别表示让光标向左、下、上、右移动,因为原来键盘上是没有上下左右键的,光标也可以通过上下左右移动,但是建议用h、j、k、l

这个就不再演示了。

10. yy 复制光标所在行,n + yy 表示从当前行开始要复制n行

这里我们让光标在第5行,n=1,进行复制,通过下一个粘贴指令去展示。

11. p 将复制的内容从光标所在行的下一行粘贴,n + p 表示要粘贴n次

这里我们让n=3,进行粘贴。

在这里插入图片描述

12. dd剪切,剪切光标所咋行,n + dd 表示从当前行开始要剪切n行

这里我们让n=3,进行剪切。

在这里插入图片描述

13. u 撤销前一次命令操作

在这里插入图片描述

14. ctrl + r 撤销之前撤销的命令操作

在这里插入图片描述

**15. shift + ` 就是Esc下面的那个字符,表示单个字符大小写转换,前面+n,就是从光标位置开始向后转换n个字符 **

这里n=1
在这里插入图片描述

16. n + r 将从光标位置开始向后n个字符全部替换成下一次输入的字符

这里n=3,输入c

在这里插入图片描述

17. shift + r 将模式从命令模式转换为替换模式,输入字符替换光标位置的字符,按Esc键可以回到命令模式

这里输入 abc

在这里插入图片描述

18. n + x 从光标所在位置开始向后删除n个字符,只会删除当前行

先回到命令模式

回到命令模式后,光标会自动向前走一格,所以会把c字符也删掉,这里n=20

在这里插入图片描述
19. ctrl + v 从命令模式进入到视图模式,可以解决多行注释和取消注释、多行写入等问题

多行注释

ctrl + v进入视图模式,然后通过h/j/k/l选中多行多列,按ctrl + i,然后插入注释符号//,再连按两次Esc即可注释多行,多行写入也是这个步骤,只不过是把//换成你要写的内容。

请添加图片描述

多行取消注释

ctrl + v进入视图模式,然后通过h/j/k/l选中多行多列,然后按d即可。

请添加图片描述

20. /要找的内容,在文本中查找并标记,输入n,跳转到下一个

在这里插入图片描述

21. vs 文件名 在底行模式可以多文件分屏操作,例如一个code.h头文件和一个code.c源文件,共同编写

在这里插入图片描述

ctrl + ww 可以让光标在多个文件中跳转,光标在哪一个文件就对哪一个文件进行操作

总结:
差不多就这些操作,但是还有一些操作我们没讲到,大家可以自行了解。

在这里插入图片描述

4. vim的简单配置

  1. 建议:不要在root用户中配置。
  2. 在当前用户的家目录下创建一个.vimrc的文件。
  3. 用vim打开.vimrc文件,在其中写入我们所需要的配置即可,写入完成进入底行模式wq保存退出即可。

配置指令直接用DeepSeek等去搜即可

在这里插入图片描述

这里我就随便写几个验证一下。

syntax on 开启语法高亮
set nu 显示绝对行号
set tabstop=4 设置 Tab 键在屏幕上显示的宽度为 4 个空格
set shiftwidth=4 设置自动缩进(如 >>)的宽度为 4 个空格
set cursorline 高亮显示当前行
set softtabstop=4 使得在按退格键时可以一次删除 4 个空格

我们能看到 高亮显示当前行 还是很明显的。
在这里插入图片描述

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

相关文章:

  • 鸿蒙ArkTS入门教程:小白实战“易经”Demo,详解@State、@Prop与List组件
  • 扩散模型与UNet融合的创新路径
  • 从入门到精通的鸿蒙学习之路——基于鸿蒙6.0时代的生态趋势与实战路径
  • 704.力扣LeetCode_二分查找
  • 如何做企业网站宣传wordpress 显示空白
  • 机器学习库的线性回归预测
  • 旅游网站开发研究背景北京欢迎您
  • 做网站要学什么东西企业网站运维
  • Orleans Grain Directory 系统综合分析文档
  • 从PN结到GPIO工作模式
  • 面向社科研究者:用深度学习做因果推断(三)
  • 深度学习-MNIST手写数字识别(MLP)
  • K8s 静态持久化存储详解
  • wordpress seo 能提高网站速度吗
  • GitHub等平台形成的开源文化正在重塑特尔恩恩
  • 追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
  • 视频与音频碰撞,谷歌 Veo 3.1,生成“有声电影”,人物对话超震撼
  • 【PID】基本PID控制 chaprt1 学习笔记
  • 【大语言模型 103】推理服务监控:性能指标、故障诊断与自动恢复实战
  • 网站广东海外建设集团有限公司做网站工资多钱
  • Julia 字符串处理指南
  • volatile关键词探秘:从咖啡厅的诡异订单到CPU缓存之谜
  • 嵌入式Lua脚本编程核心概念
  • VScode开发环境搭建(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • 基于springboot的车辆管理系统设计与实现
  • WPF GroupBox 淡入淡出
  • Dify从入门到精通 第33天 基于GPT-4V构建图片描述生成器与视觉问答机器人
  • 网页制作与网站建设实战教程视频网站一般用什么数据库
  • React 05
  • srpingboot 推rtsp/rtmp等流地址给前端播放flv和ws