Published on

VIM使用技巧

Authors

窗口

winnr() 获取当前窗口号 winnr('$') 获取最后一个窗口编号

窗口切换

用vim打开了Ntree,需要来回切换窗口。

  • 如果你有两个窗口,使用 Ctrl + w + w 会在这两个窗口之间来回切换。
  • Ctrl + w + h:将焦点切换到左侧的窗口。
  • Ctrl + w + j:将焦点切换到下方的窗口。
  • Ctrl + w + k:将焦点切换到上方的窗口。
  • Ctrl + w + l:将焦点切换到右侧的窗口。
  • Ctrl + w + q:关闭当前窗口。
  • Ctrl + w + v:垂直分割窗口。
  • Ctrl + w + s:水平分割窗口。
exec "wincmd l"

窗口分割

  • 水平分栏:split 简写 :sp
  • 垂直分栏:vsplit 简写 :vsp
  • 显示缓存 :ls

窗口大小调整

  • :winsize {height} {width} 调整整个窗口
  • :resize 10 固定调整高度为10,也可以相对调整,+10 -10
  • :vertical resize 80 固定调整高度为10,也可以相对调整,+10 -10
  • Ctrl+w +/- 调整高度
  • Ctrl+w </> 调整宽度

滚动绑定

:set scrollbind

文件

打开文件

  • :open {path}
  • :e {path}

对比差异文件

vim -d file1 file2
vimdiff file1 file2

或在vim中输入:

  1. :e {file1_path}
  2. :e {file2_path}
  3. :windo diffthis 高亮显示不同的部分
  4. :windo diffoff 关闭比较

折叠

  • zo/zO   Open 打开折叠
  • zc/zC   Close 关闭折叠
  • za/zA   Toggle 在打开折叠和关闭折叠之间进行切换
  • zv    Open folds for this line 为当前行打开折叠 上面的命令需要选中折叠行才可以
  • zM    Close all 关闭所有折叠
  • zm    Fold more (foldlevel += 1) 更多地折叠
  • zR    Open all 打开所有折叠
  • zr    Fold less (foldlevel -= 1) 更少地折叠

标记

" 定义 名字为Remark的标记,标记的文本是* 高亮是以Search的高亮色展示
sign define Remark text=* texthl=Search

" 放置标记
" 1为id号,无意义,表示该标记的id,group分组,name表示标记Remark配置的标记,line为行号,file为哪个文件,若不没有这项,则为当前打开的文件。
sign place 1 group=RemarkGroup name=Remark line=10 file='a.vim'

" 取消标记
" 1为id号,group为组名
sign unplace 1 group=RemarkGroup

vimscript

动态函数

let func_def = "
\ function! Hello()
\ \n echo 'inject'
\ \n endfunction"
"

用命令 :exe func_def

就可以:call Hello() 函数了

Reference

vim笔记 vim中文帮助文档