vi命令汇集

来源:互联网 发布:柳州 广电网络缴费 编辑:程序博客网 时间:2024/05/22 00:45

前言

起初,想着写个全面的vi教程,但是总是由于vi的命令较多较杂而不了而止。
后来,想着即使写出一个全面的vi教程,也未必有用。因为那时教程肯定很长很长,而对于很长的文章,大部分人是没有耐性去把它读完的。
于是,我每次写一些vi的命令汇集,每次重复一些上次提及到的,从而达到温故而知新。

本文与tiankonguse的文章保存同步,若想访问最新文章,请访问这里

(一)vi的基本概念


vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)


1.命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。


2. 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3. 底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……

(二)基本操作


1.命令行模式

i 进入插入模式,位置在光标处
a 进入插入模式,位置在光标的下一个位置
o 进入插入模式,插入新的一行
h 光标左移 
j 光标下移 
k 光标上移
l 光标右移
[ctrl] + b 屏幕往后移动一页 
[ctrl] + f 屏幕往前移动一页
[ctrl] + u 屏幕往后移动半页
[ctrl] + d 屏幕往前移动半页
g 光标定位在文章最前,显示仍为目前行
gg 光标定位在文章最前,显示为文章最前
G 光标定位在文章最后,显示仍为目前行
GG 光标定位在文章最后,显示为文章最后
g[lineNumber] 跳转到第lineNumber行,例如 g12 ,跳到第12行
G[lineNumber] 同g[lineNumber]
^ 移动到光标所在行的行首
$ 移动到光标所在行的行尾
w 光标跳到下个字的字首
e 光标跳到下个字的字尾
b 光标跳到上个字的字首
x 删除光标所在的字符 
X 删除光标所在字符的前一个字符
d[cmd] 根据命令删除字符,有d^,d$,dw,de,db,dd
dd 删除光标所在的行
y[cmd] 根据命令复制字符,有y^,y$,yw,ye,yb,yy
yy 复制当前行
c[cmd] 根据命令删除字符,并进入插入模式,有c^,c$,cw,ce,cb,cc
cc 删除当前行并进入插入模式
p 在光标所在位置粘贴
u 撤销
[number][cmd] 执行number次cmd命令,例如: 3dd,从光标起删除三行
r 替换光标所在位置的字符,替换后回到命令模式
R 替换光标所在位置的字符,替换后光标移到下一个位置,可以继续替换,按[ESC]结束。


2.底行模式(last line mode)

:w filename 另存为
:q 退出
:wq 保存并退出
:q! 强制退出
:[lineNumber] 跳转到第lineNumber行,例如 :12 ,跳到第12行
:set nu 显示行号
:set nonu 隐藏行号

3.插入模式


[ESC] 从插入模式切换到命令行模式。

0 0