vi学习小结
时间:2011-01-04 来源:bladeching
接触linux有一段时间了,慢慢的接触到了它的很多东西,最新鲜的就是它的命令行,很多command,用过了就喜欢上了,后来就接触Vi了,Emacs也用过一段时间,感觉也很好,毕竟学习一个就够用了嘛,实验室的集群上都安装了,师兄推荐说是Vi用的广泛一点,后来就全部用Vi/Vim。
vi filename 进入命令模式
命令模式 --i a o I A O ——> 插入模式--ESC ——> 命令模式
i 在光标之前添加文本[ 常用 ]
I 在光标行首添加文本
a 在光标之后添加文本
A 在光标行末添加文本
o 在光标下插入新行
O 在光标上插入新行
命令模式 -- : ——> 编辑模式 -- ENTER ——> 命令模式
:set nu 回车设置行号[常用]
:set nonu 回车取消行号
:n 移至文件的第n行
:n1,n2d 删除n1~n2行的内容
[ vi 默认的是没有设置行号,可以修改每个用户的vi配置文件让进入vi的时候显示行号,进入用户的根目录,vi .vimrc ,后写上 set nu 保存推出,以后这个用户的vi编辑器上就会显示行号 ][常用]
命令模式
ZZ 退出
h 左移一个字符
j 下移一个字符
k 上移一个字符
l 右移一个字符
[ 如果安装了vim的话,hjki就被方向键替换了 ][常用]
$ 移至行末
0 移至行首
Enter 移至下行行尾
H 移至屏幕上端
M 移至屏幕中端
L 移至屏幕下端
G 移至文件的最后一行
nG 移至文件的第n行
x 删除光标所在的一个字符(向后删除)
X 删除光标前面的一个字符(向前删除)
dd 删除光标所在行[ 常用]
dG 删除光标所在的行到末尾的内容
D 删除光标所在处到行尾的内容
u 撤销
yy Y 复制当前行 [常用]
nyy nY 复制包括当前行的n行
p 将已经复制或被删除的行复制到当前行下
r 取代光标所在处的字符
R 从光标所在处开始替换字符,按ESC结束
s 替换光标所在处字符并进入文本输入方式
S 替换光标所在全行,按ESC结束
u 取消上一步操作
U 取消当前所有操作
:w 保存 [以下都为常用]
:w new_filename 文件另存为
:wq 保存退出
:q 不保存
:q! 强制不保存退出
:wq! 强制保存退出
/string 搜索字符串
?string 搜索字符串
n 向下查
N 向上查
:%s/旧的字符串/新的字符串/g 将旧的东西替换成新的东西
:%s/旧的字符串//g 将旧的东西删除
vi -o file1 file2 同时打开多个文件(水平排列)
vi -O file1 file2 同时打开多个人间(垂直排列)
ctrl+ww 文件之前切换
附图:
this picture from http://blog.chinaunix.net/u3/108023/showphoto.php?id=187767
相关阅读 更多 +