VI和VIM是UNIX中常用的文本编辑工具,不支持鼠标操作,以下为常用功能的键盘操作方式:
1 进入
vi file ... 编辑一至数个文件
vi -ew file ... 阅读一至数个文件
vi -r file 恢复曾被意外中断的文件并编辑<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
2 基本模式及相互转换
命令模式
---------->AaCcIiOoRSs O...gBbDd...Zz+ -^$"'% /?: <--------
| | | |
| | | |
| V V |
| 插入模式 底线模式 |
------<ESC> <ESC><CR>------
3 命令模式
(1)光标移动
h 左移
j 下移
k 上移
l 右移
| 到首列
^ 到本行首个非空白字符
$ 至末列
25| 至25列
<CR>,+ 至下行首
- 至上行首
G 至末行首
25G 至25行首
<CTRL>f 下滚一幕
<CTRL>b 上滚一幕
<CTRL>d 下滚半幕
<CTRL>u 上滚半幕
b,B 至字首,串首
e,E 至字尾,串尾
w,W 至下字首,下串首
% 至(.)或{.}之配偶
H 至屏頂
M 至屏中
L 至屏底
Z<CR> 本行升頂
Z. 本行坐中
Z- 本行下底
mx 光标现处位置命名为x,其所在行亦称为x行
`x 至x位置
'x 至x行的行首
[[,]] 至上、下模块头
{,} 至上、下邻近空行
'',`` 至光标先前所在行之行首或其先前所在位置
(2)搜索字符
初次搜索 继续搜索
右下方向 左上方向 原方向 反方向
fx Fx ; ,
行内找字符 tx Tx ; ,
(3)小改
rx 改本字符为x
>> 行首插一平移量(相当于编辑状态的Tab键)
<< 行首删一平移量
J 合并下一行
~ 英文字母改变大小写
(4)剪贴
x 删本字符
dd 删一整行
yy 存一整行
p 贴于右下
"xdd 删本行存入x缓冲区
"xyy 存本行入x缓冲区
"xp 取x缓冲区内容贴于右下
X 删左字符
D 删至行尾
Y 存一整行
P 贴于左上
("x有名缓冲区,用户指定)
(5)转换到插入模式
i 插于左
a 插于右
o 下开行
cc 先删去整行
s 先删去一个字符
r 逐字替换
I 插于行首
A 插于行尾
O 上开行
C 先删至行尾
S 先删去整行
(6)其他
. 重复修改命令
u 取消前次变化
U 整行复原
<CTRL>g 显示本行在文中的位置
<CTRL>r 刷新屏幕
ZZ 存盘退出vi
(7)变化
大部分命令前可加数字,以示该命令所做动作的重复次数。
如3h,12dd,5j,4x,6X,13s,7cc,4>>,2e,3+,4-,...等等。
dd,yy,cc,<<和>>等双字符命令的第二个字符可用适当
的定位命令替换,以改变并限定该命令所晗动作的作用范围。
如db,dG,d1G,ce,c^,c3-,cfx,y'x,c%,>'x,<L,...等等。
4 插入模式
<DEL>或<BS> 删一字符
<CTRL>t 行首插一平移量
<CTRL>d 行首删一平移量
<CTRL>u 删至行首
<CTRL>c 拷贝选中文字
<CTRL>v 粘贴已拷贝文字
<CTRL>z 取消前次变化
<CTRL>y 重做前次取消的变化
<ESC> 结束插入
5 底线模式
(1)搜索字符串
初次搜索 继续搜索
右下方向 左上方向 原方向 反方向
/str ?str n N
文内找串 /\<str\> ?\<str\> n N
(\<,\>分别表示左、右不连,可单独使用)
(2)行命令
:引导行命令,在底线输入一条完整的行命令
<CR>或<ESC> 执行命令,返回命令模式
多数行命令需用行号说明本命令作用范围,范围说明示例
3 第3行 3,12 第3行至第12行
. 本行 .+5 自本行下数5行
$ 末行 $-6 自末行上数6行
% 全文,即1,$之简写
行内特殊位置标志
^ 行首 $ 行尾
常用行命令示例
:25 至25行
:.,$s/str1/str2/g 本行至末行,全部str1换为str2
:%s/str1/str2/gc 全文中str1换为str2,末尾c表示需要逐一确认
:.,.+5s/^/#/ 本行至其下第5行,行首均插入#
:.-5,.s/;$// 本行上第5行至本行,行尾若有;均删之
:kx 命名本行为x行
:'x,.s/str//g 删去本行至本行中全部str
:s/\<str\>//g 删去本行内全部左右不连的str
:r file 读入文件file,插域第0行下,即第一行上
:.,$d 删去本行至末行
:u 取消前次变化
:f [file] 显示正在编辑的文件名,或将其改名为file
:n 编辑下一个文件,本命令仅用于编辑多个文件
:vi file 编辑另一个文件file
:vi # 编辑先前编辑的文件
:w [file] 存盘,可另指定存盘文件名file
:wq [file] 存盘并退出vi,可另指定存盘文件名file
:q或q!
文章评论(0条评论)
登录后参与讨论