【Linux/Vim】Vim使用教程及速查手册

目录

一.Vim介绍

1.Vim是什么

2.Vim的安装

(1)Vim默认安装的系统

(2)Vim的安装方法

(3)检查Vim是否安装成功

3.Vim,Vi,gvim的区别

4./.vimrc配置文件介绍及使用方法

(1).vimrc 的介绍

(2).vimrc 的使用方法

二.Vim使用方法

1.Vim的模式

(1)Vim一般命令模式常用操作

(2)Vim编辑模式常用操作

(3)Vim命令行模式常用操作

2.Vim自动补全

3.Vim终端分屏命令

4.Vim的高亮功能

总结


一.Vim介绍


1.Vim是什么

Vim是一个高度可配置的文本编辑器,它起源于1976年的Vi编辑器。

Vim代表"Vi IMproved",意味着它是Vi的改进版本。Vim以其强大的功能和灵活性而闻名,是许多程序员和系统管理员的首选编辑器。


2.Vim的安装

(1)Vim默认安装的系统

Vim是否默认安装取决于操作系统和发行版。以下是一些常见的情况:

1. 大多数Linux发行版:Vim或其基础版本Vi通常作为标准系统组件预装在大多数Linux发行版上。这是因为Vim是一个功能强大且广泛使用的文本编辑器,适合系统管理员和开发者。

2. macOS:macOS系统默认安装了Vi,但Vim可以通过包管理器如Homebrew安装,命令为 brew install vim 。

3. Windows:Windows操作系统默认不安装Vim。用户需要从Vim的官方网站下载安装程序或使用包管理工具如Chocolatey来安装。

4. Unix和类Unix系统:许多Unix和类Unix系统也会默认安装Vi或Vim。

(2)Vim的安装方法

  • 在linux系统上安装Vim:

使用命令 sudo apt install vim 进行安装 。
如果提示 vim-common 版本过低,可以使用 sudo apt purge vim-common 命令删除,然后再次使用 sudo apt install vim 安装 。

  • 在Windows上安装Vim:

可以从Vim的官方网站下载Windows版的安装程序,或使用包管理工具如Chocolatey进行安装,使用命令 choco install vim  。

(3)检查Vim是否安装成功

如果你不确定Vim是否已经安装在你的系统上,可以通过打开终端或命令提示符并输入 vim --version 或 vi --version 来检查。如果Vim或Vi已经安装,这个命令将显示版本信息;如果没有安装,系统将提示找不到该命令。


3.Vim,Vi,gvim的区别

Vim、Vi和gvim是文本编辑器的不同版本或变体,它们之间有一些关键的区别:

(1) Vi

Vi是一个简单的文本编辑器,最初由Bill Joy在1970年代末为UNIX系统编写。
它是命令行界面的编辑器,功能相对基础,但非常快速和轻量级。
Vi是许多操作系统的默认编辑器,因为它的资源占用小,启动速度快。

(2) Vim(Vi IMproved)

Vim是Vi的增强版,由Bram Moolenaar在1991年左右开发。
它包含了Vi的所有功能,并且增加了很多新特性,如语法高亮、标签页、窗口分割、正则表达式支持、宏录制、插件系统等。
Vim在用户界面和用户体验上做了大量改进,使其更加强大和灵活。

(3) gvim

gvim是Vim的图形用户界面(GUI)版本,它提供了一个窗口化的编辑环境。
gvim通常包含菜单栏、工具栏和滚动条等图形界面元素,使得Vim的使用更加直观和用户友好。
gvim的功能与命令行版的Vim相同,但提供了额外的图形界面特性,如拖放文件、右键菜单等。

总结来说,Vi是一个基础的文本编辑器,而Vim是Vi的增强版,提供了更多的特性和改进。gvim是Vim的图形用户界面版本,提供了更友好的用户界面。尽管它们在功能上有所不同,但Vim和gvim都保留了Vi的核心编辑功能,使得用户可以快速地进行文本编辑和处理。


4./.vimrc配置文件介绍及使用方法

 .vimrc 是Vim编辑器的配置文件,它允许用户自定义Vim的行为和外观。这个文件通常位于用户的主目录下,例如在Linux和macOS中通常位于 ~/.vimrc ,在Windows中可能位于 %USERPROFILE%\_vimrc 。

