Linux快速入门(七)效率工具(Vim)

Vim编辑器

所有的Linux系统都会内建一个Vi文本编辑器,而Vim是从Vi发展出来的一个高度可配置的文本编辑器,旨在高效的创建和更改任何类型的文本,它还可以根据文件的扩展名判别编程语言。
使用方式:vim 文件名

编辑器模式

Vim有三种编辑模式分别是:
(1) 普通命令模式
用户刚启动Vim时,就处于命令模式,在命令模式下,用户的输入会被识别为命令。在这个模式下可以进行文本的复制、粘贴、剪切等操作。在此模式下命令可以进行组合操作。

(2) 编辑模式
命令模式下按aio中的任意一个按键就可以切换到编辑模式,在编辑模式下按Esc键可以切换到普通命令模式编辑模式主要是对文件的内容进行编辑。

(3) 底线命令模式
命令模式下按:就可以切换到底线命令模式,在底线命令模式下按Esc可以切换到普通命令模式。在底线命令模式下,可以对文件内容进行检索、保存、退出等操作。

这三种模式的关系可以表示为(图像来源:菜鸟教程):

Vim命令汇总(图像来源:菜鸟教程):

常用命令

命令模式

通过Vim打开文件之后处于命令模式,在此模式下可以:

  • 光标移动
    (1)h左箭头键表示光标向左移动一个字符,j下箭头表示光标向下移动一个字符、k上箭头表示光标向上移动一个字符、l右箭头表示光标向右移动一个字符
    (2)gg:可以将光标移动到文件第一行G:可以将光标移动到文件的最后一行。如果要移动到指定的某一行可以使用nGn为一个具体的数字,比如想要移动到第三行可以输入3G,就可以跳转到第三行
    (3)$:将光标移动到当前光标所在行的末尾n<space>:可以将光标从当前位置向后移动n个位置

  • 文本操作
    (1)v:选择模式,在此模式下可以通过上下左右选择需要的文本,然后进行操作。
    (2)d:剪切当前选中的文本;dd:剪切当前行;ndd:剪切包括当前行在内的n行;dG:剪切从光标所在行到最后一行的数据,如果想要删除所有数据,可以将gg命令和dG命令组合使用,输入ggdG,光标会先跳转到第一行,然后删除当前行到最后一行的所有数据。可以将这几个命令当删除使用
    (3)y:复制选中的文本;yy:复制当前行;nyy:复制当前行在内的n行
    (4)p:在当前光标位置粘贴之前剪切或者复制的内容
    (5)u:撤销上一步操作

编辑模式

对文件的内容进行编辑,类似Word操作,在当前模式下可以通过Esc切换到普通命令模式,再通过:/?中的任意一个就可以切换到底线命令模式。

底线命令模式

在底线命令模式下Enter键表示输入完成,在此命令模式下可以:

  • 格式设置
    (1):set nu:显示当前文本的行号;:set nonu:取消行号显示
  • 文本检索、替换
    (1)/word:从光标当前位置向下查找第一个为word的字符串,使用n可以重复前一个查找操作,这样就可以从光标当前位置一直向下查找带有word的字符串,使用N可以反向重复前一个操作,与n相反,这样就可以从光标当前位置向上查找带有word的字符串;?word从光标当前位置向上查找第一个为word的字符串。
    (2) :n1,n2s/w1/w2/g:其中n1n2位数字,g表示全局搜索,该命令表示在第n1行与n2行之间寻找w1这个字符串,并将该字符串替换为w2:1,$s/w1/w2/g:将第一行到最后一行的w1替换为w2:1,$s/w1/w2/gc:将第一行到最后一行的w1替换为w2,且在替换前要求用户确认。
  • 文件操作
    (1):w:保存当前文件
    (2):q:退出当前文件(不保存)
    (3):q!:强制退出当前文件(不保存)
    (4):wq:保存当前文件并退出
    (5):wq!:强制保存当前文件并退出,如果是写入之后强制保存需要确保当前文件有写权限
posted @ 2022-08-30 23:10  顾北清  阅读(160)  评论(0编辑  收藏  举报