vi的自学报告
vi是所有的Unix Like系统都自带的编辑器,而其他文本编辑器则不一定存在,所以我们用的较多的还是vi。vi具有程序编辑的能力,能以字体的颜色来辨别语法的正确性。而且它虽然历史悠久,但功能丰富,其中由它发展而来的vim则更是能力强大,如代码补全、编译以及错误跳转等等。所以我就在这里介绍一下vi/vim的使用。
- 进入vi/vim
只要在命令行输入vi/vim [filename]就能进入vi/vim,其中文件名并非必要。如果文件存在此目录,就会直接编辑已存在的文件;如果文件不存在,就由最后vi/vim的使用者是否决定保存了。vi/vim其实共分为三种模式,这时进入的是第一种模式:命令模式。 - 命令模式
这时用户从键盘键入的输入都会被当做命令。常用的命令有:
i, I | 这时用户会进入输入模式,i指直接能在光标所在位置开始输入;I指从当前行所在行的第一个非空格字符处输入。 |
---|---|
a, A | 用户也会进入输入模式,a指在光标位置的下一个字符开始输入;A指从当前行行位输入。 |
o, O | 进入输入模式,o指在光标所在行的下一行处输入新的一行;O则指在上一行处输入新的一行。 |
r, R | 进入取代模式,r只由输入取代当前光标所在字符;R是一直取代下去,backspace则恢复。 |
x | 删除当亲光标所在的字符。 |
: | 进入底线命令模式,在最底一行输入命令。 |
k/↑ | 光标向上移动一个字符。 |
j/↓ | 光标向下移动一个字符。 |
h/← | 光标向左移动一个字符。 |
l/→ | 光标向右移动一个字符。 |
后面的k、j、k、l如果在前面加上数字,就能跳转指定数字的字符。
- 输入模式
进入输入模式时,最底下有个Insert字样。输入模式下,有正常的文本编辑器的功能,什么Enter,Delete该有的功能都有。除此之外,还有些我认为比较常用的命令:
Home/End | 光标移到行首/行尾。 |
---|---|
Page Up/Page Down | 上/下翻页。 |
ESC | 退出输入模式,切换到命令模式。 |
- 底线命令模式
底线命令模式是指只在最后一行输入命令的模式,同时也意味着这个文件已经编辑完成(当然,如果你好像编辑的话,只要删掉在命令模式下输入的冒号就行了)。所以这里的命令操作都是保存或者退出的命令。
q | 退出程序 |
---|---|
q! | 强制退出程序,修改不会保留。 |
w | 保存文档。 |
w! | 强制保存文档,即使文件是”只读”的,但这就要看的你的权限了,无法保证一定能保存文档。 |
wq | 保存文档后退出。 |
wq! | 强制保存文档后强制退出。 |
ZZ | 大写的Z,如果文件没修改,就直接离开,否则保存后离开。 |
w filename | 相当于另存为(当然如果你是用vi/vim直接进来的的,不是修改现有文档,那就可以保存文档) |
我所列举的这些其实并不全,vi/vim其实还有很多非常好用的功能,小伙伴如果需要的话再去查看吧,vi/vim的话,使用方法还是很容易搜得到的。
最后给大家分享一点vi/vim的 强化:
先在命令行下输入sudo vim /etc/vim/vimrc,来修改vim的配置文件。
然后文件中有一句:syntax on,指语法高亮,如果被注释了,就请删掉注释。
最后在文件末尾加入下面的语句,让你的vi/vim更加强大:
set nu //在左侧显示行号
set nonu //取消行号
set tabstop=4 //tab 长度设置为 4
set nobackup //覆盖文件时不备份
set cursorline //突出显示当前行
set ruler //在右下角显示光标位置的状态行
set autoindent //自动缩进
inoremap ( ()i //自动补全小括号
inoremap [ []i //自动补全中括号
inoremap { {}i //自动补全大括号
inoremap < <>i //自动补全尖括号,这个其实不太好,因为大于号与小于号还是比较常用的,这时自动补全就不太好