(1).vimrc 的介绍

自动命令: 

.vimrc 可以包含自动命令,这些命令在Vim启动时自动执行。

设置选项:

用户可以通过 .vimrc 设置Vim的各种选项,如显示行号、启用语法高亮、配置缩进等。

键位映射: 

.vimrc 允许用户自定义键位映射,创建快捷键或改变现有快捷键。

插件管理:

用户可以在 .vimrc 中配置插件,包括安装、更新和卸载插件。

颜色方案:

可以设置Vim的颜色方案,改变编辑器的视觉样式。

(2).vimrc 的使用方法

1. 创建或编辑 .vimrc :

如果 .vimrc 文件不存在,可以在主目录下创建一个。
可以使用Vim或其他文本编辑器编辑 .vimrc 。

2. 基本设置示例:

" 启用语法高亮
syntax on
" 显示行号
set number
" 设置Tab键和空格的宽度
set tabstop=4
set shiftwidth=4
" 将Tab转换为相应数量的空格
set expandtab
" 自动缩进
set autoindent
" 智能缩进
set smartindent

3. 保存并应用 .vimrc :

保存对 .vimrc 的更改后,需要重新启动Vim或执行 :source ~/.vimrc 命令来应用更改。

4. 使用Vim命令编辑 .vimrc :

打开Vim时,可以通过命令 vim ~/.vimrc 直接编辑 .vimrc 文件。

5. 插件管理:

使用插件管理器(如vim-plug或Vundle)可以在 .vimrc 中添加插件管理代码,然后通过Vim命令安装或更新插件。

6. 使用 .vimrc 进行模式设置:

可以为不同的文件类型设置不同的配置,例如为Python文件启用特定的插件或设置。

7. 继承全局配置:

用户的 .vimrc 可以继承系统级别的配置文件(通常位于 /etc/vim/vimrc ),通过在用户 .vimrc 中添加 source /etc/vim/vimrc 。

8. 备份 .vimrc :

定期备份 .vimrc 是一个好习惯,以防配置错误导致问题。

.vimrc 是Vim用户个性化编辑体验的关键,通过合理配置,可以极大提高编辑效率和舒适度。


二.Vim使用方法


1.Vim的模式

Vim常用的三种模式介绍:

一般命令模式:在终端输入vim filename命令后,进入vim编辑器界面;

编辑模式:在进入vim后,按下i,o,a等进入编辑模式,使用esc可以退出该模式;

命令行模式:在进入vim后,按下:后输入命令;

(1)Vim一般命令模式常用操作

移动光标常用方法
光标向右移动本行的n个字符n+<space>
光标移动本行最前面或最后面Home和End键
光标移动到某一行/首行/末行nG/1G (gg)/G
光标向下移动n行n+<enter>
查找和替换
向光标之下查询关键字,查到后会高亮全部,使用n向后移动一个,N向前移动一个/keyword
从第一行到最后一行查找word1,然后替换成
word2,并在替换前提示用户确认。
:1,Ss/word1/word2/gc
删除(剪切)
删除单个字符x=del(向后删除)与X=backspace(向
前删除)
删除(剪切)光标所在一整行dd
删除(剪切)光标所在向下n行ndd
删除(剪切)光标所在到第一行所有数据d1G
删除(剪切)光标所在到最后一行所有数据dG
删除(剪切)光标所在处,到该行最后一个字符d$
删除(剪切)光标所在到该行最前面一个字符d0(数字0)
复制
复制光标所在一整行yy
其他操作同删除类似nyy, y1G, yG, y0, y$
粘贴
粘贴已复制或剪切的内容p粘贴到光标下一行,P粘贴到光标上一行
撤销、重做
撤销上一步,相当于ctrl+zu
重做上一步,相当于ctrl+yctrl+r
重复上一个命令操作.(小数点)
使用可视区块操作区域性数据
字符选择,会将光标经过的地方反白v(使用方向键来多选)
行选择,会将光标经过的地方反白V
可视选择,可以用矩形自由选择区域数据Ctrl+v
将反白的地方复制y(先进行v操作,然后直接按y)
将反白的地方删除掉d
将复制的内容粘贴在光标处p

