SSH常用 vi 命令整理

在使用Linux主机时,有时候会用到的一些vi命令。

编辑模式:

$	指令	说明
$	i	在游标位置進入编辑模式
	I	在游标行的第一个非空白字元進入编辑模式
$	a	在游标位置后進入编辑模式
$	A	在游标行的最后一个字元進入编辑模式
$	o	向下新增一行,并进入编辑模式
	O	向上新增一行,并進入编辑模式
	cc	刪除游标行,并進入编辑模式
$	[ESC]	取消指令或退出编辑模式

光标移动:

$	指令	说明
$	gg	移到第一行
$	G	移到最后一行
$	行数 → G	移动到第 n 行
	0	移动到该行最前面
	$	移动到该行最后面
	字数 → [Space]	向右移动 n 个字元
$	行数 → [Enter]	向下移动 n 行

标记和复制:

$	指令	说明
$	v	开始字串标记
$	V	开始行标记
$	v → [Ctrl]-V	开始区块标记
$	d	刪除标记的內容
$	y	复制标记的內容
$	yy	复制游标行
$	yG	复制游标行到最后一行
$	y1G	复制游标行到第一行
$	y$	复制游标處到最后一个字元
$	y0	复制游标處到第一个字元
$	p	在下一行貼上复制或刪除的內容
$	P	在上一行貼上复制或刪除的內容
$	[Ctrl]-R → 0	在下一行貼上复制或刪除的內容,適用於编辑模式及指令行

搜索和替换:

$	指令	说明
$	/搜索字串	向下搜索字串
$	#		将游标移到字串上,直接按 “*” 也可以做向下搜索
$	?搜索字串	向上搜索字串
$	:set ic		搜索時不分大小寫
$	:set noic	搜索時要分大小寫
$	n		继续下一个搜索结果
$	N		继续上一个搜索结果
$	:起始行,终止行s/搜索字串/取代字串/gic	从第 n 行到第 n 行取代字串 (后面的 g: 整行全部, i: 不分大小写,c: 询问)
$	:1,$s/搜索字串/取代字串/gic	全部取代字串 (后面的 g: 整行全部, i: 不分大小寫, c: 询问)

刪除:

$	指令	说明
$	dd	刪除游标行
$	dG	刪除游标行到最后一行
$	d1G	刪除游标行到第一行
$	d$	刪除游标處到最后一个字元
$	d0	刪除游标處到第一个字元

档案功能:

$	指令	说明
$	:w	存档保存 (加 ! 表示强制存档)
$	:w	档案名称	另存新档
$	:wq	存档并退出 vi
$	:e	档案名称	编辑其它档案
$	:e!	还原至档案编修前的状态
$	:r	档案名称	读入档案內容,并加到游标行的后面
$	:n	切换到下一个开启的档案
$	:N	切换到上一个开启的档案
$	:set nu	显示行号
$	:set nonu	取消行号显示
$	:files	列出所有开启的档案

窗口分割:

$	指令	说明
$	:new	新增水平视窗
$	:new	档案名称	新增水平视窗,并在新增的视窗载入档案
$	:vnew	新增垂直视窗
$	:vnew	档案名称	新增垂直视窗,并在新增的视窗载入档案
$	[Ctrl]-W → [方向键]	切换视窗
$	:o nly	仅保留目前的视窗

其它:

$	指令	说明
$	J	将游标行与下一行合并
$	u	还原指令
$	[Ctrl]-R	重做指令
$	.	重覆上一个指令
$	!	执行 linux 指令,并显示执行结果
$	:q	退出 vi (加 ! 表示强制退出)