一篇文章学会Vim

news2024/10/5 22:26:47

一篇文章学会Vim

声明:以下内容均为我个人的理解,如果发现错误或者疑问可以联系我共同探讨

简介

Vim是一个高度可定制的终端文本编辑器,它可以很方便的创建和修改任何类型的文本。作为vi的升级版,有许多新的特性(以下列出的特性为比较常用的,详细特性可以查看help vi_diff.):

  • 无限撤销:可以无限制的撤销
  • 可移植性:Vi仅在Unix上可用,Vim还可以在Windows、Macintosh,Amiga,OS / 2,VMS,QNX和其他系统上运行。
  • 语法高亮:当用Vim进行编程的时候,他可以根据正在编辑的文件类型,使其以内容以不同的颜色或样式突出显示。Vim捆绑了数百种语法突出显示规则集。
  • 图形用户界面:Vim在控制台上运行良好,也可以在许多GUI中本地运行,包括Mac OS和Windows。它还可以操作剪贴板。
  • vi兼容模式:紧要关头,您可以强制Vim像vi一样。使Vim与vi不兼容的所有改进和错误修复都已关闭,您将获得100%与vi兼容的编辑器。

Vim作为许多程序员最喜欢的文本编辑器之一,它具有像:多级撤销、代码补全、支持数百种编程语言和文本格式、强大的搜索和替换功能等。

安装与卸载

安装

Windows

先把安装包下载下来,然后根据提示安装。

Unix

在Github上下载源文件安装

Mac

在github下载,根据文件类型安装。

详细安装教程

卸载

Unix or Mac
源代码安装

在控制台输入

 make uninstall
软件包管理器安装

根据不同软件包管理器的卸载命令卸载

Windows

找到安装目录下的 “uninstall-gui” 程序进行卸载

教程

vimtutor

Vim自带教程vimtutor是你从零开始学习Vim最好的老师,教程包含了日常所需要的各个命令和功能,还有实操教学。如果你的系统语言是中文,那么打开vimtutor时默认是中文版的教程,中文版教程由梁昌泰 先生进行译制。在命令行中输入vimtutor,就可以打开该教程,学习完该教程大约需要30分钟左右。

有一款游戏Vim Adventure,可以作为学习Vim的一种放松。

Vimtutor章节小结
第一讲
  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。

    ​ h (左移) j (下行) k (上行) l (右移)

  2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>

  3. 欲退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。或者输入 :wq <回车> 保存改动。

  4. 在正常模式下删除光标所在位置的字符,请按: x

  5. 欲插入或添加文本,请输入:

    ​ i 输入欲插入文本 在光标前插入文本

    ​ A 输入欲添加文本 在一行后添加文本

特别提示:按下 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。

第二讲
  1. 欲从当前光标删除至下一个单词,请输入:dw

  2. 欲从当前光标删除至当前行末尾,请输入:d$

  3. 欲删除整行,请输入:dd

  4. 欲重复一个动作,请在它前面加上一个数字:2w

  5. 在正常模式下修改命令的格式是:

    operator  [number]  motion
    

    其中:

    ​ operator - 操作符,代表要做的事情,比如 d 代表删除

    ​ [number] - 可以附加的数字,代表动作重复的次数

    ​ motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),$ 代表行末等等。

  6. 欲移动光标到行首,请按数字0键:0

  7. 欲撤消以前的操作,请输入:u (小写的u),欲撤消在一行中所做的改动,请输入:U (大写的U),欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R

第三讲
  1. 要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。

  2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字符即可。

  3. 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当前光标到行末的内容。

  4. 更改类命令的格式是:

    c [number] motion

第四讲
  1. CTRL-G 用于显示当前光标所在位置和文件状态信息。 G 用于将光标跳转至文件最后一行。先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。gg 用于将光标跳转至文件第一行。

  2. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。

  3. 如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。

  4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 😒/old/new

    在一行内替换所有的字符串 old 为新的字符串 new,请输入 😒/old/new/g

    在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g

    在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g

    进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc

第五讲
  1. :!command 用于执行一个外部命令 command。

    请看一些实际例子:

    (MS-DOS)     (Unix)
    
    :!dir      :!ls      # 用于显示当前目录的内容。
    
    :!del FILENAME  :!rm FILENAME  # 用于删除名为 FILENAME 的文件。
    
  2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。

  3. v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件FILENAME 中。

  4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。

  5. :r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。