(2)Vim编辑模式常用操作

左下角会出现_INSERT_和_REPLACE_
按下esc退出该模式

功能命令
从目前光标所在处插入i
在目前所在行的第一个非空格字符处开始插入I
从目前光标所在的下一个字符处开始插入a
从光标所在行的最后一个字符处开始插入A
在目前光标所在处下一行处插入新的一行o
在目前光标所在处上一行处插入新的一行O
替换光标所在的那个字符一次,按下r在按要替换的字符r
会一直替换光标所在的文字,直到按下Esc(会出现_REPLACE_)R

(3)Vim命令行模式常用操作

在左下角输出:

功能命令
:w 和:w!写入保存、强制写入保存
:q 和:q!退出vi编辑器、强制退出ⅵ编辑器
:wq 和:wq!保存后退出、强制保存后退出
:w filename另存为filename
:set nu显示行号
:set nonu取消显示行号

2.Vim自动补全

功能                命令
补全关键字,补充规则和当前缓冲区列表一致。ctrl+n
使用自动补全列表中的上一项内容ctrl+p
还原最初的输入项ctrl+e
和ctrl+n一样ctrl+x然后ctrl+n
补全整行ctrl+x然后ctrl+l
补全文件名ctrl+x然后ctrl+f
根据具体编程语言生成补全ctrl+x然后ctrl+o
从字典文件中获取补全项ctrl+x然后ctrl+k
从包含文件中获取补全项,例如c+的#include或python中的importctrl+x然后ctrl+i
从外部标签中获取补全项ctagsctrl+x然后ctrl+]

3.Vim终端分屏命令

有时候需要同时打开两个文档分屏查看,方便对比和拷贝剪切等功能,vim中可以使用vsp和sp命令实现该功能

sp(上下分屏)
:sp filename上下分屏,不加 filename就是再打开同一个文件。
Ctrl+w加↑或↓切换上下屏幕
Ctrl+w+q关闭sp分屏
vsp(左右分屏)
:vsp filename左右分屏,不加filename就是再打开同一个文件
Ctrl+w加←或→切换左右屏幕
Ctrl+w+q关闭vsp分屏
:set mouse=a回车使鼠标能在屏幕间自由切换

4.Vim的高亮功能

Vim的高亮功能是指编辑器能够根据文件类型自动或手动设置不同的颜色和样式,以区分不同的语法元素,比如关键字、注释、字符串等。这使得代码更易于阅读和编辑。以下是Vim高亮功能的介绍和使用方法:

一般用于让特殊符号高亮

  • 高亮tab符号:\/t
  • 高亮空格符号:\/s

也有其他语法高亮和局部高亮功能

自动语法高亮
1. 启用语法高亮: 在 .vimrc 配置文件中添加以下行来启用语法高亮:

syntax on

这将允许Vim根据文件类型自动设置高亮。

2. 手动触发语法高亮: 如果 syntax on 没有在 .vimrc 中设置,你可以在Vim中手动执行以下命令来启用语法高亮:

:syntax on

语法文件高亮

1. 语法文件(syntax files): Vim使用特定的语法文件来定义不同编程语言的语法规则。这些文件通常位于 /usr/share/vim/vimfiles/syntax/ (Linux)或 $VIMRUNTIME/syntax/ (其他系统)目录下。

2. 自定义语法文件: 用户可以创建或修改语法文件来自定义高亮规则。

颜色方案

1. 选择颜色方案: Vim允许用户选择不同的颜色方案来改变编辑器的颜色和样式。可以在 .vimrc 中设置颜色方案,例如:

colorscheme desert

这将应用名为 desert 的颜色方案。

2. 创建自定义颜色方案: 用户可以创建自己的颜色方案文件,并在 .vimrc 中指定使用它。

高亮组

1. 高亮组(highlight groups): Vim使用高亮组来定义不同语法元素的显示样式。每个高亮组可以设置前景色、背景色、字体样式等。

