vim编辑器是一个功能强大的多模式编辑器,是Linux/UNIX 上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件。Vim 没有菜单,只有命令。

本文根据@每天都要敲代码和[Linux就该这样学》](《Linux就该这么学》 - 必读的Linux系统与红帽RHCE认证免费自学书籍 (linuxprobe.com))整理。

三种工作模式

  • 命令模式
  • 输入模式
  • 末行模式

互相的切换

image-20220707082254961

命令模式

  • 插入命令

    • a :在光标所在字符后插入(add)
    • A :在光标所在行尾插入
    • i :在光标所在字符前插入
    • I :在光标所在行行首插入
    • o :在光标下插入新行
    • O :在光标上插入新行
  • 删除命令

    • x :删除光标所在字符,每次删一个字符
    • 5x :删除光标后5个字符
    • dd : 删除当前行
    • 5dd: 删除剪切从光标开始的5行
    • dG :删除光标所在行到文件的末尾
    • :1,5d :删除第1到第5行
    • u :撤销
  • 复制命令

    • 5yy :复制从光标开始的5行
    • p :粘贴

末行模式

  • 保存和退出命令

    • :w :保存
    • :q :退出
    • :q! :强制退出
    • :wq! :强制并退出
  • 定位命令

    • :set nu :显示行号
    • :set nonu :取消行号
    • gg :最后一行
    • GG( ]] 也行):最后一行
    • 5G :到第5行
    • :5 :到第5行
    • $ :移到行尾
    • 0 :移到行首(这个是数字0)
  • 搜索和替换命令

    • :s/1/2 :当前光标所在行的第一个1换成2
    • :s/1/2/g :当前光标行的所有1换成2
    • :%s/1/2/g :全文的1换成2
    • ?字符串 :从下往上搜索
    • /字符串 : 从上往下搜索
    • r : 取代光标所在处的一个字符;后面在输入相当于在光标处后面直接插入;
    • R 从光标所在处开始替换字符,直到整个行被替换完,后面在输入相当于在光标处后面直接插入,按 ESC 结束;
    • n:显示搜索命令定位到下一个字符串(next)
    • N:显示搜索命令到上一个字符串

使用技巧

  1. 导入命令执行结果到文件里:r!命令

  2. 连续行注释

    1. :1,5s/^/#/g

    把 n1 起始行和 n2 终止行里面的内容进行注释 (#);^(尖角号) 代表移到首行字符并进入插入模式;# 是把注释符 #插入进去;g 代表不询问;

    1. :n1,n2s/^#//g

      表示把首行的注释符 #取消掉;相当于把首行的 #替换成空;

  3. 定义快捷键 :map 快捷键 触发命令

  4. 替换快捷键 :ab

    定义一个快捷键来代替我们的邮箱:

    :ab mymail 1399447550@qq.com

    以后输入mymail回车即可

    注意:当前定义的快捷键是临时的,想要永久生效,需要写在 用户.vimrc

    root 用户: 写入 / root/.vimrc 当中

    普通用户:写入/home/用户名/.vimrc

vim的配置

所有的基本配置,本质是将我们的配置项写入. vimrc 当中;对于普通用户,我们直接 vim .vimrc 把配置文件写进去就行。

下载地址 :curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

让配置生效: source ~/.bashrc

卸载配置直接执行:bash ~/.VimForCpp/uninstall.sh

vim插件设置

安装插件管理器

安装

1
2
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

如果无法成功,请参照:

Failed to connect to raw.githubusercontent.com port 443 处理方法_smileGch的博客-CSDN博客

1
2
3
4
5
call plug#begin('~/.vim/plugged')
Plug "要安装的插件"


call plug#end() 结束插件的安装