vim:文本编辑器

功能描述:

vim是从 vi 发展出来的一个文本编辑器。

vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

命令语法:

vim [选项] [文件]

参考实例:

实例1

编辑指定文件:

[root@cnLinuxer ~]# vim readme.txt

实例2

从第5行开始编辑指定文件:

[root@cnLinuxer ~]# vim +5 readme.txt

实例3

打开文件,并定位到最后一行:

[root@cnLinuxer ~]# vim + readme.txt

实例4

在上次正用vim编辑文件时发生系统崩溃,恢复filename

[root@cnLinuxer ~]# vim -r readme.txt

知识点梳理

vim三种模式

vi/vim的三种模式:命令模式、末行模式、编辑模式。

三种模式相互切换逻辑与命令图:

vim命令手册_linux

命令模式

命令模式是vim的默认模式(即打开一个文件时的初始模式)。

命令模式的基本操作有:光标的移动、删除、复制、粘贴、更改、翻屏、退出等。

1、光标的移动

(1)光标移到最后一行 [G] (大写G)

(2)光标移到第一行 [两个g] (小写g)

(3)光标移到指定行 [行数 + G] (大写G)

(4)光标上移或下移 [行数 + ↑ 或 行数 + ↓]

(5)光标移至当前行内容的首字符 [^]

(6)光标移至当前行尾 [$]

(7)光标移至当前行首 [0](数字0)

(8)光标左移一个字符 [h]

(9)光标右移一个字符 [l]

(10)光标上移一行 [k]

(11)光标下移一行 [j]

2、删除,复制,粘贴,撤销

(1)删除当前字符 [x](小写x)

(2)删除光标所在行 [dd]

(3)删除n行 [ndd]

(4) 复制当前行 [yy]

(5)粘贴至当前行之后 [p]

(6)删除当前行光标后的所有内容 [D]

(7)撤销上一步操作 [u]

3、翻屏

(1)向下翻屏 [Ctrl+f]

(2)向上翻屏 [Ctrl+b]

(3)向前翻半屏 [Ctrl+d]

(4)向后翻半屏 [Ctrl+u]

4、退出

(1) 不保存并退出 [:q!]

(2)保存并退出 [:wq!]

(3)另存为 a.txt [:w a.txt]

末行模式

在命令模式下按下 : 进入末行模式。

末行模式下基本的操作有:保存、另存、退出、搜索、替换。

1、保存

命令:[:w] (w即write)

作用:将已做的更改进行保存。

2、另存

命令:[:w + 文件路径]

作用: 另存和保存命令基本相似,区别在于另存需要指定文件的保存路径

3、退出

(1) 不保存并退出 [:q!]

(2)保存并退出 [:wq!]

(3)另存为 a.txt [:w a.txt]

4、搜索

命令: /或?加上需要查找的字符串 (/用于正向往下搜索,?用于反向往上搜索)

例如: /fail 进入搜索fail字符串的模式

作用:可使用n(查找下一个)、N(查找上一个),改变光标位置,查找的位置会高亮。

5、替换


指令

功能描述

:s/man/woman

将光标当前行中第一个出现的man替换为woman

:s/man/woman/g

将光标当前行所有的man替换成woman

:2,5 s/man/woman/g

将第二行至第五行中所有的man替换成woman

:%s/man/woman/g

将文本中所有的man替换成woman

编辑模式

在命令模式下按下i就进入了编辑模式。

在编辑模式中,可以使用以下按键:


  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

补充几个常用命令

(1) 显示行号

末行模式下输入 : set nu,可实现行号显示。

该方法临时生效,下次打开文本,行号自动消失。永久生效方法:在当前用户家目录下输入:echo :set nu > .vimrc,即可实现全局行号永久显示。

(2)重做/撤销

如果想要撤销操作,在末行模式下输入[:u]

取消撤销:ctrl + r

多步撤销: 数字 + u

(3)文本异常关闭处理

背景:在文件没有正常关闭的情况下,未保存直接通过远程窗口关闭。

解决办法:删除该文件的交换文件

rm -f .data.txt.swp  //备注:一般交换文件的通常格式为:.文件名.swp

(4)退出方式:wq与:x有何区别?

在实际开发中建议使用:x方式退出。两者区别在于:

(1):wq方式无论文件是否有修改都会对文件的最后修改时间进行重置。

(2):x只有在文件内容真正改变时才会重置文件最后修改时间。

有收获,点个在看