2. 自定义高亮组: 用户可以在 .vimrc 中自定义高亮组,例如:

highlight Keyword ctermfg=52 cterm=bold

这将改变关键字的前景色为青绿色,并加粗显示。

局部高亮

1. 局部高亮: Vim允许在打开的缓冲区中临时修改高亮设置,这些设置只影响当前文件。

2. 使用 :highlight 命令: 在命令模式下使用 :highlight 命令来设置局部高亮,例如:

:highlight LocalKeyword ctermfg=red

这将只改变当前文件中关键字的前景色为红色。

高亮搜索结果

1. 搜索高亮: Vim可以高亮显示搜索结果,使得找到的文本更加醒目。

2. 清除搜索高亮: 使用 :noh 或 :nohlsearch 命令来清除搜索结果的高亮。

通过合理配置和使用Vim的高亮功能,可以显著提高代码的可读性和编辑效率。自定义高亮不仅可以根据个人喜好调整编辑器的外观,还可以帮助区分不同的代码元素,减少阅读错误。
 


总结

以上技巧只是Vim提供的一小部分功能。Vim的强大之处在于其高度可定制性,你可以根据自己的需求编写 .vimrc 配置文件,安装插件,甚至编写脚本来扩展其功能。

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

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

相关文章

【技术】JS的ES6有哪些知识点

