Skip to content

vim编辑器

常用命令示意图

vim常用命令示意图

vim与vi

vim是vi的增强版,是 Linux 众多发行版的默认文本编辑器,所以,通常系统都已经默认安装好了 vi 或 vim 文本编辑器。

注意:CentOS中使用到的是vi,没有vim

如果输入vim,出现下面的提示,就证明没有安装vim

shell
-bash: vim: command not found

使用yum安装下,就可以了

shell
yum install vim -y

vim的三种模式

vim有三种模式,分别是命令模式、插入模式和底线命令模式。这三种模式的作用分别是:

  • 一般命令模式:此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符。
  • 输入模式:在命令模式下通过按下 iao 等按键进入输入模式。
  • 底线命令模式:用户在命令模式按下:后便进入底线命令模式。

vim工作模式

vim的使用

一般命令模式

  • 移动光标

    移动光标的方法
    h或←左移一个字符
    j或↓下移一个字符
    k或↑上移一个字符
    l(小写L)或→右移一个字符
    可以使用组合按键如: 30↑或30j, 分别表示向上移动30行和向下移动30行
    [ctrl]+[f] 或 [Page Down]向下翻一页✱
    [ctrl]+[b] 或 [Page Up]向上翻一页✱
    +移动到非空格符的下一行
    -移动到非空格符的上一行
    n[space]向右移动n个字符
    n[Enter]向下移动n行✱
    数字[0] 或 [Home]移动到本行最开头✱
    $ 或 [End]移动到本行最末尾✱
    H移动到当前屏幕的第一行第一个字符
    L移动到当前屏幕的末尾行第一个字符
    G移动到当前文件的最后一行✱
    nG移动到当前文件的第n行✱
    gg移动到当前文件第一行✱
    n[Enter]n为数字,光标向下移动n行✱
  • 查找与替换

    查找与替换
    /word向下查找字符串
    ?word向上查找字符串
    按键 n继续下一个查找
    按键 N返回上一个查找
    使用/word配合n及N是非常有帮助的,可以实现一些高级操作
    :n1,n2s/word1/word2/gc在第n1行与第n2行之间寻找word1这个字符串,
    并将该字符串替换为word2,
    末尾加c可在替换前向用户确认是否需要替换
  • 删除、复制与粘贴

    删除、复制与粘贴
    x向后删除一个字符,相当于[Del]✱
    nxn为数字,删除光标所在的向后n个字符✱
    X向前删除一个字符,相当于[Backspace]✱
    dd删除(剪切)光标所在的一整行✱
    nddn为数字,删除(剪切)光标所在的向下n行✱
    dgg删除(剪切)从当前行到第一行的所有数据✱
    dG删除(剪切)从当前行到最后一行的所有数据✱
    d0删除(剪切)从当前光标到本行第一个字符✱
    d$删除(剪切)从当前光标到本行最后一个字符✱
    yy复制光标所在的一整行✱
    nyy复制光标所在的向下n整行✱
    ygg复制从当前行到第一行的所有数据✱
    yG复制从当前行到末尾行的所有数据✱
    y0复制从当前光标到当前行首的所有数据✱
    y$复制从当前光标到当前行尾的所有数据✱
    p将已复制的内容粘贴在光标下一行✱
    P将已复制的内容粘贴在光标上一行✱
    J将当前行与下一行合并成一行
    c重复删除多个数据,例如向下删除10行: [10cj]
    u撤销✱
    [ctrl]+[r]重做✱
    小数点 .重复前一操作

编辑模式

  • 进入编辑模式
    进入编辑模式
    i从当前光标进入插入模式✱
    a从当前光标所在的下一个字符进入插入模式
    A从当前行的最末字符进入插入模式
    o从当前光标的下一行进入插入模式✱
    O从当前光标的上一行进入插入模式✱
    r进入替换模式,替换光标所在的字符一次
    R进入替换模式,一直替换光标所在文字,直至按下[Esc]
    [Esc]退出编辑模式✱

底线命令模式

  • 保存、退出、查找、替换

    保存、退出、查找、替换
    :w保存✱
    :wq保存并退出✱
    :q退出✱
    :q!强制退出,不保存✱
    :w [filename]另存为[filename]
    :r [filename]将另一个文件[filename]中的内容加入到当前行的后面
    :n1,n2 w [filename]将第n1行到第n2行的内容另存为文件[filename]中
    :! command暂时退出vim,返回命令行模式下执行command命令
    例如: [:! ls /home] 暂时退出vim执行ls /home命令
    vim显示界面的修改
    :set nu显示行号
    :set nonu取消行号

可视区块模式

Vim 的 Visual Block(可视块模式)是一种选择文本的方式,允许你以矩形块的形式选择文本,而不是按行或单词选择。这种模式在处理列数据或需要对多行进行相同编辑时非常有用。

举例来说,有下面格式的文件

txt
192.168.1.100   host1.class.net
192.168.1.101   host2.class.net
192.168.1.102   host3.class.net
192.168.1.103   host4.class.net

想修改成如下内容

txt
192.168.2.100   host1.class.net   host1
192.168.2.101   host2.class.net   host2
192.168.2.102   host3.class.net   host3
192.168.2.103   host4.class.net   host4

使用普通修改方式较为繁琐,此时可以使用vim的可视区块模式:

  1. 光标移动到第一行的host字符前,按下ctrl+v进入可视区块模式
  2. 移动光标到最底部,此时可以看到所有行的host字符都被反白
  3. 按下y复制选择的数据

可视区块模式-复制数据

  1. 在第一行按下i进入插入模式,光标移动到最右边指定位置退出插入模式
  2. 按p粘贴数据
  3. 按Esc退出可视区块模式

可视区块模式-粘贴数据

可视区块模式下的操作:

可视区块模式的按键意义
ctrl+v进入可视区块模式,可以使用矩形的方式选择数据
h, j, k, l 或 ←, ↓, ↑, →移动光标
v字符选择,会将光标经过的字符反白选择
V行选择,会将光标经过行反白选择
y复制选择的数据
d删除选择的数据
p粘贴选择的数据
Esc退出可视区块模式

多文件编辑

我们可以使用vim同时打开好几个文件进行多文件编辑。

  • 打开多个文件

    shell
    vim filename1 filename2 filename3
  • 多文件编辑操作(在命令模式下)

    shell
    :n 切换到下一个文件
    :N 切换到上一个文件
    :files 查看当前打开的文件
    :close 关闭当前文件
    :q 关闭所有文件,退出vim

多窗口功能

在打开一个文件后,在普通模式下使用以下命令可以多窗口打开多个文件

  • 打开新文件

    shell
    :sp [filename]
  • 切换下一窗口

    shell
    ctrl + w + j
    ctrl + w +
  • 切换上一窗口

    shell
    ctrl + w + k
    ctrl + w +
  • 关闭当前窗口

    shell
    ctrl + w + c

    多窗口功能



< 完结 >

Released under the MIT License.