练习vim按键的小游戏:http://vim-adventures.com/
一.vi(visual interface)与vim(vi improved)
文本编辑器:
基于命令行:nano,vi,joe,Emacs等
基于视图:gedit,geany等
因为大多Linux都默认安装vi文本编辑器,很多软件的编程接口都会主动调用vi,所以学习vi是必要的。
vim是vi的高级版本,支持语法高亮,即用颜色或底线等方式来显示一些特殊的信息。
二.vi工作模式
三种模式:
一般模式:以vi打开一个文件就直接进入一般模式了。此模式可以:移动光标,删除,复制,粘贴
编辑模式:在一般模式中以i,I,o,O,a,A(插入Insert),r,R(替换Replace)来进入编辑模式。此模式是对文本进行编辑命令行模式:在一般模式中以‘:’,‘?’,‘/'进入命令行模式。此模式可以读取,保村字符,离开vi。
三.按键
一般模式“:
光标移动
h / ←
:
光标向左移动一个字符
j / ↓ : 光标向下移动一个字符
j / ↓ : 光标向下移动一个字符
k / ↑
:
光标向上移动一个字符
l / →
:
光标向右移动一个字符
补:
n【hjkl】 :
移动n个字符
eg:20j:光标向左移动20个字符
Ctrl+f :屏幕向下移动一页(相当于【PAGE DOWN】)
Ctrl+b :屏幕向上移动一页(相当于【PAGE UP】)
Ctrl+b :屏幕向上移动一页(相当于【PAGE UP】)
0 / [HOME] :数字”0“,移到光标行首
$ / [END] :移到光标行尾
G
:
移动到文件最后一行
NG
:
移动到第n行
gg : 移动到文件第一行(相当于1G)
n : 光标向下移动n行
gg : 移动到文件第一行(相当于1G)
n : 光标向下移动n行
查找
/word
:
向下查找名称为word的字符串
?word
:
向上查找名称为word的字符串
n
:
重复前一个操作
N
:
反向重复前一个操作;(/word ,按下N然后向上 查找word字符串)
替换
:n1,n2s/word1/word2/g
:在n1与n2行之间查找word1字符串,用word2字符串替换
:1,$s/word1/word2/g
:在第一行与最后一行之间查找word1字符串,用word2字符串替换
:1,$s/word1/word2/gc
:在第一行与最后一行之间查找word1字符串,用word2字符串替换,替换之前提示用户是否确认(confirm)替换
删除
x / [DEL]
:
向后删除一个字符
X / [Backspace] :
向前删除一个字符
nx
:
向后删除n个字符
dd
:
删除光标所在行
ndd
:
删除光标所在的向下n行
d1G
:
删除光标所在到第一行的数据
dG
:
.....
d$
:
.....
d0
:
.....
复制
yy
:
复制光标所在的那一行
nyy
: .....
y1G
:
删除光标所在到第一行的数据
yG
:
.....
y$
:
.....
y0
:
.....
粘贴
p
:
将已复制的内容粘贴在光标所在的下一行
P :将已复制的内容粘贴在光标所在的上
一行
其他
u
:
复原前一个操作
Ctrl+r
:
重做上一个操作
.
:
重复前一个操作
一般模式到编辑模式
i
/
a
/
o
:
进入插入模式
r
:
进入替换模式
【Esc】
:
退出编辑模式到一般模式
一般模式到命令行模式
:w
:
将编辑的数据写入到硬盘文件中
:q
:
退出vi
:q!
:
不保存退出vi
:wq
:
保存后退出
:wq!
:
强制保存后退出
:w 【filename】
:
另存为文件filename
:r 【fielname】
:
读入filenaem文件的数据(即将filename的内容加到光标所在行后面)
:set nu
:
显示行号
:set nonu
:
不显示行号
四.vim文件的恢复
当我们在用vim进行编辑时,系统会在被编辑的目录下生成一个.filename.swp的暂存文件。
若正常结束则文件会自动消失,若vim异常中断,则暂存文件会被保留下来。
这个暂存文件保存了你对文件所有的操作。
当再次编辑原文件的时候,会进入如下界面
解决方案如图最后一行所示:
[O](Open Read-Only)
:
打开此文件为只读文件
[E](Edit)
;
编辑文件,并不会载入暂存文件
【R】(Recovery)
:
恢复文件,vim会载入.swp文件的内容。但.swp文件不会自动删除,需要你手动删除,否则每次进去都是提示警告消息。
【Q】
:
退出
【D】
:
删除暂存文件
五.块选择(visual Block)
以长方形的形式选择数据,而不是一行一行的选择数据
进入文件后按下
Ctrl+v
;块选择
注意:
首先光标移动到块首,按下Ctrl+v后移动块尾即为选择完毕。
退出直接再按一次Ctrl+v即可。
六.多文件编辑
实现:
vim filename1 filename2 ...
这样就可以实现同时打开多个文件
文件切换:
:n
:
编辑下一个文件
:N
:
编辑上一个文件
:files
:
列出目前所有打开的文件
作用:需要多文件之间进行交互的时候
七.多窗口
实现:
:sp
:打开一个新窗口显示此文件
:sp 【filename】
:打开一个新窗口显示文件filename
窗口切换:
Ctrl+w+↓/j
:
移动到下一个的窗口
Ctrl+w+↑/k
:
移动到上一个的窗口
:q
:
退出
作用:文件数据需要对照时。
八.环境设置
~/.vimrc,~/.viminfo
/etc/vimrc 是整体配置文件,不建议修改。
~/.vimrc (~代表用户名) 可以配置当前用户vim环境变量;文件默认不存在,需手动创建
~/.viminfo
会记录你所有操作的vim行为。文件自动产生。