linux vi编辑器

vi编辑器是Linux系统下最基本的编辑器,工作在字符模式下。由于不使用图形界面,因此Vi的工作效率非常高,且它在系统和服务管理中的功能是带图形界面的编辑器无法比拟的。

vi编辑器有三种模式:命令模式(command mode)、插入模式(insert mode)和底行模式(last line mode)

命令模式:

   使用vi编辑器打开文件后,默认进入命令模式。在该模式下可以通过键盘控制逛变得移动以及文本内容的复制 粘贴 删除等。
 1. 光标移动:

光标移动操作
级别 操作符 说明
字符级 “左键”或字母h 使光标向字符的左边移动
“右键”或字母l 使光标向字符的右边移动
行级 “上键”或字母k 使光标移动到上一行
“下键”或字母j 使光标移动到下一行
符号$ 使光标移动到当前行尾
数字0 使光标移动到当前行首
单词级 字母w 使光标移动到下一个单词的首字母
字母e 使光标移动到本单词尾字母
字母b 使光标移动到本单词首字母
段落级 符号} 使光标移动到段落结尾
符号{ 使光标移动到段落开头
屏幕级 字母H 使光标移动到屏幕首部
字母L 使光标移动到屏幕尾部
文档级 字母G 使光标移动到文档尾行
n+G 使光标移动到文档的第n行

 3. 删除

删除操作
操作符 说明
字母x 删除光标所在的单个字符
字母dd 删除光标所在的当前行
n+dd 删除包括光标所在行的后面n行内容
d+$ 删除光标位置到行尾的所有内容


 4. 复制和粘贴

复制、粘贴操作
操作符 说明
yy 复制光标到当前行
nyy 复制包括光标所在行的后面n行内容
ye 从光标所在位置开始复制直到当前单词结尾
y$ 从光标所在位置复制到当前行结尾
y{ 从当前段落开始位置复制到光标所在位置
p 将复制内容粘贴到光标所在位置

 

几种常见命令:

u:撤销

.:重新执行上一次命令

J:合并两行内容

r:快速替换光标所在字符

插入模式

只有在插入模式下,才能对文件内容进行修改操作,此模式下的操作与Windows记事本的操作类似。插入模式与低行模式之间不能直接转换。

底行模式

底行模式可以对文件进行保存,也可进行查找,退出编辑器等操作

① :set nu。设置行号,仅对本次操作有效

② :set nonu。取消行号,仅对本次操作有效

③ :n。使光标移动到第n行

④ :/xx。在文件中查找xx,若查找结果不为空,可以使用n查找下一个,使用N查找上一个

⑤ 底行模式下还可以进行内容替换:

内容替换
操作符 说明
:s/被替换内容/替换内容/ 替换光标所在行的第一个目标
:s/被替换内容/替换内容/g 替换光标所在行的所有目标
:%s/被替换内容/替换内容/g 替换整个文档中的所有目标
:%s/被替换内容/替换内容/gc 替换整个文档中的所有目标,且没替换一个内容都有相应的提示

 

⑥ 操作完毕后,如需保存文件或退出编辑器,可先使用Esc进入底行模式,再使用以下操作符完成相应操作

操作符 说明

:q

退出vi编辑器
:w 保存编辑后的内容
:wq

保存并退出vi编辑器

:q! 强行退出vi编辑器,不保存对文件的修改 
:w! 对于没有修改权限的用户强行保存对文件的修改,并且修改后文件的所有者和所属组都有相应的变化
:wq! 强行保存文件并退出vi编辑器

模式切换

命令模式转换至插入模式:插入命令           插入模式转换至命令模式:Esc

命令模式转换至底行模式:“: ”                  底行模式转换至命令模式:自动切换

1)命令模式和插入模式之间的转换:

     按键“i”可直接进入插入模式,此时内容和光标位置与命令模式相同

切换至编辑模式
操作符 说明
a 光标向后移动一位进入编辑模式
s 删除光标所在的字母进入编辑模式
o 在当前行之下新起一行进入编辑模式
A 光标移动到当前行末尾进入编辑模式
I 光标移动到当前行行首进入编辑模式
S 删除光标所在行进入编辑模式
O 在当前行之上新起一行进入编辑模式

 

     Esc可直接返回命令模式

2)命令模式和底行模式之间的转换

   在命令模式输入:或者/,可进入底行模式。若从底行模式返回命令模式,可使用Esc键。若底行不为空,可连续按两次Esc,清空底行并返回命令模式

设置

如何将底行模式下对vi编辑器的设置长久有效?

[mjj@localhost ~ ]$vi .vimrc

.vimrc 为隐藏文件

设置 说明
set number 设置行号

set autoindent

自动对齐
set smartindent 智能对齐
set showmatch 括号匹配
set tabstop=4 使用Tab键时为4个空格
set mouse=a 鼠标支持
set cindent 使用c语言格式对齐

 

 

 

 

你可能感兴趣的:(linux vi编辑器)