vi的使用
首先vi分成三个形式:一般模式,编辑模式,命令模式
基础使用请看:http://cn.linux.vbird.org/linux_basic/0310vi_2.php
一般模式操作
行跳跃:
n<enter>
:跳到向下n行
行定位:G
nG
:去到第n行gg
:去第一行G
:去最后一行
字符操作(行内操作):0,$,x,X
n<space>
:这行此光标向后跳n个字符0
:改行首$
:改行尾x
:删除后面一个字符delX
:同backspacenx
:连续向后删除 n 个字符
删除操作:
- 行删除:
d
dd
:删除该行ndd
:删除后面n行d0
:光标处删除到行首d$
:光标处删除到行尾
- 字符删除:
x
x
:删除后面一个字符delX
:同backspacenx
:连续向后删除 n 个字符
复制操作:y
yy
:复制该行nyy
:复制向下n行y0
:光标处复制到行首y$
:光标处复制到行尾
黏贴操作:p
p
:黏贴到光标下一行开始P
:黏贴到光标上一行开始
撤销、重做:
- 撤销:
u
- 重做:
<ctrl>+r
.
:重复前一个动作
搜索与替代
注意,最后不加c时,直接全部给你换完了,不会提示
一般模式进入编辑模式操作
i,l ,a,A,o,O,r,R
都常用??,我觉得最基础的是i,然后是o/O。有些时候R也可以。
命令模式操作
- 快速退出:
ZZ
- 另存为:
:w filename
- 开启行号:
:set nu
- 回到文档初始状态:
:e!
特别注意,在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。
速记图:
vim的额外功能
区块选择
就是选中
的方法,有行选中,字符选中和矩形选中。选中后可以进行复制和删除。
上述的nyy
只能进行行复制。
多档案编辑
使用vim hosts /etc/hosts
打开多个文件。注意,这里要一次性打开,不能使用<ctrl>+z
的方式打开。
用于从别的文件复制东西进来。
多窗口功能
:sp
:多开一个当前文件的窗口:sp filename
:多开一个指定文件窗口<ctrl>+w+↑,<ctrl>+w+↓
:跳到上一个窗口/下一个窗口
注意
- 可以使用 iconv 进行档案语系编码的转换
- 使用 dos2unix 及 unix2dos 可以变更档案每一行的行尾断行字符。