简介:
Vi编辑器是所有Unix及Linux系统下标准的编辑器,在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,Vi也是Linux中最基本的文本编辑器。
? Vim都是Linux中用的最多的编辑器,与Vi不同的是,Vim比较高级,可以视为Vi的升级版本。Vi使用于文本编辑,但是Vim更适用于coding(写代码的)。
Vim特点:
Vim三种模式:
Vi/Vim+filename(已经存在的文件名或者创建一个新文件),Vi之后默认进入命令模式;i/a/o进入像Windows记事本一样的插入模式;Esc之后回到命令模式,输入:可以进入编辑模式;:wq即可保存退出。
命令模式:使用 Vim 编辑文件时,默认处于命令模式,敲的任何一个字符系统都会当成命令来处理。在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等)。
输入模式:在命令模式状态下输入 i/a/o 等插入命令可以进入输入模式,在该模式Vim可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。

编辑模式:在在命令模式状态下按:进入编辑模式,可以在末行:之后输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等),命令执行后会自动返回命令模式。

任何模式下按Esc键都可以返回命令模式。
Vim常用命令(在命令模式下输入):
插入命令
| 命令 | 作用 |
|---|---|
| i | 在当前光标所在字符前插入随后输入的文本,光标后的文本相应向右移动 |
| I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符 |
| o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
| O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
| a | 在当前光标所在字符后插入随后输入的文本 |
| A | 在光标所在行的行尾插入随后输入的文本 |
定位命令
| 命令 | 作用 |
|---|---|
| :set nu | 设置行号 |
| :set nonu | 取消行号 |
| gg | 到第一行 |
| G | 到最后一行 |
| nG | 到第n行 |
| :n | 到第n行 |
| $ | 移至行尾 |
| 0 | 移至行首 |
删除命令
| 命令 | 作用 |
|---|---|
| x | 删除光标所在处字符 |
| nx | 删除光标所在处后n个字符 |
| dd | 删除光标所在行 |
| ndd | 删除当前行(包括此行)后 n 行文本 |
| dG | 删除光标所在行到文件末尾内容 |
| D | 删除光标所在处到行尾内容 |
| :n1,n2d | 删除从 a1 行到 a2 行的内容 |
复制、粘贴和剪切命令
| 命令 | 作用 |
|---|---|
| yy | 复制当前行 |
| nyy | 复制当前行以下n行 |
| dd | 剪切当前行 |
| ndd | 剪切当前行以下n行 |
| p、P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行 |
替换和取消命令
| 命令 | 作用 |
|---|---|
| r | 取代光标所在处字符 |
| R | 从光标所在处开始替换后面等长字符,按Esc结束 |
| u | 取消上一步操作 |
| :n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 |
| :g/a1/a2/g | 将文件中所有的 a1 都用 a2 替换 |
| :1,$s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 |
| :%s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 |
搜索和搜索替换命令
| 命令 | 作用 |
|---|---|
| /string | 搜索指定字符串 搜索时忽略大小写 :set ic |
| /^abc | 查找以 abc 为行首的行 |
| /abc$ | 查找以 abc 为行尾的行 |
| ?abc | 从光标所在为主向后查找字符串 abc |
| n | 向同一方向重复上次的查找指令 |
| N | 向相反方向重复上次的查找指令 |
| :%s/old/new/g | 全文替换指定字符串 |
| :n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
要查找的字符串是严格区分大小写的,如果想忽略大小写,则输入命令 :set ic;调整回来输入:set noic。
如果在字符串中出现特殊符号,则需要加上转义字符 "\"。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 "10$",则需要在命令模式中输入 "/10$"。
保存和退出命令
| 命令 | 作用 |
|---|---|
| :w | 保存修改 |
| :w new_filename | 另存为指定文件 |
| :wq | 保存修改并退出 |
| ZZ | 快捷键,保存修改并退出 |
| :q! | 不保存修改退出 |
| :wq! | 保存修改并强制退出(文件所有者及root可使用) |

原文:https://www.cnblogs.com/yangyu-IoT/p/12757959.html