第六讲
  1. 输入小写的 o 可以在光标下方打开新的一行并进入插入模式。输入大写的 O 可以在光标上方打开新的一行。

  2. 输入小写的 a 可以在光标所在位置之后插入文本。输入大写的 A 可以在光标所在行的行末之后插入文本。

  3. e 命令可以使光标移动到单词末尾。

  4. 操作符 y 复制文本,p 粘贴先前复制的文本。

  5. 输入大写的 R 将进入替换模式,直至按 键回到正常模式。

  6. 输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:

    ‘ic’ ‘ignorecase’ 查找时忽略字母大小写

    ‘is’ ‘incsearch’ 查找短语时显示部分匹配

    ‘hls’ ‘hlsearch’ 高亮显示所有的匹配短语

    选项名可以用完整版本,也可以用缩略版本。

  7. 在选项前加上 no 可以关闭选项: :set noic

第七讲
  1. 输入 :help 或者按 键或 键可以打开帮助窗口。

  2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。

  3. 输入 CTRL-W CTRL-W 可以使您在窗口之间跳转。

  4. 输入 :q 以关闭帮助窗口

  5. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。

  6. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。

    按 可以使用一个补全。

帮助

在控制台中输入vim就可以查看Vim的相关信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

根据图片所示我们可以知道,当前VIM的版本为8.0.1365,想退出需要输入":q",查看在线帮助文档可以输入":help",查看版本信息可以输入":help version8"

在英文模式下输入":help"回车后便可以看到

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里有详细的Vim教程,教你玩转Vim。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# 使用Microsoft消息队列(MSMQ)

写在前面 Microsoft Message Queuing (MSMQ) 是在多个不同的应用之间实现相互通信的一种异步传输模式&#xff0c;相互通信的应用可以分布于同一台机器上&#xff0c;也可以分布于相连的网络空间中的任一位置。 使用消息队列可以实现异步通讯&#xff0c;无需关心接收端是否在…

CentOs搭建Kafka集群

Centos7搭建Kafka集群 一、集群规划二、环境准备三、安装kafka集群1、下载kafka安装包2、解压3、配置环境变量4、编辑配置文件①修改broker.id②配置kafka运行日志路径③配置Zookeeper集群地址 5、启动集群6、测试kafka①、创建topic②、查看当前服务器中的所有topic③、生产者…

算法导论复习——CHP16 贪心算法

定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S&#xff0c;在已知每个活动开始时间和结束时间的条件下&#xff0c;从中选出最多可兼容活动的子集合&#xff0c;称为最大兼容活动集合。 不失一般性&a…

Ps 滤镜:极坐标

Ps菜单&#xff1a;滤镜/扭曲/极坐标 Filter/Distort/Polar Coordinates 极坐标 Polar Coordinates滤镜可用来进行平面坐标&#xff08;笛卡尔坐标&#xff09;和极坐标之间的相互转换&#xff0c;从而将矩形图像转换为圆形图像&#xff0c;或者将圆形图像转换为矩形图像。 平面…

安装extiverse/mercury时报错

问题描述 作者在安装 Flarum 的插件 extiverse/mercury 时报错&#xff0c;内容如下图所示 解决方案 ⚠警告&#xff1a;请备份所有数据再进行接下来的操作&#xff0c;此操作可能会导致网站不可用&#xff01; 报错原因&#xff1a;主要问题是在安装过程中解决依赖关系。具…

MySQL之CRUD、常见函数及union查询

一、CRUD 1.1 SELECT&#xff08;查询&#xff09; 概念&#xff1a; 查询数据是指从数据库中根据需求&#xff0c;使用不同的查询方式来获取不同的数据&#xff0c;是使用频率最高、最重要的操作。 语法&#xff1a; SELECT {* | <字段列名>} [FROM<表 1>&#…

UE4 4.21使用编辑器蓝图EditorBlueprint方法

在UE4 4.21中&#xff0c;编辑器蓝图&#xff08;Editor Blueprint&#xff09;是一个强大的工具&#xff0c;允许开发者扩展和自定义Unreal编辑器的功能。通过编辑器蓝图&#xff0c;我们可以创建自定义的工具和功能&#xff0c;以优化开发流程。 本教程将指导您如何在UE4 4.…

力扣2397.被列覆盖的最多行数,二进制枚举

借用评论区一位哥们的说法就是&#xff1a;假设有一个m*n的草坪&#xff0c;每块草坪分为有僵尸&#xff08;1&#xff09;和每僵尸&#xff08;0&#xff09;的情况&#xff0c;现在有numslect个竖排生效的火爆辣椒&#xff0c;问在哪几竖排使用火爆辣椒可以保住最多的小推车 …

力扣题:字符串变换-1.5

