vi编辑器有几种模式?vi编辑器常用命令详解
命令模式
用户使用vi/vim命令默认是进入了命令模式,在命令模式下敲击键盘动作会被Vim识别为命令,而非输入字符。比如你想要编辑文本,启动vim进入命令模式后,按下i即可切换到编辑模式。
命令模式基本命令
:切换末行命令模式,在最底一行输入命令
↑ ↓ ← → 移动光标位置
行间跳转:
G 最后一行
gg 第一行
1G 第一行
10G 跳转到第十行
删除命令:
x 删除当前光标所在处的字符
d 删除,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dw 下一个单词的词首
de 当前或下一个单词的词尾
db 当前或上一个单词的词首
复制命令:
yy 复制行
#yy 复制多行
粘贴命令:
p 缓冲区寸的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
行内:
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
替换命令:
r 只替换光标所在处的一个字符
撤销更改:
u 撤销最近的修改,相当于Windows中的ctrl+z
#u 撤销之前多次更改
U 撤销光标落在这行后所有此行的更改
. 重复上一次操作
#. 重复上一次操作#次
~ 转换大小写
编辑模式
在命令模式下按i就进入了编辑模式,进入编辑模式后可以在末行看到--INSERT--,在输入模式中,日常命令和按键有:
i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I 行首插入命令
o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a 在当前光标所在位置之后插入随后输入的文本
A 行尾插入命令
字符键+Shift 输入字符
Enter 换行
Backspace 删除光标前一个字符
Del 删除光标后一个字符
↑ ↓ ← → 在文本中移动光标
Home/End 移动光标到行首/行末
Page Up/Page Down 上/下翻页
Insert 切换光标为输入/替换模式,光标将变为竖线/下划线
Esc 退出输入模式,切换到命令模式
末行模式
在命令模式下按:就进入了末行模式,英文的冒号哦
末行模式可以输入单个或多个字符的命令,可用的命令非常多,常用的命令有如下:
:q 退出不保存
:w 保存文件
:wq 保存文件并退出
:w 新文件名 另存为新文件
:wq :zz :x 保存并退出
:q! 强制退出不保存
:e 其他文件名(如果已修改需要加e!) 打开新文件进行编辑
:r 其他文件名 在当前文件中读入其他文件内容
# 具体第#行,例如2表示第2行
#,# 左侧#表示起始行,右侧#表示结尾行
#,+# 左侧#表示起始行,加上右侧#表示行数,例如2,+3表示2-5行
. 当前行
$ 最后一行
.,$-1 当前行到倒数第二行
% 全文,相当于1,$
查找并替换
格式: 范围 s/要查找的内容/替换的内容/g
说明:
要查找的内容:可使用基本正则表达式模式
替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查
找到的整个内容
修饰符:
i #忽略大小写
g #全局替换,默认情况下,每一行只替换第一次出现
c #全局替换,每次替换前询问
查找替换中的分隔符/可替换为其它字符,如:#,@
范例:
s@/etc@/var@g
s#/boot#/#i
显示行号:set number,简写 set nu
取消显示:set nonumber, 简写 set nonu
自动缩进
启用:set autoindent,简写 set ai
禁用:set noai
加密:
启用: set key=要设置的密码
禁用: set key= (什么都不写)
设置标尺
启用:set cursorline,简写 set cul
禁用:set nocursorline,简写set nocul
set帮助:set all
以上就是关于vi编辑器的分享,感谢您的阅读,服务器大本营助您成为更专业的服务器管理员!