总想写点东西,以证明自己的存在给将来。
1 screen
a 通过ports安装screen
b $screen
c $vi file1.c
d CTRL+a c (表示同时按住CTRL和a,松开后再单击c,以下同)新建一个窗口
e $vi file2.c
f 光标移动到起始点
g CTRL+a [进入copy模式
h 单击空格标志起始点
i 通过hjkl选择范围
j 单击空格标志结束点
k CTRL+a p进入上一窗口
l 单击i进入insert模式
m CTRL+a ]插入当前位置
2 插入
a $vi file1.c
b 移动光标至插入点
c :r file2.c
适合把一个文件插入另一个文件的情况
3 window
a $vi file1.c
b :split file2.c
c CTRL+w j/k在上下窗口切换
可以在您的~/.vimrc中加入如下2行:
map j
map k
这样可以通过CTRL+j/k在上下窗口切换
也可以用如下2行:
map j_
map k_
实现CTRL+j/k切换窗口并使当前窗口占满屏幕
4 buffer
a 通过vim打开多个文件(可以通过ctags或者cscope)
b :ls查看当前打开的buffer(文件)
c :b num切换文件(其中num为buffer list中的编号)
可以用到的命令有
:bn -- next buffer in the buffer list
:bp -- previous buffer in the buffer list
:b# -- previous buffer you was in
可以在您的~/.vimrc中加入如下3行:
map :bn
map :bp
map :b#
实现左右方向键切换到上或下一个buffer,按空格在两个buffer间切换
典型的应用场景是:同时打开c文件和h文件,然后用空格切换
5 mark
a $vi file1.c
b 移动光标至您关注的位置,单击mR
c :e file2.c
d 移动光标至您关注的位置,单击mW
e 然后就可以通过'R/'W在文件间切换
m[a-z]: lowercase marks, valid within one file
m[A-Z]: uppercase marks, also called file marks, valid between files
该方法很适合阅读源码和3个以上文件编辑的情况
方法3,4,5,因为都在同一个vim中,您可以使用yy,yw,y'a,dd,dw,d'a等和p实现copy和粘贴
另外,当您离开一个已修改但未保存的文件时,vim会提示您保存,可以通过如下命令
:set autowrite
实现让其自动保存。