Vim工具使用全攻略:从入门到精通

引言

在软件开发的世界里,Vim不仅仅是一个文本编辑器,它是一个让你的编程效率倍增的神器。然而,对于新手来说,Vim的学习曲线似乎有些陡峭。本文将手把手教你如何从Vim的新手逐渐变为高手,深入理解Vim的操作模式,并掌握一些实用的技巧。

 

Vim的基本概念

Vim,一款自诞生以来就以其强大和灵活性著称的文本编辑器,其独特之处在于它的模式化操作,这也是它与其他编辑器最大的不同。理解Vim的模式对于掌握Vim至关重要。

Vim的工作模式

Vim的工作方式大致可以分为三种基本模式,每种模式下的键入操作都有不同的含义,这三种模式分别是:

  1. 正常模式(Normal Mode):

    • 这是Vim的默认模式。在这个模式下,你可以使用快捷键执行复制、粘贴、移动、删除等操作。这些操作都是基于文本行或字符的,而不是用于输入文本。正常模式是Vim中最强大的模式,因为它提供了许多命令来快速修改文本。
  2. 插入模式(Insert Mode)

    • 在插入模式下,你可以输入文本。这个模式类似于其他文本编辑器的常态。在Vim中进入插入模式的方法有多种,包括但不限于按下i(在光标前插入)、I(在当前行首插入)、a(在光标后插入)、A(在当前行尾插入)、o(在当前行之下新开一行插入)、O(在当前行之上新开一行插入)等。
  3. 末行模式(Command-Line Mode or Last Line Mode)

    • 在末行模式下,你可以输入一些命令,比如保存文件、查找和替换文本、打开新文件或者退出Vim等。这个模式通常用于执行那些影响整个文档的操作。进入这个模式的方法是在正常模式下按下:,然后在屏幕底部的命令行中输入命令。
Vim的其他模式

除了上述三种基本模式外,Vim还有其他一些模式,包括但不限于:

  • 可视模式(Visual Mode)

    • 在这个模式下,你可以用光标选择文本块,然后执行复制、粘贴等操作。进入这个模式的方法是在正常模式下按v(字符选择)、V(行选择)或Ctrl + v(块选择)。
  • 替换模式(Replace Mode)

    • 这个模式允许你替换光标所在位置的字符。进入这个模式的方法是在正常模式下按R,然后每输入一个字符,就会替换掉光标下的字符。
  • 执行模式(Ex Mode)

    • 类似于末行模式,但用于执行更复杂的编辑命令。可以在正常模式下通过输入Q进入。
模式的转换

掌握Vim的关键之一是理解这些模式之间是如何相互转换的。例如,从正常模式进入插入模式可以通过多种方式,而从插入模式回到正常模式则通常是通过按ESC键。

理解并熟练运用这些模式及其转换,是提高在Vim中编辑效率的关键。Vim之所以强大,就在于它能够让用户通过不同的模式和命令组合来实现高效的文本编辑。

2:输入i进入插入模式:

 

此时可以正常输入文本,要想退出我们需要先输入ESC进入命令模式后输入shift+; (也就是:)进入底行模式 然后输入wq即可退出

 Vim的基本操作

掌握Vim的操作几乎等同于掌握了一种新语言。以下是一些基本而重要的操作,它们构成了使用Vim时的基础。

文件操作
  • 打开文件

    • 使用命令vim 文件名来打开或创建文件。如果文件不存在,Vim将会创建一个新文件并等待你的输入。
  • 保存文件

    • 在末行模式下,输入:w保存你的更改。如果你想另存为一个新文件,可以使用:w 新文件名
  • 关闭Vim

    • 要退出Vim并保存更改,可以在末行模式下输入:wq或者:x。如果想退出但不保存更改,可以使用:q!
