VI命令

本文详细介绍了VI编辑器的基本命令及其使用方法,包括如何在命令模式和输入模式间切换、常用的屏幕滚动和光标移动命令、文本编辑命令以及在提示符下使用的ex命令等。
VI命令
2007年07月18日 星期三 17:05
vi
[语法]:vi [-wn] [-R] 文件...
[说明]: vi 是一个基于行编辑器 ex 上的全屏幕编辑器,可以在vi中使用ex,ed的全部命令,vi选项中 -wn 指将编辑窗口大小置为n行,-R为将编辑的文件置为只读模式, vi工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进入输入模式下时可以编辑要编辑的文本,命令 a A i I o O c C s S R 可进入输入模式,在输入模式下按 ESC 键可推出输入模式,回到命令模式,在命令模式中敲入:命令,则可进入ex方式,在屏幕底部出现提示符 : ,此时可使用任意ex命令,屏幕底行也用来作/ ? ! 命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi 的命令集,^ 表示(CTRL)键
^B 退回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行
^D 在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至左边的自动缩进处
^E 显示屏幕底线之下的一行
^F 前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行
^G 显示当前文件名,当前行号和文件总行数,并用百分号当前行在整个文件中的位置
^H(退格) 在命令模式下,光标左移一格;在输入模式下,删去前面的字符
^I(TAB) 在输入模式下,产生一串空格
^J(LF) 光标下移一行
^L 刷新屏幕,即将屏幕重新显示
^M(回车) 在命令模式下,光标移动至下行开头在输入模式下,开辟一新行
^N 光标下移一行
^P 光标上移一行
^Q 在输入模式下,将其后的非打印字符作为正文插入
^R 刷新屏幕
^U 屏幕上滚一半,前面加数字时表示上滚的行数,此数字对以后的^D ^U 命令有效
^V 在输入模式下,将其后的非打印字符作为正文插入
^W 在输入模式下,使光标回退一个字
^Y 显示屏幕底线之上的一行
^Z 暂停编辑,退回上层Shell
^[(ESC) 退出输入模式,回到命令模式
! 暂时退出编辑,执行Shell命令
"(双引号) 用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文
$ 将光标移动到当前行尾,前加数字则表示前移行数,如2$表示移动到下一行行尾
% 将光标移动到配对的小括号()或大括号{}上去
( 退回句子开头
) 前移到句子开头
- 退到上一行第一个非空格字符
. 重复上一次改变缓冲区内容的命令
/ 模式 向前搜索模式,将光标移动到模式出现处,模式是一个正规表达式,(参看 grep)
: 在屏幕底部提示:,其后可使用ex命令
? 功能同 / ,但方向是向前查找
[[ 光标回退至前一节分界处
/ 转意符
]] 光标前移至节分界处
^(不是CTRL) 光标移至当前行第一个非空字符上
' 连续两个''表示将光标移至其移动前的位置,'后跟字母表示光标字母标记的行首(参看 m 命令)

A 在行尾插入正文,进入输入模式
B 光标回退一个字
C 替换光标后的内容
D 删除光标后的内容
E 光标前移到字尾
F 字符 在当前行向左查找指定字符
G 光标移动到其前面数字指定的行,若未指定则移动到最后一行
H 光标移动到屏幕顶行,若前面有数字,则移动到屏幕上该数字指定的行
I 在行开头插入正文
J 连接两行,若前面有数字则连接数字指定的行
L 光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该数字指定的行
M 光标移动到屏幕中线
N 使用模式查找/或?时,重复找下一个匹配的模式,但方向与上次相反,其功能同 n ,但方向相反
O 在当前行上开辟一新行
P 将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编号1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文
Q 从vi 推出进入ex命令状态
R 替换字符串
S 替换整行
T 字符 向左查找字符
U 将当前行恢复至第一次修改前的状态
W 光标移至下一个字首
X 删除光标前的字符
Y 将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有名缓冲区来保存,以后可用命令p或P将其取出
ZZ 存盘退出vi
a 光标后插入正文
b 光标回退至上一个字首
cw 替换当前字
c) 替换当前句子
dw 删除一个字
dd 删除一行
e 光标移到下一个字末
f 字符 在当前行向前查找字符
h 光标左移一格
i 在光标前插入正文
j 光标下移一行
k 光标上移一行
l 光标右移一格
m 字母 用字母标记当前行,以后可用 '字母使光标移动到当前行,(参看'命令)
n 重复上次 / 或 ? 命令
o 在当前行下开辟一新行
p 将用户缓冲区内容放到光标位置(参看P命令)
r 替换当前字符
s 用一串字符替换当前字符
t 字符 光标移动至字符前
u 取消上次操作
w 光标移至下一字首
x 删除当前字符
yw 将当前字存入无名缓冲区,前面可加"x,表示存入名字为x的有名缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p命令取出
yy 将当前行存入无名缓冲区,用法参看yw
{ 光标移动至前一段开头
| 光标移至行首,若前面加数字,则移到数字指定行的行首
} 光标移至下一段开头在:提示符下,常用命令如下:
:w 当前文件存盘
:w! 强制存盘
:w 文件 将内容写入指定文件
:w! 文件 强制写入指定文件
:x,y w 文件 将 x至 y 行写入指定文件中
:r 文件 将文件读到光标位置
:r ! 命令 将系统命令的输出读到光标位置
:q 退出编辑
:q! 强制退出
:x 与命令ZZ相同
:e 文件名 编辑另一文件
:e ! 重新编辑文件,放弃任何改变
:sh 执行sh,结束后回到编辑
:! 命令 执行命令后回到编辑
:n 编辑下一文件
:n 文件表 重新定义待编辑文件表
:set 设置 vi 的选项,例如 set nu 表示每行前显示行号,在选项前加no则表示清除该选项,例如 set nonu 表示每行前不显示行号,下面是一些常用的选项:
ai 自动缩进
aw 编辑下一文件前自动存盘
ic 查找字符串时不区分大小写
nu 每行前显示行号
sm 输入)及}时显示与之配对的( 或 {
slow 插入时延迟屏幕刷新
ws 使查找能绕过文件尾从头进行
wa 写文件之前不作对文件的检查
  
### vi 命令使用指南 vi 是 Linux 系统中一个功能强大的文本编辑器,它提供了多种模式以支持不同的操作需求。以下是关于 vi 命令的详细使用方法和相关技巧。 #### 1. vi 的基本模式 vi 编辑器有三种主要模式:命令模式、插入模式和末行模式。 - **命令模式**:启动 vi 后,默认进入命令模式,在此模式下可以执行各种编辑命令。 - **插入模式**:通过按 `i`、`a` 或 `o` 键从命令模式切换到插入模式,在此模式下可以输入或修改文本内容。 - **末行模式**:在命令模式下按下 `:` 键进入末行模式,用于执行文件保存、查找替换等高级操作[^1]。 #### 2. 文件保存与退出 在末行模式下,可以通过以下命令保存或退出文件: - `:w` 保存当前文件的内容。 - `:w newfile.txt` 将当前文件内容保存为新文件 `newfile.txt`。 - `:q` 退出 vi 编辑器,如果文件未保存会提示错误。 - `:wq` 或 `ZZ` 保存并退出。 - `:q!` 强制退出且不保存任何更改[^2]。 #### 3. 查找与替换 vi 提供了强大的查找和替换功能: - **查找文本**:在命令模式下输入 `/关键字`,例如 `/hello`,可以查找文件中包含 “hello” 的所有位置。按 `n` 键查找下一个匹配项,按 `N` 键查找上一个匹配项[^2]。 - **替换文本**:使用以下命令进行替换操作: - 替换当前行的第一个匹配项:`:s/旧内容/新内容/`。 - 全局替换所有匹配项:`:%s/旧内容/新内容/g`。例如,`:%s/linux/Linux/g` 将文件中所有的 “linux” 替换为 “Linux”。 #### 4. 快速定位与导航 vi 支持快速跳转到指定位置: - 输入行号后加 `G`,例如 `10G` 跳转到第 10 行。 - 输入 `G` 直接跳转到文件末尾。 - 输入 `gg` 返回文件开头[^2]。 #### 5. 撤销与重做 - 在命令模式下,按 `u` 键撤销上一步操作,连续按 `u` 可撤销多步。 - 按 `Ctrl + r` 重做被撤销的操作。 #### 6. 实用技巧 - 切换模式时需注意当前所处的模式,避免误操作。例如,在插入模式下输入的字符会直接显示在文本中,而在命令模式下则会被识别为命令[^2]。 - 使用 `:set number` 显示行号,方便定位和编辑[^1]。 ```bash :set number ``` --- ### 示例代码 以下是一个简单的示例,展示如何在 vi 中打开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值