vim使用笔记
来源:互联网 发布:学象棋的软件 编辑:程序博客网 时间:2024/04/30 13:02
1.生成/查看帮助文档
:call pathogen#helptags():help Powerline
2.插件下载
进入 .vim/bundle/ 目录下
git clone http://github.com/scrooloose/nerdtree.git
3.代码折叠
:za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠
4.接口与实现快速切换
A 切换到.h文件
AS 切换回来
5.书签
独立书签,书签名只能由字母(a-zA-Z)组成,长度最多不超过 2 个字母,并且,同个文件中,不同独立书签名中不能含有相同字母。
分类书签,书签名只能由可打印特殊字符(!@#$%^&*())组成,长度只能有 1 个字符,同个文件中,你可以把不同行设置成同名书签,这样,这些行在逻辑上就归类成相同类型的书签了
vim-signature 快捷键如下:
let g:SignatureMap = {
\ ‘Leader’ : “m”,
\ ‘PlaceNextMark’ : “m,”,
\ ‘ToggleMarkAtLine’ : “m.”,
\ ‘PurgeMarksAtLine’ : “m-“,
\ ‘DeleteMark’ : “dm”,
\ ‘PurgeMarks’ : “mda”,
\ ‘PurgeMarkers’ : “m”,
\ ‘GotoNextLineAlpha’ : “’]”,
\ ‘GotoPrevLineAlpha’ : “’[“,
\ ‘GotoNextSpotAlpha’ : “]",
[“,
\ 'GotoPrevSpotAlpha' : "
\ ‘GotoNextLineByPos’ : “]’”,
\ ‘GotoPrevLineByPos’ : “[‘”,
\ ‘GotoNextSpotByPos’ : “mn”,
\ ‘GotoPrevSpotByPos’ : “mp”,
\ ‘GotoNextMarker’ : “[+”,
\ ‘GotoPrevMarker’ : “[-“,
\ ‘GotoNextMarkerAny’ : “]=”,
\ ‘GotoPrevMarkerAny’ : “[=”,
\ ‘ListLocalMarks’ : “ms”,
\ ‘ListLocalMarkers’ : “m?”
\ }
解释
书签设定: mx,设定/取消当前行名为 x 的标签;
书签罗列: ms,罗列出当前文件中所有书签,选中后回车可直接跳转;
书签跳转: mn, 按行号前后顺序,跳转至下个独立书签;mp,按行号前后顺序,跳转至前个独立书签。
6.内容替换
:[range]s/{pattern}/{string}/[flags]
- 如果在当前文件内替换,[range] 不用指定,默认就在当前文件内;
- 如果在当前选中区域,[range] 也不用指定,在你键入替换命令时,vim 自动将生成如下命令:
- 你也可以指定行范围,如,第三行到第五行:
:3,5s/{pattern}/{string}/[flags]
- 如果对打开文件进行替换,你需要先通过 :bufdo 命令显式告知 vim 范围,再执行替换;
- 如果对工程内所有文件进行替换,先 :args */.cpp /*.h 告知 vim 范围,再执行替换;
封装函数
" 替换函数。参数说明:" confirm:是否替换前逐一确认" wholeword:是否整词匹配" replace:被替换字符串function! Replace(confirm, wholeword, replace) wa let flag = '' if a:confirm let flag .= 'gec' else let flag .= 'ge' endif let search = '' if a:wholeword let search .= '\<' . escape(expand('<cword>'), '/\.*$^~[') . '\>' else let search .= expand('<cword>') endif let replace = escape(a:replace, '/\&~') execute 'argdo %s/' . search . '/' . replace . '/' . flag . '| update'endfunction" 不确认、非整词nnoremap <Leader>R :call Replace(0, 0, input('Replace '.expand('<cword>').' with: '))<CR>" 不确认、整词nnoremap <Leader>rw :call Replace(0, 1, input('Replace '.expand('<cword>').' with: '))<CR>" 确认、非整词nnoremap <Leader>rc :call Replace(1, 0, input('Replace '.expand('<cword>').' with: '))<CR>" 确认、整词nnoremap <Leader>rcw :call Replace(1, 1, input('Replace '.expand('<cword>').' with: '))<CR>nnoremap <Leader>rwc :call Replace(1, 1, input('Replace '.expand('<cword>').' with: '))<CR>
7.快速开关注释
插件:NERD Commenter
常用操作:
- cc,注释当前选中文本,如果选中的是整行则在每行首添加 //,如果选中一行的部分内容则在选中部分前后添加分别 /、/;
- cu,取消选中文本块的注释。
其中在.vimrc中定义
let mapleader=";"
8.模板补全
插件:UltiSnips
先键入模板名(如,if),接着键入补全快捷键(默认 tab,后设置为<leader><tab>
)
在.vimrc中设置
" UltiSnips 的 tab 键与 YCM 冲突,重新设定let g:UltiSnipsExpandTrigger="<leader><tab>"let g:UltiSnipsJumpForwardTrigger="<leader><tab>"let g:UltiSnipsJumpBackwardTrigger="<leader><s-tab>"
- (VIM)vi使用笔记
- vim使用笔记
- vim的使用 - 笔记
- VIM使用笔记
- VIM 使用笔记
- Vim使用笔记
- vim使用笔记
- vim 使用笔记
- Vim使用笔记
- cscope+vim使用笔记
- VIM使用笔记
- vim使用笔记
- vim使用笔记
- VIM使用笔记
- vim使用笔记
- VIM使用笔记
- vim使用笔记
- VIM使用笔记
- http 415 错误
- Android开发:LocationManager获取经纬度及定位过程(附demo)
- monkey
- Gradle Plugin Samples 之 Gradle Build Variants(六)
- 编程英语(单词有音标)
- vim使用笔记
- input标签file类型,去除不同浏览器“未选择文件”字样办法
- 【W3s学JSON】JSON入门概念学习笔记 _W3school
- Sublime text追踪函数插件:ctags
- [数论]Number Sequence
- JVM类加载机制总结
- Android通过webservice请求数据
- pthread相关资料整理(1)
- Ceph中replicated以及erasure类型pool写性能对比