【Linux 】开发利器:深度探索 Vim 编辑器的无限可能


🔥 个人主页:大耳朵土土垚 🔥 所属专栏:Linux系统编程
这里将会不定期更新有关Linux的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉

文章目录

  • [1. vim的基本概念](#1. vim的基本概念)
  • [2. vim的基本操作](#2. vim的基本操作)
  • [3. vim正常模式命令集](#3. vim正常模式命令集)
  • [4. vim底行模式命令集](#4. vim底行模式命令集)
  • [5. vim的简单配置](#5. vim的简单配置)
  • [6. 结语](#6. 结语)

1. vim的基本概念

Vim是一款强大的文本编辑器,常用于在终端环境下编辑文本文件。Vim有多种工作模式,包括普通模式、插入模式、可视模式等12种模式。其中,我们需要掌握三种最常用的模式,分别是命令模式(Normal mode)、插入模式(Insert mode)和底行模式(last line mode)。

  • 正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode下。

  • 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

  • 底行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。

2. vim的基本操作

1)进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

bash 复制代码
vim [文件名]

有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字

如下图所示:

使用vim打开test.c文件,进入正常模式:

这时想要退出就必须输入shift+;也就是切换到底行模式,在底行输入q回车才能退出:

2)三种模式切换

  1. 【正常模式】切换至【插入模式】 :a/i/o
  • 输入a:在当前光标的后一位置进入插入模式
  • 输入i:在当前光标处进入插入模式
  • 输入o:在当前光标处新起一行进入插入模式
  1. 【插入模式】切换至【正常模式】 :Esc

    目前处于插入模式,就只能一直输入文字,要想回到正常模式可以按一下Esc键,如果想进入底行模式也只能先转回正常模式,再通过正常模式切换至底行模式。

  2. 【正常模式】切换至【底行模式】 :shift + ;

其实就是输入:

退出vim及保存文件,在底行模式下输入:

  • w (保存当前文件)
  • q(不保存直接退出vim)
  • wq (存盘并退出vim)
  • q! (不存盘强制退出vim)
  • wq!(强制保存并退出vim)
  1. 【底行模式】切换至【正常模式】 :Esc
     如果想从底行模式进入插入模式也只能先转回正常模式,再通过正常模式切换至插入模式。

三种模式切换示意图如下:

3. vim正常模式命令集

【移动光标】

1)按「h」:将光标往左移动

2)按「 j」:将光标往下移动

3)按「k」:将光标往上移动

4)按「l」:将光标往右移动

在正常模式下vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格

5)按「Shift+g」:移动到文章的最后

6)按「 $ 」:移动到光标所在行的"行尾"

7)按「^」:移动到光标所在行的"行首"

8)按「w」:光标跳到下个字的开头

9)按「e」:光标跳到下个字的字尾

10)按「b」:光标回到上个字的开头

11)按「#l」:光标移到该行的第#个位置,如:5l,56l

12)按[gg]:进入到文本开始

13)按「n+Enter」:当前光标向下移动n行

【翻页】

1)按「ctrl」+「b」:屏幕往"后"移动一页

2)按「ctrl」+「f」:屏幕往"前"移动一页

3)按「ctrl」+「u」:屏幕往"后"移动半页

4)按「ctrl」+「d」:屏幕往"前"移动半页

【删除】

1)「x」:每按一次,删除光标所在位置的一个字符

2)「#x」:例如,「6x」表示删除光标所在位置的后面(包含自己在内的)6个字符

3)「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符

4)「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符

5)「dd」:删除光标所在行

6)「#dd」:从光标所在行开始删除#行

【复制】

1)「yw」:将光标所在之处到字尾的字符复制到缓冲区中

2)「#yw」:复制#个字到缓冲区

3)「yy」:复制光标所在行到缓冲区

4)「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字

5)「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能

【替换】

1)「r」:替换光标所在处的字符

2)「R」:替换光标所到之处的字符,直到按下「ESC」键为止

【撤销】

1)「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复

2)「ctrl + r」: 撤销的恢复

【更改】

1)「cw」:更改光标所在处的字到字尾处

2)「c#w」:例如,「c3w」表示更改3个字

【大小写切换】

1)按「~」:完成光标所在位置字符的大小写切换

2)按「n~」:完成光标所在位置开始往后的n个字符的大小写切换

【跳至指定行】

1)「ctrl」+「g」列出光标所在行的行号

2)「#G」:例如,「15G」,表示移动光标至文章的第15行行首

【注释/取消注释选中行】

1)按下Ctrl+v、上下移动选中行、按下Shift+i、输入注释符号//、按下Esc即可多行注释

2)按下Ctrl+v、上下移动选中行、按下d即可取消注释

4. vim底行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

【行号设置】

