【05】Vim&Vi:编辑器之神

vi简介

  • vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、
    替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。
  • Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
  • vi没有菜单,只有命令,且命令繁多。

Vi有三种基本工作模式

  • 命令模式
  • 文本输入模式
  • 末行模式
命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

  • 常用的命令:
    • i 切换到输入模式【编辑模式】,以输入字符。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠末行模式输入更多命令。

文本输入模式【编辑模式】

在命令模式下按下【i】就进入了输入模式。

  • 在输入模式中,可以使用以下按键:
    • 字符按键以及Shift组合,输入字符
    • ENTER,回车键,换行
    • BACK SPACE,退格键,删除光标前一个字符
    • 方向键,在文本中移动光标
    • HOME/END,移动光标到行首/行尾
    • Page Up/Page Down,上/下翻页
    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
    • ESC,退出输入模式,切换到命令模式
    • 其实这个模式你可以任意输入,就像windows下的输入
末行模式【命令行模式】
  • 在命令模式下按下:(英文冒号)就进入了末行模式。
  • 末行模式可以输入单个或多个字符的命令,可用的命令非常多。
  • 在末行模式中,基本的命令有(已经省略了冒号):
    • q 退出程序
    • q! 强制退出,不保存
    • w 保存文件
    • wq 保存退出
    • wq! 强制保存退出

按ESC键可随时退出末行模式。

vim示意图

vim基础操作

代码补完、编译及错误跳转等方便编程的功能特别丰富

1.1 进入插入模式:

按键|说明
---|---
i| 插入光标前一个字符
I| 插入行首
a| 插入光标后一个字符
A| 插入行未
o| 向下新开一行,插入行首
O| 向上新开一行,插入行首

1.2 进入末行模式
在命令模式下,用户按“:”键即可进入末行模式

  • 退出

    按键 作用
    :q 退出
    :q! 退出并不保存
    :w 保存
    :qw 退出并保存
    :x 退出并保存
  • 查找命令:

    按键 作用
    / str查找
    n 下一个
    N 上一个
  • 替换命令:

把abc全部替换成123
末行模式下,将当前文件中的所有abc替换成123。如果不使用g,则只会替换每一行的第一个abc

:%s/abc/123/g

末行模式下,将第一行至第10行之间的abc替换成123
:1, 10s/abc/123/g

vim里执行 shell 下命令:

末行模式里输入!,后面跟命令

  • 进入命令模式:

    • ESC:从插入模式或末行模式进入命令模式
  • 移动光标

    按键 作用
    h 左移
    j 下移
    k 上移
    l 右移
    M 光标移动到当前屏幕的中间行
    L 光标移动到当前屏幕最后一行行首
    gg 光标移动文件开头
    G 光标移动到文件末尾
    nG 移动到指定行,n是行号G
    w 向后一次移动一个字
    b 向前一次移动一个字
    { 按段移动,上移
    } 按段移动,下移
    Ctr-d 向下翻半屏
    Ctr-u 向上翻半屏
    Ctr-f 向下翻一屏
    Ctr-b 向上翻一屏
  • 撤销命令:

    按键 作用
    u 一步一步撤销
    Ctr-r 反撤销
  • 删除命令:

    按键 作用
    x 删除光标后一个字符,相当于 Del
    X 删除光标前一个字符,相当于 Backspace
    dd 删除光标所在行,dd n 删除指定的行数
    D 删除光标后本行所有内容,包含光标所在字符
    d0 删除光标前本行所有内容,不包含光标所在字符
    dw 删除光标开始位置的字,包含光标所在字符
    de 删除光标所在位置到本单词末尾
    dE 删除光标所在位置到本单词末尾包括标点符号
    db 删除光标所在位置到前面单词
    dB 删除光标所在位置到前面单词包括标点符号
    d$ 删除光标所在位置到本行末尾
  • 复制粘贴:

    按键 作用
    yy 复制当前光标所在行,yy n 复制 n 行
    p 在光标所在位置向下新开辟一行,粘贴
  • 替换操作:

    按键 作用
    r 替换当前字符
    R 替换当前行光标后的字符
  • 文本行移动:

    按键 作用

    |文本行右移
    << |文本行左移

  • 重复命令:

    按键 作用
    . 重复上一次操作的命令
  • 可视模式:

    按键 作用
    v 按字符移动,选中文本
    V 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

posted @ 2021-07-07 14:52  sjkzy  阅读(54)  评论(0编辑  收藏  举报