天天看点

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

阅读目录

      • 打开文件
      • vim模式
      • 模式之间切换
        • 命令模式--> 插入模式
        • 插入模式 -->命令模式
        • 命令模式-->扩展命令模式
        • 扩展命令模式-->命令模式
      • 关闭文件
        • 扩展命令行模式下关闭
        • 命令模式下关闭
        • vim编辑时遇到E325: ATTENTION Found a swap file by the name 错误
      • 扩展命令行模式
        • 进入
        • 命令
      • 光标的移动
        • 字符间移动
        • 单词间移动(除了下划线都认为是单词的分隔符)
        • 当前页跳转
        • 行首、行尾跳转
        • 行间跳转
        • 段落间跳转
        • 翻屏
      • 命令模式操作
        • 字符编辑
        • vim替换
        • vim删除
        • vim复制
        • vim粘贴
        • 改变命令
        • vim撤销
        • vim查找字符串
      • 扩展命令模式进阶
        • 地址定界
        • 查找替换
      • 可视化模式
      • 多文件操作
      • 使用多个窗口
      • 定制化vim
      • vim帮助信息

打开文件

vim [options] file
+数值 【打开文件以后光标在 指定数值 行的行首】
+/string 【直接定位到第一个被匹配到的string的行的行首】
-m  只读模式打开,退出方式 【: q 或者 :q ! 】
-e  直接进入扩展命令行模式
-b 以二进制方式打开文件
           
Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

vim模式

  • 命令模式:直接打开后默认
  • 插入模式:编辑文件 --INSERT–
  • 扩展命令模式(末行模式):保存w、退出q、保存并退出wq
  • 可视化模式:

模式之间切换

命令模式–> 插入模式

  • i 在当前光标的所在位置插入
  • I 在当前行的行首位置开始插入
  • a 在光标的后面开始插入
  • A 在当前行的行尾位置开始插入
  • o 在当前光标所在行的下方打开一个新行
  • O 在当前光标所在行的上方打开一个新行

插入模式 -->命令模式

  • esc

命令模式–>扩展命令模式

扩展命令模式–>命令模式

  • 按esc 再按enter
  • 或者按两下 esc esc

关闭文件

扩展命令行模式下关闭

  • :q 退出
  • :q! 不保存强制退出(涉及修改时,使用)
  • :wq 保存退出
  • :wq! 强制保存退出
  • :x 保存退出

命令模式下关闭

  • ZZ 保存退出
  • ZQ 不保存退出

vim编辑时遇到E325: ATTENTION Found a swap file by the name 错误

  • 错误原因:通过错误E325的提示可以知道,出现这种情况的原因有两种,其一,是当前有其他的进程正在对相同的文档进行编辑;其二,之前的编辑会话被销毁了(crashed)

    (也就是说,你上次编辑的时候,没有保存就强制离开了)。

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 原理:在编辑文件的时候,并不是对原有文件进行修改和覆盖的,而是新建一个副本,名字叫xx.swp,我们对文件的编辑都放在了这个副本里面,这也是为什么我们能进行撤销的原因,我们并没有对原有的文件进行修改。当我们正常退出时,这个文件就正常消失,而当我们异常退出时,这个文件就会作为隐藏文件,当我们下次启动vim时,它就会提示我们上次编辑时,有一个文件异常退出了,是否要进行恢复。也就是弹出E325错误。当我们异常退出时,这个隐藏文件会帮助我们还原到上次编辑的状态。也就相当于是一个自动保存的功能。
  • 解决办法:

    (1)方法一:选择还原到上次编辑的状态,然后再删除掉.swp文件,做法:vim -r filename(你上次未保存的文件名),会出现以下界面;或者直接按照提示输入:R 即是recovery

    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    左侧会出现一个Recovery completed,告诉你文件已经还原到了上次编辑的状态,而右侧会多出一个swo文件,这个文件类似于swp用来保存你修改文件的副本,而swp文件是我们用来还原的副本。当我们还原之后,可以使用rm -f xx.swp 删除掉这个副本。

(2)方法二:当我们不需要还原的时候,只需要我们直接删除这个副本就可以了(到根目录或者工作目录下找到你修改的文件.swp)。利用rm命令直接删除这个副本,或者按照提示输入:D 即是 delete

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

扩展命令行模式

进入

  • " : "进入扩展命令行模式
  • 或者输入:vim -e 文件名
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

命令

  • w 【write 写入磁盘】
  • wq 【保存退出】
  • x 【保存退出】
  • q 【退出】
  • r [filename] 【读入一个文件的内容,在光标的下一行插入】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • w [filename] 【将当前的文件另存为另外一个文件】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • ! command 【执行命令,然后回车回到文件中】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • r! command 【直接将命令的执行结果写入到文件中,光标所在行的下一行】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