力扣题-1.5 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;482. 密钥格式化 解题思想&#xff1a;首先先将破折号去除,并将所有字母转换为大写,然后计算第一组的长度,进行结果字符串的拼接,如果第一组的长度为0,则需要删除开头的’-符号 class S…

【 Rosetta:多目标抗体设计全攻略】

Rosetta&#xff0c;一个在抗体设计界具有划时代意义的软件&#xff0c;被誉为抗体设计界的封神之作。它由美国华盛顿大学开发&#xff0c;旨在通过计算机模拟技术&#xff0c;快速、准确地预测抗体的结构和性质&#xff0c;为抗体药物研发提供了强有力的支持。 在抗体设计领域…

21. Mysql 事件或定时任务,解放双手,轻松实现自动化

文章目录 概念常见操作事件调度器操作查看事件创建事件删除事件启动与关闭事件 精选示例构造实时数据定时统计数据 总结参考资料 概念 Mysql 事件是一种在特定时间点自动执行的数据库操作&#xff0c;也可以称呼为定时任务&#xff0c;它可以自动执行更新数据、插入数据、删除…

网页在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式

随着互联网技术的不断发展&#xff0c;越来越多的企业开始采用在线办公模式&#xff0c;微软Office Word 是最好用的文档编辑工具&#xff0c;然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的&#xff0c;如果可以实现Web在线预览编辑Of…

[PyTorch][chapter 9][李宏毅深度学习][CNN]

前言&#xff1a; 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;是一种深度学习模型或类似于人工神经网络的多层感知器&#xff0c;常用来分析视觉图像。卷积神经网络的创始人是着名的计算机科学家Yann LeCun&#xff0c;目前在Facebook工作&#xff0c;…

计算机网络实验(六):三层交换机实现VLAN间路由

一、实验名称:三层交换机实现VLAN间路由 二、实验原理 2.1. VLAN基本配置 在交换网络中,为了实现对物理网络的逻辑划分,引入了VLAN(虚拟局域网)的概念。VLAN通过将不同的设备划分到不同的虚拟网络中,实现了逻辑隔离。基本配置包括在交换机上创建VLAN、将端口划分到相应…

实验笔记之——Linux实现COLMAP

之前博客跑instant-NGP的时候&#xff0c;除了用官方的数据集&#xff0c;用自己的数据则是通过手机采集&#xff0c;同时获得pose与image。但是这种获取的方式对于3D gaussian而言&#xff0c;并不支持对应的数据格式&#xff0c;为此采用COLMAP来根据image获取pose&#xff0…

六、基于Flask、Flasgger、marshmallow的开发调试

基于Flask、Flasgger、marshmallow的开发调试 问题描述调试方法一调试方法二调试方法三 问题描述 现在有一个传入传出为json格式文件的&#xff0c;Flask-restful开发的程序&#xff0c;需要解决如何调试的问题。 #!/usr/bin/python3 # -*- coding: utf-8 -*- # Project :…

知识图谱 vs GPT

简介&#xff1a; 当我们谈论知识图谱时&#xff0c;我们指的是一种结构化的知识表示形式&#xff0c;是一种描述真实世界中事物及其关系的语义模型&#xff0c;用于描述实体之间的关系。它通过将知识组织成图形结构&#xff0c;提供了一种更全面、准确和智能的信息处理方式。知…

DVenom:一款功能强大的Shellcode加密封装和加载工具

关于DVenom DVenom是一款功能强大的Shellcode加密封装和加载工具&#xff0c;该工具专为红队研究人员设计&#xff0c;可以帮助红队成员通过对Shellcode执行加密封装和加载实现反病毒产品的安全检测绕过。 功能介绍 1、支持绕过某些热门反病毒产品&#xff1b; 2、提供了多种…

SwiftUI之深入解析如何使用新地图框架MapKit

一、前言 一旦将 App 目标更新到 iOS 17&#xff0c;Xcode 会将任何使用旧的 Map 初始化器的用法标记为已弃用&#xff1a; 会有警告提示&#xff1a;init coordinate region 已在 iOS 17 中弃用。请改用带有 MapContentBuilder 参数的地图初始化器。在 iOS 17 中&#xff0c;…

Unity 使用 Plastic 同步后,正常工程出现错误

class Newtonsoft.Json.Linq.JToken e CS0433:类型"JToken"同时存在于"Newtonsoft.Json.Net20,Version3.5.0.0,Cultureneutral,,PublicKeyToken30ad4fe6b2a6aeed"和"Newtonsoft.Json, Version12.0.0.0,Cultureneutral,PublicKeyToken30ad4fe6b2a6aeed…