1.let-const块级作用域的补充 const names["abc","cba","nba"];for(let i0;i<names.length;i){ //* 这个数组的元素有三个&#xff0c;所以会形成3个块级作用域console.log(names[i]); }以上for遍历内部的实现是以下这样的&#xff1a; 因…

数据库-MySQL 实战项目——书店图书进销存管理系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴&#xff0c;博主提供了源码、数据和一些查询语句&#xff0c;供大家学习和参考&#xff0c;代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具&#xff1a;navicat&#xff1b; 数据库&#xff1a;MySq…

数据结构之线性表的实现

顺序存储实现&#xff08;数组&#xff09; 顺序存储的线性表通常使用数组来实现。在数组中&#xff0c;元素在内存中是连续存放的&#xff0c;通过数组下标可以访问任意位置的元素。 链式存储实现&#xff08;链表&#xff09; 链式存储的线性表使用链表来实现。链表中的元…

C++ --> 类和对象(三)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言 前面已经对类和对象有一定的了解&#xff0c;接下来再次深入的了解一下。 一、深入理解构造函数 构造函数体赋值&#xff1a; 虽然上述构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能…

[笔记] SEW的振动分析工具DUV40A

1.便携式振动分析仪 DUV40A 文档编号&#xff1a;26871998/EN SEW是一家国际化的大型的机械设备供应商。产品线涵盖电机&#xff0c;减速机&#xff0c;变频器等全系列动力设备。DUV40A是他自己设计的一款振动分析工具。 我们先看一下它的软硬件参数&#xff1a; 内置两路传…

防火墙综合实验之NAT和智能选路

目录 前言&#xff1a; 一、实验题目 二、实验操作 需求一 需求二 需求三 需求四、需求五 需求六 需求七 ​编辑 需求八 需求九 需求十 需求十一 三、需求测试 前言&#xff1a; 本篇文章是延续上一篇文章&#xff0c;简单来说就是防火墙实验的完善和延续&#…

CV07_深度学习模块之间的缝合教学(2)--维度转换

教学&#xff08;1&#xff09;&#xff1a;链接 1.1 预备知识 问题&#xff1a;假如说我们使用的模型张量是三维的&#xff0c;但是我们要缝合的模块是四维的&#xff0c;应该怎么办&#xff1f; 方法&#xff1a;pytorch中常用的函数&#xff1a;(1)view函数&#xff08;2…

新华三H3CNE网络工程师认证—DHCP使用场景

网络服务与应用当中的技术有DHCP、Telnet和FTP。DHCP是计算机当中常用来获取地址的。比如日常使用中&#xff0c;计算机并没有接入IP&#xff0c;IP通过DHCP技术从上端服务去获取的。手动配置网络参数会出现多种问题。 文章目录 一、手动配置网络参数的问题1、参数多、理解难2、…

【零基础】学JS之APIS第四天

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

喰星云·数字化餐饮服务系统 多处 SQL注入漏洞复现

0x01 产品简介 喰星云数字化餐饮服务系统是一款专为餐饮企业设计的综合性管理软件,旨在通过信息化手段提升餐饮企业的运营效率、降低运营成本,并实现数据驱动的决策管理。该系统包括供应链管理、财务管理、巡店管理、人力资源管理等多个模块,可全面覆盖餐饮企业的日常运营需…

Zynq7000系列FPGA中的DDR内存控制器

DDR内存控制器是一个高度集成的组件&#xff0c;支持多种DDR内存类型&#xff08;DDR2、DDR3、DDR3L、LPDDR2&#xff09;&#xff0c;并通过精心设计的架构来优化内存访问效率。 DDR内存控制器架构 AXI内存端口接口&#xff08;DDRI&#xff09;&#xff1a;该部分负责处理与…

C/C++指针智能指针二

C/C指针&智能指针二 文章目录 C/C指针&智能指针二1.智能指针简介2.独占智能指针unique_ptr1.基本概念2.使用方法1.初始化 3.使用技巧 3.共享智能指针1.基本概念2.使用方法3.注意事项 4.智能指针删除器1.如何使用删除器2.应用场景 5.弱智能指针weak_ptr1.基本概念2.使用…

雷赛运动控制卡编程(2)限位设定与回原方式、脉冲模式设置

一、限位开关及急停开关的设置 限位开关的设置 //设置限位开关// dmc_set_el_modeushort _cardNo0;ushort _axisNo 0;ushort _enable 1; // 正负限位使能 ushort _elLogic 0; // 正负限位 低电平 有效ushort _model 0;// 正负限位停止方式为立即停止LTDMC.dmc_set_el_m…

构建实用的NLP应用程序:重塑人类与计算机的协同工作方式

文章目录 一、NLP技术的核心价值二、构建实用NLP应用程序的关键步骤三、NLP应用程序在协同工作中的创新应用《赠ChatGPT中文范例的自然语言处理入门书》编辑推荐内容简介作者简介精彩书评目录前言/序言获取方式 在数字化时代&#xff0c;自然语言处理&#xff08;NLP&#xff0…

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况&#xff0c;请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据&#xff0c;最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…

Transformer模型:Postion Embedding实现

前言 这是对上一篇WordEmbedding的续篇PositionEmbedding。 视频链接&#xff1a;19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 上一篇链接&#xff1a;Transformer模型&#xff1a;WordEmbedding实现-CSDN博客 正文 先回顾一下原论文中对Posit…

[Windows] 号称最快免费小巧的远程桌面 AnyDesk v8.0.11单文件版

描述 对于经常在互联网上进行操作的学生&#xff0c;白领等&#xff01; 一款好用的软件总是能得心应手&#xff0c;事半功倍。 今天给大家带了一款高科技软件 虽然 QQ 拥有远程协助功能&#xff0c;但很多时候连接并不够流畅&#xff0c;而且被控电脑那方也必须要有人操作才行…

电脑关机被阻止

1. winR输入regedit进入注册表 2. 选择HKEY_USERS-》.DEFAULT-》Control Panel-》Desktop 3. 右键DeskTop新建字符串值&#xff0c;命名为AutoEndTasks&#xff0c;数值设置为1

C++中链表的底层迭代器实现

大家都知道在C的学习中迭代器是必不可少的&#xff0c;今天我们学习的是C中的链表的底层迭代器的实现&#xff0c;首先我们应该先知道链表的底层迭代器和顺序表的底层迭代器在实现上有什么区别&#xff0c;为什么顺序表的底层迭代器更加容易实现&#xff0c;而链表的底层迭代器…

不会编程怎么办?量化交易不会编程可以使用吗?

量化交易使用计算机模型程序代替人工进行交易&#xff0c;一般需要投资者自己编写程序建模&#xff0c;然后回测无误之后再进行实盘交易&#xff0c;那么不会编程的投资者能使用量化软件进行量化交易吗&#xff1f; 不会编程使用量化软件有两种方法 一种是请人代写代码&#x…