# 06-Linux 系统中的 vi 和 vim 指令

# 简介

# 概述

Vi为linux文件内容编辑器,所有linux系统都自带vi编辑器。vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

# 应用模式

Vim 操作文件时,提供了正常模式、输入模式、命令模式:

正常模式(一般模式)

在正常模式下我们可以使用快捷键以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。

输入模式(编辑模式)

按下i, I, o,等任何一个字母之后才会进入编辑模式,一般来说按i即可.

命令行模式

在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的

# 应用模式切换

VIM 指令打开一个文件后,几个模式之间切换,例如:

在这里插入图片描述

# 常用快捷键

# 拷贝操作

拷贝当前行:【yy】,拷贝当前行(包括当前行)向下的5行:【5yy】,粘贴:【p】

# 删除操作

删除当前行【dd】,删除当前行(包括当前行)向下的5行:【5dd】

# 查找操作

在文件中查找某个单词:【命令行模式下 /关键字或者?关键字】,回车查找,输入【n】就是查找下一个设置文件的行号,取消文件的行号:【命令行模式下: set nu和set nonu】

# 保存和退出

文件编辑好以后,可以进入命令模式保存和退出

q:直接退出(不保存退出)

wq:修改后保存退出

q!:强制退出,不保存修改的内容

# 其它操作

使用快捷键到文档的最末行【G】和首行【gg】 在一个文件中输入"内容", 然后又撤销这个动作:【u】

0或功能键Home:这是数字0,移动到这一行的最前面字符处 $或功能键End:移动到这一行的最后面字符处 H:光标移动到这个屏幕的最上方那行的第一个字符 M:光标移动到这个屏幕的中央那行的第一个字符

如果你将右手放在键盘上的话,你会发现hjkl是排列在一起的,因此可以使用这四个按钮来移动光标。

h或向左箭头键:光标向左移动一个字符

j或向下箭头键:光标向下移动一个字符

k或向上箭头键:光标向上移动一个字符

l或向右箭头键:光标向右移动一个字符

如果想要进行多次移动的话,例如向下移动30行,可以使用“30j”或“30↓”的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可!

假如希望按页为单位进行移动,可参考如下指令:

Ctrl+f:屏幕【向下】移动一页,相当于【Page Down】按键

Ctrl+b:屏幕【向上】移动一页,相当于【Page Up】按键

Ctrl+d:屏幕【向下】移动半页

Ctrl+u:屏幕【向上】移动半页

# 总结(Summary)

vi操作为linux文件系统中的一个最重要的操纵,基于vi或vim可以快速实现对文件内容的编辑,需要重点掌握。

参考资料:

06-Linux 系统中的vi和vim指令 (opens new window)