编辑操作
  • 插入文本

    • 如之前提到的,有多种方式进入插入模式以编辑文本,包括i(光标前插入)、I(行首插入)、a(光标后插入)、A(行尾插入)等。
  • 删除文本

    • 在正常模式下,x可用于删除光标下的字符。dd用于删除整行。如果想删除多行,可以使用d加上数字,例如2dd删除两行。
  • 复制和粘贴

    • yy是复制当前行,p是粘贴到光标后。如果想复制多行,可以使用y加上数字,例如2yy复制两行。
  • 撤销和重做

    • u用于撤销最近的操作,Ctrl + r用于重做被撤销的操作。
移动光标
  • 基本移动h(左移)、j(下移)、k(上移)、l(右移)。
  • 快速移动
    • 0移动到行首,$移动到行尾。
    • w跳到下一个词的开头,b跳回到上一个词的开头。
    • G跳到文件的末尾,gg跳到文件的开头。
    • {}可以在段落之间跳转。
查找与替换
  • 查找文本

    • 在正常模式下,使用/要查找的文本然后按下Enter进行查找。按n查找下一个匹配项,N查找前一个匹配项。
  • 替换文本

    • 在末行模式下,使用:s/原文本/新文本来替换当前行的第一个匹配项。如果想替换所有匹配项,可以使用:s/原文本/新文本/g。要在全文中进行替换,使用:%s/原文本/新文本/g
使用窗口和标签页
  • 分屏

    • :split:sp来水平分割窗口。
    • :vsplit:vsp来垂直分割窗口。
  • 在窗口间切换

    • 使用Ctrl + w加上方向键在窗口间切换。
  • 使用标签页

    • :tabnew打开一个新的标签页,:tabnext:tabprev在标签页之间切换。

挑战话题:如何批量化注释和去注释

首先ctrl + v  进入视图模式

 然后我们可以批量化用键选中,也可以n+shift+g

然后输入shinft+i进入插入模式

 

 最关键一步,此时输入双斜杠 并按两下esc即可批量注释

去注释同理,ctrl+v   选中两列 按L  d即可删除

Vim中的批量化注释

vim配置

vim不是简单的执行可执行程序,也会读取若干配置文件,比如 .vimrc

vim也只是一个执行文件

没有我们就自己创建一个 那么我们就可以将对应配置项写入.vimrc

具体一键配置可以网上搜索,配置好后我们直接使用即可

 

 

通过本篇博客,我们一起踏上了探索Vim这款强大文本编辑器的旅程。从Vim的基本概念、基本操作,到如何批量化注释与去注释的高级技巧,我们一步步深入了解了Vim的强大功能。Vim不仅仅是一个文本编辑器,它是一个提高你编程效率、优化你编码工作流程的强大工具。

Vim之所以独特,是因为它提供了一种与众不同的文本编辑哲学。通过学习Vim的多种模式和快捷键,我们可以实现快速编辑、高效编码的目标。尽管Vim有着陡峭的学习曲线,但一旦你熟练掌握了它的基本及高级操作,你会发现自己能够更快、更高效地完成工作。

记住,熟练使用Vim需要时间和实践。不要因为一开始的挑战而放弃。随着你不断的练习和探索,你会逐渐发现Vim提供的便捷和强大功能。让Vim成为你编程旅程中的忠实伙伴吧!

希望这篇博客能够激发你深入学习Vim的热情

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450852.html

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

相关文章

【C++】拷贝构造函数和赋值运算符重载详解

目录 拷贝构造函数 概念 特征 赋值运算符重载 运算符重载 赋值运算符重载 ​编辑前置和后置重载 ⭐拷贝构造函数 ⭐概念 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存 在的类类型对象创建新…

不同核函数高斯过程回归算法与不同因子输入情况下对长江流域蒸散发量应用研究_杨梓涵_2023

不同核函数高斯过程回归算法与不同因子输入情况下对长江流域蒸散发量应用研究_杨梓涵_2023 摘要关键词 0 引言1 材料与方法1.1 数据资料1.2 参考作物腾发量( ET0 ) 计算方法1.2.1 FAO-56 Penman-Monteith 模型1.2.2 Hargreaves-Samani 模型1.…