1)「set nu」:显示行号

2)「set nonu」:取消行号

【跳转】

1)「#」:跳到文件中第#行

【查找字符】

1)「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止

2)「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止

在Vim中,?和/都用于查找字符。它们的区别在于:

  • 使用?:按下?后,你需要在命令行中输入你想要查找的字符(或字符串),然后按下回车键。Vim会从当前光标位置开始向上查找与输入匹配的内容。
  • 使用/:按下/后,你需要在命令行中输入你想要查找的字符(或字符串),然后按下回车键。Vim会从当前光标位置开始向下查找与输入匹配的内容。

【保存退出】

1)「w」:保存文件

2)「q」:退出vim,如果无法离开vim,可在「q」后面跟一个「!」表示强制退出

3)「wq」:保存退出

【分屏指令】

1)「vs 文件名」:实现多文件的编辑

2)「Ctrl+w+w」:光标在多屏幕下进行切换

【执行指令】

1)「!+指令」:在不退出vim的情况下,可以在指令前面加上「!」就可以执行Linux的指令,例如查看目录、编译当前代码等

5. vim的简单配置

1)配置文件的位置

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效:

而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc"。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,就创建一个,然后我们就可以在自己目录下的vimrc文件中加入需要的配置🥳🥳

例如下图在普通用户tutu目录下没有存在.vimrc文件,所以如果我们想自己配置vim,就需要手动创建一个:

2)常用配置选项

【设置语法高亮】: syntax on

【显示行号】: set nu

【设置缩进的空格数为4】: set shiftwidth=4

例如:

我们使用vim打开刚刚创建的.vimrc文件,然后在插入模式下输入set nu显示行号,并保存退出:

当我们使用vim打开test.c文件时:

发现配置行号后再使用vim打开test.c文件就显示出了行号,大家也可以根据自己的喜欢进行个性化配置

以下是一些常见的Vim配置指令:

  1. 设置颜色主题:在.vimrc文件中添加如下指令:

    colorscheme <主题名称>
    

    可以在.vim目录下的colors目录中找到可用的主题文件。

  2. 设置缩进:在.vimrc文件中添加如下指令:

    set tabstop=<缩进宽度>
    set shiftwidth=<缩进宽度>
    set expandtab
    

    这个例子将缩进宽度设置为4,将Tab键转换为空格,使得Tab键按下时插入的是4个空格。

  3. 设置行号:在.vimrc文件中添加如下指令:

    set number
    

    这个指令会在每一行前显示行号。

  4. 设置自动补全:在.vimrc文件中添加如下指令:

    set completeopt=menuone,longest
    

    这个指令将打开自动补全菜单,当有多个候选项时,会自动显示菜单。

  5. 设置搜索高亮:在.vimrc文件中添加如下指令:

    set hlsearch
    

    这个指令会在搜索时高亮显示匹配的文本。

  6. 设置语法高亮:在.vimrc文件中添加如下指令:

    syntax on
    

    这个指令会启用语法高亮功能。

  7. 设置文件编码:在.vimrc文件中添加如下指令:

    set encoding=utf-8
    

    这个例子将文件编码设置为UTF-8。

请注意,在修改.vimrc文件后,需要重新启动Vim或者重新加载配置文件才能生效。可以使用如下命令重新加载.vimrc文件:

:source ~/.vimrc

6. 结语

Vim有非常丰富的功能,可以根据具体需求进行扩展和定制。初学者可能需要一些时间来适应Vim的操作方式,但一旦掌握了Vim的一些基本操作,它将成为你在终端环境下高效编辑文本的利器。

相关推荐
L.Cheng几秒前
Sublime text3怎么关闭提示更新
编辑器·sublime text
Xinan_____2 分钟前
Linux——k8s认识
linux·运维·kubernetes
技术无疆4 分钟前
【Python】Anaconda插件:Sublime Text中的Python开发利器
ide·python·编辑器·pip·pygame·sublime text·python3.11
小立爱学习28 分钟前
Linux 给 vmlinux 添加符号
linux·c语言
程序员大金1 小时前
基于SpringBoot+Vue+MySQL的养老院管理系统
java·vue.js·spring boot·vscode·后端·mysql·vim
DieSnowK1 小时前
[项目][WebServer][CGI机制 && 设计]详细讲解
linux·开发语言·c++·http·项目·webserver·cgi机制
guoguoqiang.1 小时前
我与Linux的爱恋:命令行参数|环境变量
linux·运维·服务器·c语言·学习
极客小张2 小时前
基于STM32MP157与OpenCV的嵌入式Linux人脸识别系统开发设计流程
linux·stm32·单片机·opencv·物联网
x66ccff2 小时前
【linux】4张卡,坏了1张,怎么办?
linux·运维·服务器