光标的移动

【所有操作,在 命令模式下 进行】

字符间移动

  • h 左移动
  • l 右移动
  • j 往下移动
  • k 往上移动

【键盘上 相连的 h j k l 是个键位:← ↑ ↓ →】

  • 数值+command 【多个字符之间跳转,如果 3+h 表示左移三个单位】

单词间移动(除了下划线都认为是单词的分隔符)

  • w 【words 下一个单词的词首】
  • e 【end 当前单词或者下一个单词的词尾】
  • b 【before 当前单词或者上一个单词的词首】
  • 数值+command 【多个单词之间进行跳转】

当前页跳转

  • H 【head 当前页的第一行】
  • L 【tail 当前页的最后一行】
  • M 【middle 当前页面的中间位置】
  • zt 【以光标所在的行,直接移动到屏幕的顶端】
  • zb【 以光标所在的行,直接移动到屏幕的底部(显示整页)】
  • zz 【以光标所在的行,移动到屏幕的中间位置】

行首、行尾跳转

  • 0【数字的零,跳转到行首】
  • $ 【跳转到行尾;英文状态下】
  • ^ 跳转到行首的第一个非空白字符

行间跳转

  • 命令模式下

    (1)gg【 回到第一行】

    (2)1G 【回到第一行】

    (3)G 【跳转到最后一行】

  • 扩展命令模式下:

    (1)数值G 【跳转到指定的数值行;英文模式下,不要用小键盘的数字】

