vim学习使用

Vim中存在三种模式:命令模式、编辑模式(输入模式)、末行模式(尾行模式)

  • 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等)[打开文件之后默认进入的模式];
  • 编辑模式:在该模式可以对文件的内容进行编辑;
  • 末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等);

vim是vi的完整版,vi更轻量一些 ,vim跟适合写代码。

三种模式的转换

vim三种模式的转换

如何进入 vim

  • #vim 文件路径 作用:打开指定的文件
  • #vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行,+不可省略
  • #vim +/字符串 文件的路径 作用:打开指定的文件,并且高亮显示关键词 +/不可省略
  • #vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件

例如: vim +/var passwd

image-20210116141047695

如何让 vim显示行号

方法1: 进入命令模式输入 ::set nu,只不过这是临时的,如果想永久显示看下一个方法,set nonu 是关闭行号

方法2:在用户的家目录下 打开(没则新建).vimrc,在末尾写入一句 set number,这样该用户每次进入都会自动显示行号了

.vimrc 是vim的配置文件

命令模式

以下操作都是在 命令模式下

光标的移动

  • 光标移动到行首 : shift + 6 6不是小键盘的,其实就是输入 ^

  • 光标移动到行尾: shift + 4 相当输出 $

    其实这个就是 正则表达式 :*(通配符)^(开始)$(结尾)

  • 光标移动到首行 gg

  • 光标移动到末行 : G 大小

  • 翻屏: 向上翻屏:按键ctrl+b(before)或PgUp , 向下翻屏:按键ctrl+f(after)或PgDn

调节光标还可 通过这四个按键 h j k l 分别对应 左 下 上 右 注意是小写,然后 这个只能在命令模式下使用

还有: 小键盘也可哦

光标的快速移动

  1. 快速将光标移动到指定的行按键:数字G

  2. 以当前光标为准向上/向下移动n行按键:数字↑,数字↓

  3. 以当前光标为准向左/向右移动n字符按键:数字←,数字→

  4. 末行模式下的快速移动方式:移动到指定的行按键:输入英文“:”,其后输入行数数字,按下回车

复制粘贴操作

  • 粘贴:在想要粘贴的地方按下p键

  • 复制光标所在行:yy

  • 复制光标所在的往下指定行,包含当前行 整数yy (按下数字后在 按下 yy)

  • 可视化 选择 ctrl + v 移动光标 选择( 方向键或者 h j k l都可以) 之后按下 yy 复制 ,esc 取消选择

剪切/删除

  • 剪切/删除

按键:dd(删除之后下一行上移)

  • 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
    数字dd(删除之后下一行上移)

  • 剪切/删除光标所在的当前行,但是删除之后下一行不上移

    D(删除之后当前行会变成空白行)

撤销/恢复

撤销:输入 :u或者u(undo)

恢复:ctrl+r 恢复(取消)之前的撤销

末行模式

命令模式下按“:”或“/(表示查找,出现的是当前页的离你光标最近的一个)”进入末行模式;

退出末行模式:

  • 一下esc

  • 两下esc(一下和两下的区别是速度问题)

  • 删除末行命令和冒号,即退出末行模式

  • 保存操作
    输入:“:w”保存文件
    输入:“:w 路径”另存为

  • 退出(quit)
    输入:“:q”退出文件

  • 保存并退出
    输入:“:wq”保存并且退出

  • 强制(!)

    输入:“:q!”表示强制退出,刚才做的修改操作不做保存

  • 调用外部命令(了解)

    输入:“:!外部命令”

    当外部命令执行结束之后按下任意键回到vim编辑器打开的内容

  • 搜索/查找
    输入:“/关键词”

    在搜索结果中切换上/下一个结果:N/n

    如果需要取消高亮,则需要输入:“:nohl”【no highlight】

  • 替换

    :s/搜索的关键词/新的内容      替换光标所在行的第一处符合条件的内容
    :s/搜索的关键词/新的内容/g    替换光标所在行的全部符合条件的内容
    :%s/搜索的关键词/新的内容     替换整个文档中每行第一个符合条件的内容
    :%s/搜索的关键词/新的内容/g   替换整个文档的符合条件的内容
    1234
    
    • %表示整个文件
    • g表示全局(global)
  • 显示行号
    输入:“:set nu”[number]
    如果想取消显示,则输入:“:set nonu”

  • 扩展2:使用vim同时打开多个文件,在末行模式下进行切换文件查看当前已经打开的文件名称:“:files”

    在%a的位置有2种显示可能
    %a:a=active,表示当前正在打开的文件;
    #:表示上一个打开的文件
    123
    
  • 切换文件的方式:
    a.如果需要指定切换文件的名称,则可以输入:“:open 已经打开的文件名”

    b.可以通过其他命令来切换上一个文件/下一个文件

    输入:“:bn”切换到下一个文件(back next)
    输入:“:bp”切换到上一个文件(back prev)
    

编辑模式

如何进入编辑模式

编辑模式

经常使用的是 i a

如何退出 ?

esc即可

补充

异常退出

什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况。

下次进入的话会出现如下情况

image-20210116155104777

如何解决 rm -f .*.swp(这个文件时隐藏文件)删除临时文件即可

image-20210116155325335

vim 几个实用的技巧

  1. 代码着色 :syntax on 开启 :syntax off 关闭

    学习一个单词 :syntax 语法

  2. vim 中的计算器 的使用

  3. 先进入编辑模式

  4. 按下 ctrl + r 就会发现多一个引号

  5. 按下 '=' ,我们再输入的东西都会出现到 命令的位置

  6. 输入算式 ,回车,引号就变成了了 计算结果

配置vim

三种配置配置方法

  1. 在行末模式 输入 配置:这样子是零时的
  2. 用户配置文件:~/.vimrc ,隐藏的文件 ,有可能不存在,新建一个即可
  3. 全局配置文件:/etc/vimrc

如果三种配置冲突,这个配置的优先级为 零时配置>用户>全局配置

结语

放假咸鱼的第21天
微信小程序

努力成长的程序员