vim使用指南

embedded/2025/1/16 6:45:20/

🏝️专栏:计算机操作系统
🌅主页:猫咪-9527-CSDN博客 

“欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。”

目录

 一、Vim 的基本概念

1.1普通模式 (Normal Mode)

1.2插入模式 (Insert Mode)

1.3命令模式 (Command Mode)

二、Vim 的基础操作

1. 文件打开与关闭

2. 普通模式操作

2.1 光标移动

2.1.1单字符移动

2.1.2括号匹配跳转

2.1.3屏幕滚动

2.1.4行内移动

2.1.5单词移动

2.2 文本删除

2.3 文本复制与粘贴

2.4 撤销与重做

2.5 替换

3. 插入模式操作

4. 命令模式操作

4.1 文件操作

4.2 搜索与替换

4.2.1搜索

4.2.2替换

5. 高级操作

5.1 多文件编辑

5.2 分屏

三、vim的配置


 一、Vim 的基本概念

        Vim 是一种强大的文本编辑器,支持模式化编辑。它主要通过 模式切换快捷键操作 来高效地编辑文本。

1.Vim 的主要模式

1.1普通模式 (Normal Mode)

操作:默认模式,进入 Vim 时即处于该模式,按 Esc 回到普通模式

作用:用于文件浏览、文本导航、删除、复制粘贴等操作。

1.2插入模式 (Insert Mode)

作用:用于文本输入。

操作:在普通模式下按 ia 进入,按 Esc 退出。

1.3命令模式 (Command Mode)

作用:用于执行保存、退出、搜索、替换等命令。

操作:在普通模式下按 : 进入,命令执行后会返回普通模式。


二、Vim 的基础操作

1. 文件打开与关闭

        打开文件

vim [文件名]

        例如:

vim text.c

2. 普通模式操作

普通模式是 Vim 最核心的模式,用于导航、删除、复制粘贴等操作。

2.1 光标移动

2.1.1单字符移动
  • h:向左移动一个字符。
  • l:向右移动一个字符。
  • j:向下移动一行。
  • k:向上移动一行。


2.1.2括号匹配跳转
  • %:在匹配的括号间跳转(适用于 ()[]{} 等结构)。

2.1.3屏幕滚动
  • Ctrl + d:向下滚动半屏。
  • Ctrl + u:向上滚动半屏。
  • Ctrl + f:向下滚动一屏。
  • Ctrl + b:向上滚动一屏。
  • :n:跳到第 n 行(如输入 :10 跳到第 10 行)。
  • gg:跳到文件的开头。
  • G:跳到文件的结尾。


2.1.4行内移动
  • 0:移动到当前行的行首。
  • ^:移动到行首第一个非空字符。
  • $:移动到行尾。

2.1.5单词移动
  • w:跳到下一个单词的开头。
  • e:跳到当前单词的结尾,或下一个单词的结尾。
  • b:跳到前一个单词的开头。
2.2 文本删除
  • x:删除当前字符。
  • dd:删除当前行。
  • dw:删除从光标位置到单词末尾。
  • d$:删除从光标位置到行尾。
  • d0:删除从光标位置到行首。
  • dgg:删除从光标到文件开头。
  • dG:删除从光标到文件结尾。
2.3 文本复制与粘贴
  • yy:复制当前行。
  • y:复制选定区域(可与可视模式结合)。
  • yw:复制从光标到单词末尾。
  • y$:复制从光标到行尾。
  • p:粘贴到光标后。
  • P:粘贴到光标前。
2.4 撤销与重做
  • u:撤销上一步操作。
  • Ctrl + r:重做撤销操作。
2.5 替换
  • r+单个字母:用 单个字母 替换当前字符。
  • R:进入替换模式,覆盖原文字。

3. 插入模式操作

在普通模式下,按以下键进入插入模式:

i:从光标前进入插入模式。

I:从行首进入插入模式。

a:从光标后进入插入模式。

A:从行尾进入插入模式。

o:在当前行下插入新行并进入插入模式。

O:在当前行上插入新行并进入插入模式。

退出插入模式:按 Esc


4. 命令模式操作

在普通模式下,按 : 进入命令模式,可执行以下命令:

