vim之buffer/window/tab
buffer
#显示buffers
:ls
:buffers
:files
#显示下一个buffer
:bn
:bNext
#显示上一个buffer
:bp
:bprev
#两个buffer之间快速切换
ctrl+^
ctrl + o #切换到旧的
ctrl + i #切换到新的
#跳转到指定buffer
:b+number # number由:ls 查来 filename也是由:ls查 filename可以用tab自动完成
:b + filename
:buffer + number
:buffer + filename
#新建buffer
:e filename
:e filename|read !ls #新建并从外部命令取出内容 在bash下还可以 vim <(git log) 快速把创建buffer
#删除buffer
:bdelete filename
:bd filename
#设置一下:set hidden, 在buffer修改时 ,切换buffer不会提示确认,默认总是保存
window
#进入vim后,默认已经有一个window, window是用来看buffer的视口,一个vim进程有多个buffer,也可能多个window, 也可以多个window同时观察一个buffer
#打开一个水平显示的新窗口
:split
:split filename
:sp
:sp filename
:new filename
ctrl+w ,s
#打开一个垂直显示的窗口
:vsplit
:vsplit filename
:vsp
:vsp filename
:vnew filename
ctrl+w,v
#在窗口中切换焦点
ctrl+w , h|j|k|l|ctrl+w
#调整当前窗口位置
ctrl+w, H|J|K|L
#退出window
:quit
:q
#保存
:w
#保存全部
:wa
#保存全部并退出
:waq
tab
tab之于window 如果window之于buffer, tab和window都只是布局而已,真正影响到文件保存的只有buffer, 至少会有一个window,但到tab可有可无
tabnew filename #打开一个tab
tabedit #当前window 创建tab
ctrl+w ,T #当前window从原tab分离出来,创建新tab
windo bd 关闭当前tab的所有缓冲区
windo xx 举一反三