VIM 的模式
:
为什么要要分屏打开文件,主要是方便在多个文件之间转移内容,一个进程下打开多个文件,内容缓冲区是共用的,方便将一个文件的内容复制到另外一个文件中。
1. 打开第一个文件
vim file-1.txt
2. 分屏打开第二个文件
:vs file-2.txt # 在VIM的命令模式下输入,即一个ESC键,然后键入冒号,上面那个冒号是命令指示符,代表已经进入VIM的命令模式 # 这个会打开左右两个分屏,左侧分屏是file-1.txt,右侧分屏是file-2.txt # 如果只想打开一个空的分屏,只需要打入 :vs 即可 :vs # 分成上下两个分屏 :sp file-2.txt
3. 切换焦点窗口
在一个分屏下复制的内容可以在另外一个分屏上粘贴的。
4. 关闭分屏,命令模式下键入 q
并回车即可
没有特别说明的情况下,VIM应该处于普通模式下,在其他模式下按ESC返回普通模式
1. 上下左右移动光标
2. 特殊移动
查找
替换
常用标志位
复制
当命令变为 c 时,比如 ca{ 会删除此代码块,并进入插入模式
粘贴
只需在普通模式下按 p(小写),缓冲区内容会添加到光标下方一行
还有些其他用法,遇到再说
在写JSON或者JAVASCRIPT的时候,有可能会遇到一大堆的括号,然后大量的缩进,根本搞不清楚哪个括号是对应哪个的,因此将不专注的部分折叠起来,就能专注到需要编辑的部分了。
zfa{
这样的指令折叠代码块:set foldmethod=manual :set foldmethod=syntax :set foldmethod=indent :set foldlevel=1 #折叠时显示缩进 :mkview #保存折叠信息 :loadview #读取折叠信息 :help folding :help fold-marker :help fold-syntax :help fold-indent :help fold-manual
zfa{
zfi{
za
或空格键其他快捷键:在Syntax或Indent模式下可能会遇到
zc/zo
关闭/打开当前折叠,注意用za是切换zm/zM
关闭所有折叠/关闭所有嵌套折叠zn/zN
禁用/启用折叠zr/zR
打开所有折叠/打开所有折叠及其嵌套的折叠zd/zE
删除当前/所有折叠zj/zk
切换下一处/上一处折叠1.显示行号
:set nu
2.窗口管理的,之前已经介绍过
3.查找替换的
4. 保存&退出
:w file.txt 保存为file.txt, 直接保存的话,直接w就可以 :wq 保存并退出 :q! 不保存并退出
filetype on syntax on set shiftwidth=2 set expandtab set number set ts=2 set autoindent set breakindent nnoremap <space> za nnoremap <tab> >> augroup filetype_python autocmd! autocmd FileType python setlocal foldmethod=indent autocmd FileType python set foldlevelstart=0 autocmd FileType python setlocal foldmarker=---,--- augroup END