在使用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 → [方向键]切换视窗
$😮 nly仅保留目前的视窗
其它:
$指令说明
$J将游标行与下一行合并
$u还原指令
$[Ctrl]-R重做指令
$.重覆上一个指令
$!执行 linux 指令,并显示执行结果
$:q退出 vi (加 ! 表示强制退出)