- Published on
VIM使用技巧
- Authors
- Name
- JiGu
- @crypto20x
窗口
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中输入:
:e {file1_path}
:e {file2_path}
:windo diffthis
高亮显示不同的部分: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() 函数了