段落间跳转

  • } 下一段
  • { 上一段

翻屏

  • ctrl+f 【向下翻一屏】
  • ctrl+b 【向上翻一屏】
  • ctrl+d 【向下翻半屏】
  • ctrl+u 【向上翻半屏】

命令模式操作

字符编辑

【以下操作都在:命令模式下】

  • x 【删除光标所在的位置】
  • 数值x 【删除指定 数值 个字符】
  • xp 【交换位置】
  • p 【粘贴到光标所在的位置】
  • ~【大小写转换;也是在前面 加上数值,可以作用数值个大小写转换】
  • J 【删除当前行后的换行符】

vim替换

  • r 【replace 替换光标所在位置;先按r 然后加要替换的内容;也可以先指定数值,代表要替换的位数,然后加上输入内容】
  • R 【切换到替换模式;esc 退出】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

vim删除

【在命令模式下】

  • d 【删除,需要结合光标跳转字符;按下d 然后移动光标,删除内容】如下:

    d0 【删除到行首】

    d$ 【删除到行尾】

    d^ 【删除到非空行首】

    dw 【删除一个单词】

    de 【删除当前单词到词尾的位置或者下一个单词】

    db 【删除光标前的内容,以空格为一个单元】

    dd 【删除光标所在的行】

  • 数值dd 【删除 指定 数值 行数;从光标位置行开始(包括)以下的行】
  • dG 【删除到文件的行尾】
  • dgg 【删除到文件的行首】
  • D 【相当于d$】

vim复制

  • y 复制,需要结合光标跳转字符,比如↓↓↓

    y$

    y0

    y^

    yw

    ye

    yb

    yG

    ygg

  • yy 【复制整行】
  • 数值yy 【复制 指定数值 行】

vim粘贴

  • p 如果是整行,则粘贴到当前所在行的下面,否则,则粘贴到光标所在位置的后面
  • P 如果是整行,则粘贴到当前行所在的上面,否则,则粘贴到光标所在位置的前面
  • 数值 再通过[i|I|a|A|o|O]进入insert模式 加上要添加的string 再按esc 【粘贴 指定数值 次string】

改变命令

  • c 【修改之后直接切换到插入模式,如果没进入,再按下 tab键】

    c$

    c0

    c^

    cb

    ce

    cw

  • cc 【删除当前行并且输入新内容;无论光标在行内的哪里,都是删除一整行】
  • 数值cc 【删除 指定数值 行,并切换到插入模式】
  • C 【相当于c$;删除光标所在位置,到本行结尾的内容】

vim撤销

  • u 【撤销最近的更改】
  • 数值u 【撤销之前的 指定数值 次更改】
  • U 【撤销光标所在行的关于此行操作】
  • ctrl+r 【重做最后的操作,撤销撤销】
  • . 【重复前一个操作】
  • 数值. 【 重复之前的动作多少次】

vim查找字符串

【在命令模式下】

  • /pattern 【从当前光标所在位置向下查找】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • ?pattern 【从光标所在位置向上查找;可以使用正则表达式】
  • n 【同 搜索命令 方向 查找下一个匹配】
  • N 【同搜索命令 相反 查找下一个匹配】

扩展命令模式进阶

地址定界

  • : start, end

    (0): set nu【显示出行号,按enter后,如果还要进行其他操作,直接再按 : 进入即可】

    (1)直接指定数值【具体到多少行;如 :10 回车则会定位到第10行】

    (2)m,n 【从m开始到n结束;输入后enter则是定位;也可以在区间后加上 d 表示删除该区间的内容】

    (3)m,+n 【从m开始,到m+n结束 2, +3 第2行到第5行;直接按enter结束执行可以定位到该区间】

  • . 【代表当前行】
  • $ 【最后一行】
  • $-指定数值 【倒数第 指定数值+1 行】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • % 【全部】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 指定数值,/pat/ 【从第#开始,到第一次被pat匹配到的行】
  • /pat1/,/pat2/ 【从第一个别pat1匹配到的行到 第一个被pat2匹配的行】
  • /pat/,指定数值 【从第一个被pat匹配到的行,到 指定数值 行

    后面可以添加一下:

(1)d 【删除;比如 :/post/,$ d 】

(2)y 和 p 【复制 ;比如 :/post/,$ y】

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

执行后,再按下p粘贴

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

(3)w file :【将范围内的文件另存为一个文件】

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

(4)r file 【在指定的位置插入文件中的内容;比如执行 :8,9 r a.txt ;注意是在区间结尾处新增】

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

查找替换

  • : 地址定位符s / 要查找的内容 / 要替换的内容 / 装饰器
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

    (1)要查找的内容:可以使用正则表达式

    (2)要替换的内容: 不可以使用正则表达式,但是可以使用\1,\2等,也可以使用&来代替前面的内容;使用\1 这种方法需要对其进行分组,即使用括号(记得正则时要使用转义字符),使用& 符号时,不需要先进行分组,就可以代替前面的内容;本质就是要替换的内容和查找的内容有很大的相似性,所以可以采用这两种简写方式!

    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 装饰器

    (1)i 忽略大小写

    (2)g 全部替换

    (3)gc 是提前之前要确认:y 确认,n 跳过,a 全部

    (4)如果要将 / 替换成别的符号:需要使用 @ 或者 # 对其进行转义,但是这两个符号在使用时,尽量不要重复

    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

可视化模式

  • v 【面向字符,需要结合选定区域使用(使用键盘和光标移动来选定字符)】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • V 【面向行;结合键盘和光标移动来选定字符】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • ctrl+v 【面向的是块;结合键盘和光标移动来选定字符】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 选定的内容可以:删除,复制,变更,过滤,替换等等

多文件操作

vim file1 file2 file3

  • :next 下一个
  • :prev 上一个
  • :first 第一个
  • :last 最后一个
  • :wqall
  • :wall
  • :qall
  • 对其中一个文件进行了修改,需要保存之后再切换

使用多个窗口

  • 多个文件协作

(1)vim -o|-O file1 file2 file3

(2)-o 水平切割

(3)-O 垂直切割

(4)ctrl+w 切换不同窗口

Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 单的文件切割

(1)ctrl+w,s 【水平分割;先按ctrl+w,放手后再按 s】

(2)ctrl+w,v 【垂直分割;先按ctrl+w,放手后再按 v】

(3)ctrl+w,方向键 【切割出来的区域间移动】

(4)ctrl+w,q 【取消相邻的屏幕】

(5)ctrl+w,o 【取消所有的屏幕】

  • 屏幕尺寸调整
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

定制化vim

  • vim的配置文件

    (1)全局:/etc/vimrc

    (2)个人:~/.vimrc

  • 扩展命令模式:

    (1)添加行号 set nu 取消 set nonu

    (2)搜索时忽略大小写 set ic 取消set noic

    (3)自动缩进(与上一行对其) set ai 取消 set noai

    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

    (4)搜索高亮 set hls 取消 set nohls

    (5)语法高亮 syntax on 关闭 syntax off

    (6)设置光标所在的行的标识符 set cul 取消 set nocul

    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    (7)获取帮助 :set all
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

    (8)文件格式:

    转换成windows set fileformat=dos

    转换成linux set fileformat=unix

    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    windows和linux可能会应该换行符不同或其他差异导致互传的文件打开不开,所以需要再linux上和windows转换时设置格式
Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令

vim帮助信息

  • :help
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • : help topic
  • vimtutor 【vim的指导手册,tutor是“指导”的意思;里面有所有上面学到的内容】
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 大家可以vimtutor进入英文版的指导教程,里面非常详细,而且还有彩蛋哦!
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令
  • 再次回来看下之前的键盘图,是不是有重新的收获呢?那么就反复练习直到熟练吧!
    Linux基础--分步图解vim操作 vim的基本应用 vim的高级应用 vim的高级进阶应用 vim的帮助信息 vim报E325错误解决 超详细图解vim命令