4.1 文件操作
  • :w 保存文件。
  • :q 退出文件。
  • :wq 保存并退出。
  • :q! 强制退出。
  • :sav new_filename 另存为。
4.2 搜索与替换
4.2.1搜索
  • /text:向下搜索 text
  • ?text:向上搜索 text
  • n:跳到下一个匹配项。
  • N:跳到上一个匹配项。
4.2.2替换
  • :s/old/new/:将当前行的第一个 old 替换为 new
  • :s/old/new/g:将当前行的所有 old 替换为 new
  • :%s/old/new/g:将整个文件中的 old 替换为 new
  • :%s/old/new/gc:替换前逐一确认。

5. 高级操作

5.1 多文件编辑
  • 打开多个文件:
    vim file1 file2 file3
    
  • 文件切换:

    • :n:下一个文件。

    • :prev:上一个文件。

    • :ls:列出已打开的文件。

    • :b n:切换到编号为 n 的文件。

5.2 分屏
  • 垂直分屏::vsplit filename

  • 水平分屏::split filename

  • 分屏切换:

    • Ctrl + w + h:切换到左侧窗口。

    • Ctrl + w + l:切换到右侧窗口。

    • Ctrl + w + j:切换到下方窗口。

    • Ctrl + w + k:切换到上方窗口。


三、vim的配置

详细请看:vim的配置

编辑 ~/.vimrc 文件可自定义 Vim。例如:

set number        " 显示行号
syntax on         " 开启语法高亮
set tabstop=4     " 设置 Tab 宽度为 4
set shiftwidth=4  " 设置自动缩进宽度为 4
set expandtab     " 用空格代替 Tab


http://www.ppmy.cn/embedded/154326.html

相关文章

Vue3使用vue-count-to数字滚动模块报错解决方案

小伙伴们是不是遇到了vue3项目使用vue-count-to出现报错的问题 报错如下: TypeError: Cannot read properties of undefined (reading _c) 这个错误信息具体是说没读取到_c的属性 具体不清楚是什么原因,排查还得去看源码,所以我们来解决&a…

hot100_240. 搜索二维矩阵 II

hot100_240. 搜索二维矩阵 II 直接遍历列减行增 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,1…

【精选】基于EfficientViT优化YOLOv8的智能车辆识别系统设计 车辆颜色分类与车牌检测、深度学习目标检测系统开发

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

(12)springMVC文件的上传

SpringMVC文件上传 首先是快速搭建一个springMVC项目 新建项目mvn依赖导入添加webMoudle添加Tomcat运行环境.在配置tomcat时ApplicationContext置为"/"配置Artfact的lib配置WEB-INF配置文件(记得添加乱码过滤)配置springmvc-servlet文件&…

Vue2+OpenLayers给标点Feature添加信息窗体(提供Gitee源码)

目录 一、案例截图 二、安装OpenLayers库 三、代码实现 3.1、信息窗体DOM元素 3.2、创建Overlay 3.3、创建一个点 3.4、给点初始化点击事件 3.5、完整代码 四、Gitee源码 一、案例截图 二、安装OpenLayers库 npm install ol 三、代码实现 初始化变量: d…

【漫话机器学习系列】046.弹性网络(Elastic Net)

弹性网络(Elastic Net) 弹性网络(Elastic Net) 是一种线性回归模型正则化方法,结合了L1正则化(Lasso)和L2正则化(Ridge)的优点,解决了它们各自的缺点&#x…

什么是IDE,新手如何选择IDE?

IDE 是 Integrated Development Environment(集成开发环境)的缩写,它是一种软件应用程序,为程序员提供了一站式的开发环境,整合了多种工具和服务,以便高效地创建、修改、编译、调试和运行软件程序。IDE 集成…

交叉编译avahi到aarch64平台

谢绝转载 一、背景 准备学习无中心网络组网,研究如何实现无中心网络IP分配 二、环境搭建过程 找到的有参考价值的网页: https://zhuanlan.zhihu.com/p/60892150322 gcc_7.5.sh #! /bin/shexport PATH/home/ws/chain_tools/gcc-linaro-7.5.0-2019.1…