ctfshow web-76

开启环境: c?><?php $anew DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString(). );} exit(0); ?> cinclude("/flagc.txt");exit(); c?><?php $anew DirectoryIterator("glob:///*"); foreach($a…

WebAssembly002 FFmpegWasmLocalServer项目

项目介绍 https://github.com/incubated-geek-cc/FFmpegWasmLocalServer.git可将音频或视频文件转换为其他可选的多媒体格式&#xff0c;并导出转码的结果 $ bash run.sh FFmpeg App is listening on port 3000!运行效果 相关依赖 Error: Cannot find module ‘express’ …

政安晨:示例演绎Python的函数与获取帮助的方法

调用函数和定义我们自己的函数&#xff0c;并使用Python内置的文档&#xff0c;是成为一位Pythoner的开始。 通过我的上篇文章&#xff0c;相信您已经看过并使用了print和abs等函数。但是Python还有许多其他函数&#xff0c;并且定义自己的函数是Python编程的重要部分。 在本…

花瓣网美女图片爬取

爬虫基础案例01 花瓣网美女图片 网站url&#xff1a;https://huaban.com 图片爬取 import requests import json import os res requests.get(url "https://api.huaban.com/search/file?text%E7%BE%8E%E5%A5%B3&sortall&limit40&page1&positionsear…

FreeRTOS动态 / 静态创建和删除任务

本篇文章记录我学习FreeRTOS的动态 / 静态创建和删除任务的知识。希望我的分享能给你带来不一样的收获&#xff01;文中涉及FreeRTOS创建和删除任务的API函数&#xff0c;建议读者参考以下文章&#xff1a; FreeRTOS任务相关的API函数-CSDN博客 目录 ​编辑 一、FreeRTOS动态创…

离线数仓-数据治理

目录 一、前言 1.1 数据治理概念 1.2 数据治理目标 1.3 数据治理要解决的问题 1.3.1 合规性 元数据合规性 数据质量合规性 数据安全合规性 1.3.2 成本 存储资源成本 计算资源成本 二、数据仓库发展阶段 2.1 初始期 2.2 扩张期 2.3 缓慢发展期 2.4 变革期 三、…

前后端数据校验

前端校验内容 前端开发中的必要校验&#xff0c;可以保证用户输入的数据的准确性、合法性和安全性。同时&#xff0c;这些校验也有助于提供良好的用户体验和防止不必要的错误提交到后端。 1、必填字段校验&#xff1a; 对于必填的字段&#xff0c;需确保用户输入了有效的数据…

Node.js版本管理工具之_Volta

Node.js包管理工具之_Volta 文章目录 Node.js包管理工具之_Volta1. 官网1. 官网介绍2. 特点1. 快( Fast)2. 可靠(Reliable)3. 普遍( Universal) 2. 下载与安装1. 下载2. 安装3. 查看 3. 使用1. 查看已安装的工具包2. 安装指定的node版本3.切换项目中使用的版本 1. 官网 1. 官网…

02-Java抽象工厂模式 ( Abstract Factory Pattern )

抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是围绕一个超级工厂创建其他工厂 该超级工厂又称为其他工厂的工厂 在抽象工厂模式中&#xff0c;接口是负责创建一个相关对象的工厂&#xff0c;不需要显式指定它们的类 每个生成的工厂都能按照工厂模式提供对象 …

Redis核心技术与实战【学习笔记】 - 19.Pika:基于SSD实现大容量“Redis”

前言 随着业务数据的增加&#xff08;比如电商业务中&#xff0c;随着用户规模和商品数量的增加&#xff09;&#xff0c;就需要 Redis 能保存更多的数据。你可能会想到使用 Redis 切片集群&#xff0c;把数据分散保存到不同的实例上。但是这样做的话&#xff0c;如果要保存的…