Linux下的Vi编辑器的简单用法
Tag:个人文章,以前发布在:Linux下的Vi编辑器的简单用法
本文系以前我学习vi的笔记的一点整理,曾发布于百度空间和分子模拟论坛,现重新整理发布出来,如有转载,请注明出处,谢谢。
──by realasking
vi编辑器的模式
三种模式
命令模式,编辑模式,行编辑模式
模式切换
进入vi即进入了命令模式,切换到行编辑模式按冒号,
进入编辑模式按i键,从后两种模式退出到命令模式按Esc键
vi的启动,保存,放弃保存,放弃保存并退出
启动
vi filename
即可打开一个文件进行编辑,如果filename
不存在则新建filename
转到另一个文件
假设为filename2
,进入行编辑模式,执行:ex filename2
保存
需要进入行编辑模式,在任意模式下按Esc
,然后输入:w
即可保存
退出
进入行编辑模式,然后按q
键,即任意模式下按Esc
,然后输入:q
保存并退出
:wq
放弃保存并退出
:q!
,其中!
表示强制执行
放弃修改
:U
,放弃所有的修改
光标控制:
大多需要在命令模式下执行。
光标的上下左右移动
现代的vi可以使用方向键完成,同时保留了传统的设计,即k
表示光标上移,j
表示光标下移,h
左移,l
右移
不过在编辑模式下方向键仍然可以用来移动光标
光标按一定的分隔方式移动
(1)到文首: gg
, 到文末:G
(2)到屏幕头:H
, 到屏幕中间:M
,到屏幕末尾:L
(3)向前翻页(forward):Ctrl+f
, 向后翻页(back):Ctrl+b
(4)前翻半页:Ctrl+d
, 后翻半页: Ctrl+u
(5)光标移动到上一段开头:{
,光标移动到下一段开头:}
(6)光标移动到上一句开头:(
,光标移动到下一句开头:)
(7)光标到行首:0
, 光标到行首第一个字符:^
,光标到行末:$
,全文:%
(8)光标到下一个单词开头:w
,光标到前一个单词开头:b
编辑操作:
均需要进入行编辑模式
块操作定义
在插入块开始处按Ctrl+v
,再把光标移到结束处就可以选定块,
需要注意的是块操作不是以行为单位进行选择的。
标记操作
可以设置a~z个标记,标记操作的做法是mx
,其中x
为a~z
中的一个,
标记的引用是:
`x
x
为a~z
中的一个
操作结果放入寄存器
"寄存器名
操作,可以使用的寄存器名为英文字母和数字,如"ayy
,即复制本行内容到寄存器a
行标的打开和关闭
打开:set number
关闭:set nonumber
加密
即:X
插入
(1)从光标处插入:i
,然后进入编辑模式
(2)从光标后插入:a
,然后进入编辑模式
删除
删除:d
,默认是删除一行。
删除当前字符:x
,命令模式下删除当前光标所在位置字符
查找
(1)查找文件中的字符串:/字符串
(2)继续查找:/
(3)继续查找(向后back):N
替换
s
,默认是替换当前字符,一般和查找联合使用,
格式是:
范围,次数s/查找内容/新内容/
移动:m
进入改写模式:R
撤销修改
u
,撤销前一次的修改
复制,剪切和粘贴:
复制:y
粘贴
(1)光标前粘贴:p
(2)光标后粘贴:P
(3)粘贴到某行之后:t
命令的复合使用:
按:进入行编辑状态,然后按 次数,操作
的形式进行组合。
比如删除从光标起往前数5个单词,就是:5dw
,往下面删除9行(含当前行)就是:9dj
,
把光标所在处的字母替换成2个i,就是:2ri
,复制5行就是:5yj
,把第10行复制到第1行
之后:10t1
,把文件第1行到第9行的a替换成b:1,9s/a/b/
另:调用系统命令:!命令
即可