一篇文章带你入门vim


vi&vim

vi和vim的区别,简单来说它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi所有指令,而且还与一些新的特性在里面,比如语法高亮,可视化操作不仅可以在 终端运行,也可以运行于 mac os上。

vim 概念

vim是有着多种模式的文本编辑器,这里这介绍最常用的三种模式。

  1. 命令模式(默认模式)
    控制屏幕光标的移动,字符、字和行的删除、移动复制某区段以及进入 插入模式下,或者进入 底行模式下
  2. 插入模式
    只有在插入模式下才可以输入文字,按 Esc键 就可以回到命令模式
  3. 底行模式
    文件保存退出,也可以进行文件替换,查找字符串,列出行号等一系列操作,在命令模式下,shift+: 就可以 进入该模式,本质就是输入一个冒号。

查看所有 vim 模式 命令,进入vim 在底行模式 输入下面的命令
help vim-modes

vim共用16种模式,分为 6这种基本模式和 6种附加模式

在这里插入图片描述

在这里插入图片描述

vim的基本操作 (模式切换+保存退出)

在这里插入图片描述

语法:vim 文件名

注意:vim 命令 进入到 vim之后,默认是 处于命令模式的,要切换到插入模式后才能进行输入文字

  • [命令模式] 切换到 [插入模式]

  • 输入a

  • 输入i

  • 出入o

    也就是说输入 a、i、o都可以从命令模式切换到插入模式

  • [命令模式] 切换到[ 底行模式]
    同时按住 shift + :,本质上就是输入冒号,就可以从命令模式切换到底行模式

  • [插入模式 或 底行模式] 切换到 命令模式

    无论是在插入模式还是在底行模式下或者你不知道你在哪个模式,直接无脑按 Esc就可以了

  • 退出vim及其保存文件
    在命令模式下输入 : 进入底行模式
    共有三个字母选项:w:保存、q:退出、!:强制

    1. 保存文件::w
    2. 不保存退出:q
    3. 强制保存并退出:wq!
    4. 强制退出:q
    5. 强制保存:w!

在这里插入图片描述

vim 命令模式操作汇总

移动光标

  • 光标的移动:左 h、下j、上k、右l

  • 光标左右定位:shift+^shift+$,左右定位(直接将光标定位到当前行的字符最左侧和最右侧)`空白字符不算

  • 上下定位:shift+g定位到最后一行、gg 定位到第一行

  • 指定定位:n+shift+g,n是数字表示 定位 到 第几行,比如 8+shift+g 定位到第八行开头

  • 单词定位:w光标定位到下个单词的开头,e光标定位到下个单词的结尾,b光标定位 到上个单词的开头

  • 向后定位:数字+l将光标移动到当前行的当前位置的后n个字符,如果是 6+l就是向后移动 6个字符

  • 翻页:ctrl+f屏幕向后移动一页,ctrl+b屏幕向前移动一页,ctrl+d屏幕向后移动半页,ctrl+u屏幕往前移动半页

删除文字

  • x:每按一次,删除光标所在位置的第一个字符
  • [#x]:比如 3x表示删除光标所在位置的后面(包含 自己)的3个字符
  • X:大写X,每按一次删除光标所在位置前面的一个字符(不包括自己)
  • #X:大写X,比如 10X删除光标所在位置的前10个字符(不包括自己)
  • dd:删除光标所在的那一行
  • #dd:从光标所在行开始删#行,,比如4dd就上从当前行往下删4行(包括所在行)

复制剪切粘贴文字

  • yw:将光标所在之处到字尾的字符复制到缓冲区(可理解为从某个单词的光标位置复制这个单词的字母,一般遇到不同类型的字符会停止复制)
  • #yw:复制#个单词到缓冲区(单词与单词的区分可以是单词或者字符或者中文,这可能不严谨)
  • yy:复制光标 所在行到缓冲区
  • #yy:复制光标所在行往后#行,包括当前行
  • p:将缓冲区的字符粘贴到光标所在位置(注意:所有于y相关的复制命令都必须和 p配合才能 完成复制与粘贴功能
  • dd+p:剪切当前行文字

替换文字

  • r:替换光标所在字符,比如 r+6就是将光标所在字符替换成 6
  • R:不断替换光标所到之处的字符,知道按下Esc键为止

撤销和恢复撤销

  • u:立即撤回到上一次操作,类似于windows的Ctrl+z
  • Ctrl+r:撤销恢复,恢复到撤销之前的状态

大小写切换

  • shirt + ~:将光标所在处的字符小写替换成大小,大小替换成小写

底行模式命令汇总

shift + : 进入底行模式

显示行号

  • set nu:显示行号

  • 在这里插入图片描述

  • set nonu:取消行号

保存退出

  • w:保存、q:退出、!:强制,可以配合使用

在vim下执行Linux命令

  • !+[命令]:不用退出vim执行Linux命令

    在这里插入图片描述
    在这里插入图片描述
    再ls查询是否有编译成功的代码

在这里插入图片描述
在这里插入图片描述
执行编译成功的代码

在这里插入图片描述
在这里插入图片描述

vim分屏

  • vs 文件名:分屏
    如果文件不存在,该命令会自动创建,且要用命令保存,不保存最后退出 还是 不会在目录中出现

每个分屏都是一个vim,都可以进行vim多种模式的切换

在这里插入图片描述

  • ctrl + w:分屏时,光标在多屏幕下进行切换

多个分屏可以用该命令进行切换,光标在哪就在哪个vim窗口里

vim配置

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

  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为 .vimrc
    在这里插入图片描述
    vim .vimrc打开文件就可以在里面添加一些vim配置

  • 比如显示行号 set nu
    配置了这个之后就不用在底行模式显示行号了
    更多配置可自行百度

由于vim的配置非常麻烦,某些配置还需要安装插件。可以使用大佬在 Githup上的vim配置,只需要一条命令就可以使用齐全的vim配置


猜你喜欢

转载自blog.csdn.net/weixin_53946852/article/details/125449354