1. 对于代码中空格与tab相互转换的可通过如下实现:
- set tabstop = 4
- set expandtab
- %retab ! 以上三行命令即可实现将代码中每四个空格用一个tab来缩进。
- set tabstop =4
- set noexpandtab
- %retab ! 以上三行命令即可实现将代码中的每个tab用四个空格来实现
- tab相关参数
- set shiftwidth=4 #换行自动变成空格
- set autoindent #设置自动缩进,当你在第一行敲击 tab + conten, 当回车第二行开始编辑器默认增加一个tab
2 使用vim 批处理文本
- setp1 : 创建一个包含所需执行vim 命令 集合的文本 test.scr
- step2 : vim -es -S test.scr file1 file2 ; 这样便可以对test.scr中的命令对file1 file2 分别执行。
- note: test.scr最后一行添加 :wq 保证运行结束后自动保持退出。
3.vim 的autocmd命令
- autocmd FileType makefile,tck,python set noexpandtab # 对特定文件不展开tab
- autocmd BufWritePre makefile :%s/\s*$//g<CR> # 默认去除makefile最后空格。
4. 自定义快捷键
- nmap jj <Esc>
- inmap jj <Esc>
- map <C-s> <Esc>:w<CR> # ctrl-s save
- imap <C-s> <Esc>:w<CR> # ctrl-s save
- imap <C-S> <Esc>:w<CR> # ctrl-s save
- map <C-q> <Esc>:wq<CR> # 退出
- map <S-Tab> <Esc>:<<CR> # 绘图tab
- mpa <Tab> <Esc>:s/^/\t/g<CR> # 增加tab
- map <C-n> <Esc>:tabnew ./ <CR> # 新建
- map <C-a> <Esc>ggvG # 全选
- map <C-m> <Esc>:et mouse=c<CR>
- map <C-f> <Esc>/
- map <C-y> <Esc>:tabf ./<CR>
- map <C-f> <Esc>/ # 寻找
- map <C-r> <Esc>:%s/ #全局替换
- vmap <C-r> :s/ #部分替换
5. vim 正则
- vim 元字符
- \ 元字符转义
- ^ 字符串开始位置
- $ 字符串结束位置
- * 0~∞ 次
- . 任意一个字符
- \{m,n} 次数匹配
- \( \) 分组
- \| 或
- \? 0~1
- \+ 1~∞
- 高阶用法:
- \< \>单词左边界以及有边界
- \{-1,} 非贪婪匹配
6. 命令
- 获取匹配字段的个数:
- %s/pattern//gn