vim使用指南

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

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

目录

 一、Vim 的基本概念

1.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.rhkb.cn/news/2222.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP-IP详解卷 TCP的超时与重传

TCP-IP详解卷1-21:TCP的超时与重传(Timeout and Retransmission) 一:介绍 1: 与数据链路层的ARQ协议相类似,TCP使用超时重发的重传机制。 即:TCP每发送一个报文段,就对此报文段设置…

卷积神经02-CUDA+Pytorch环境安装

卷积神经02-CUDAPytorch环境安装 在使用Python进行pytorch的使用过程中遇到各种各样的版本冲突问题,在此进行记录 0-核心知识脉络 1)根据自己电脑的CUDA版本安装对应版本的Pytorch,充分的使用GPU性能2)电脑要先安装【CUDA ToolKi…

【STM32-学习笔记-7-】USART串口通信

文章目录 USART串口通信Ⅰ、硬件电路Ⅱ、常见的电平标准Ⅲ、串口参数及时序Ⅳ、STM32的USART简介数据帧起始位侦测数据采样波特率发生器 Ⅴ、USART函数介绍Ⅵ、USART_InitTypeDef结构体参数1、USART_BaudRate2、USART_WordLength3、USART_StopBits4、USART_Parity5、USART_Mode…

为深度学习创建PyTorch张量 - 最佳选项

为深度学习创建PyTorch张量 - 最佳选项 正如我们所看到的,PyTorch张量是torch.Tensor​ PyTorch类的实例。张量的抽象概念与PyTorch张量之间的区别在于,PyTorch张量为我们提供了一个可以在代码中操作的具体实现。 在上一篇文章中,我们看到了…

RabbitMQ(四)

SpringBoot整合RabbitMQ SpringBoot整合1、生产者工程①创建module②配置POM③YAML④主启动类⑤测试程序 2、消费者工程①创建module②配置POM③YAML文件内配置: ④主启动类⑤监听器 3、RabbitListener注解属性对比①bindings属性②queues属性 SpringBoot整合 1、生…

项目练习:若依管理系统字典功能-Vue前端部分

文章目录 一、情景说明二、若依Vue相关代码及配置1、utils代码2、components组件3、api接口代码4、Vuex配置5、main.js配置 三、使用方法1、html部分2、js部分 一、情景说明 我们在做web系统的时候,肯定会遇到一些常量选择场景。 比如,性别:…

【 PID 算法 】PID 算法基础

一、简介 PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。也就是说,PID算法是结合这三种环节在一起的。粘一下百度百科中的东西吧。 顾名思义,…

微信小程序原生与 H5 交互方式

在微信小程序中,原生与 H5 页面(即 WebView 页面)之间的交互通常有以下几种方式: 1. 使用 postMessage 进行通信 微信小程序的 WebView 页面和原生小程序页面可以通过 postMessage 来进行数据传递。 WebView 页面向原生小程序发…

c++领域展开第十二幕——类和对象(STL简介——简单了解STL)超详细!!!!

文章目录 前言STL简介什么是STLSTL的版本STL的六大组件STL的重要性如何学习STL 总结 前言 上篇博客我们了解了初阶的模版函数,以及有关的一些使用方法。 今天我们来了解了解STL库的有关知识 跟我一起上车吧 STL简介 什么是STL STL:是C标准库的重要组成…

音频语言模型与多模态体系结构

音频语言模型与多模态体系结构 多模态模型正在创造语言、视觉和语音等以前独立的研究领域的协同效应。这些模型使用通用架构,将每种模式视为不同的“token”,使它们能够以一种与人类认知非常相似的方式联合建模和理解世界。 ​ ​可以将多模态分为两个主要领域:输入空间(…

HTML中最基本的东西

本文内容的标签,将是看懂HTML的最基本之基本 ,是跟您在写文章时候一样内容。一般想掌握极其容易,但是也要懂得如何使用,过目不忘,为手熟尔。才是我们学习的最终目的。其实边看边敲都行,或者是边看边复制粘贴…

LVGL移植高通点阵字库GT30L24A3W

字库芯片: GT30L24A3W MCU:STM32F429 LVGL版本:V8.4 一、实现gt_read_data() 和 r_dat_bat() 请参考下面视频 如何在32位MCU上使用高通点阵字库_哔哩哔哩_bilibili 高通字库使用教程(1)硬件链接与注意事项部分_哔哩哔哩_bilibili 高通字库使用教程(2)SPI底层函数使用_哔哩…

计算机的错误计算(二百一十二)

摘要 利用两个大模型计算 实验表明,两个大模型均进行了中肯的分析。另外,其中一个大模型给出了 Python代码,运行后,结果中有7位错误数字;而一个大模型进行加减运算时出错。 例1. 计算 下面是与一个大模型的对话…

蓝桥与力扣刷题(709 转换成小写字母)

题目:给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 示例 1: 输入:s "Hello" 输出:"hello"示例 2: 输入:s "here…

9.7 visual studio 搭建yolov10的onnx的预测(c++)

1.环境配置 在进行onnx预测前,需要搭建的环境如下: 1.opencv环境的配置,可参考博客:9.2 c搭建opencv环境-CSDN博客 2.libtorch环境的配置,可参考博客:9.4 visualStudio 2022 配置 cuda 和 torch (c)-CSDN博客 3.cuda环境的配置…

自建RustDesk服务器

RustDesk服务端 下面的截图是我本地的一个服务器做为演示用,你自行的搭建服务需要该服务器有固定的ip地址 1、通过宝塔面板快速安装 2、点击【安装】后会有一个配置信息,默认即可 3、点击【确认】后会自动安装等待安装完成 4、安装完成后点击【打开…

浅谈云计算15 | 存储可靠性技术(RAID)

存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…

Android JecPack组件之LifeCycles 使用详解

一、背景 LifeCycle 是一个可以感知宿主生命周期变化的组件。常见的宿主包括 Activity/Fragment、Service 和 Application。LifeCycle 会持有宿主的生命周期状态的信息,当宿主生命周期发生变化时,会通知监听宿主的观察者。 LifeCycle 的出现主要是为了…

Facebook 隐私风波:互联网时代数据安全警钟

在社交媒体飞速发展的今天,个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一,Facebook面临的隐私问题,尤其是数据泄露事件,频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏,Facebook的隐私挑…

candb++ windows11运行报错,找不到mfc140.dll

解决问题记录 mfc140.dll下载 注意:放置位置别搞错了