vim自带一个目录浏览器,使用命令
:E
就可以调出来,实际上就是浏览器的名字就是"网络读写"netrwvim也自带了 补全功能, 启动键是 "ctrl_N". 如果有多个补全(开头的字符相同的多个), 则会显示^N^P 还有更多的补全在 ctrl_x中(6种):
ctrl_x 和 ctrl_D 是宏定义补全
ctrl_x ctrl_f 是文件名补全(file)
ctrl_x ctrl_] 是标签补全
ctrl_x ctrl_v 表达式补全
ctrl_x ctrl_I 关键字补全
ctrl_x ctrl_L 是 整行补全- 在gvim中 , 分屏的几种方法:
- 直接用原生命令
:sp :vsp
- 用窗口操作:
^W s水平分割, ^W v是垂直分割
- 在NerdTree中, 使用
is
分割i-水平分割, s-垂直分割
- 要两个分屏同步滚动, 要在两个窗口中, 都使用命令
:set scb
即scroll bind 滚动绑定"铁锁连环" 要解除同步滚屏:set scb!
所以, 在vim中,! 感叹号表示的意思有两个, 一个是表示否定,比如 这里的scb! autocmd!
, 另一种情况是 表示 强制写: 比如: w! q! mksession!
vim的自动命令
autocmd: auto cmd 自动-命令 可以简写为 au
au有很多扩展, 比如显示/列表/ 否定 等等 比如: 删除自动命令: autocmd! ...
au的格式是:au[tocmd] [group] {events} {pat} {cmds}
group表示执行自动命令的 用户组, 一般采用当前默认的用户组就行, 通常不用设置
events, 表示的是事件, 多个事件用逗号隔开. 有很多指定的/合法的事件名称,包括: BufNewFile, BufReadFile, VimLeave, VimEnter.等等
pat表示 pattern模式, 是一个文件类型 模式,表示对哪些文件执行自动命令
cmds命令执行 字符串. 可以是execute, call等. execute后面的参数是一个 字符串, 可以用点号连接字符串其中, {events}, {pat} 和 {cmd} 三个是必须有的 内容,其他 可选.
最重要的是, 字符串参数中, 不支持 ~
这种家目录的写法, 家目录要用 $HOME
这样的方式.
如果要单独地 用原生命令 在启动时载入一个session: vim -S ~/.session.vim
所以, 要让vim自动保存和载入session:
autocmd VimLeave * execute "mksession! ".$HOME."/.session.vim"
autocmd VimEnter * execute "source".$HOME."/.session.vim"
vim中的c命令?
c命令是change 修改的意思. 他的操作实际上是3个 操作的合起来: 先选中指定的内容, 删除之, 然后再切换到插入状态. 即c = d + i 这个跟word中 "选中文字后直接打字" 是一样的
vim中的数字, 通常是包含当前内容的(当前单词或当前行的) c4j 即时改变 包括当前行在内的下面4行. cw... c2w.
能否支持 4jc?
查看 :help autocmd