Vim
SorelCheung
这个作者很懒,什么都没留下…
展开
-
Vim插件之fzf.vim
与ctrlp一样,fzf.vim也是一个搜索工具,但它支持的东西更多,除了常见的文件搜索,MRU,还支持标记,snippets和主题等。安装方法如下Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }Plug 'junegunn/fzf.vim'添加上面两行到~/.vimrc,然后再:PlugInstall一下...原创 2018-12-31 14:42:12 · 7017 阅读 · 0 评论 -
自定义airline
这里所说的自定义主要包括两个方面,一是airline显示系统日期和时间,二是让tabline只显示文件名而忽略路径。 对于第一个,直接在vimrc写入"m,d,y,H,M分别表示月,日,年,时,分,也就是相应英文的首字母let g:airline_section_b = '%{strftime("%m/%d/%y - %H:%M")}'对于第二个首先确保已经开启了tabline,然后写入let原创 2017-05-29 01:04:29 · 1598 阅读 · 0 评论 -
Vim插件之YouCompleteMe
YouCompleteMe,智能补全插件,安装完成ycm以后需要编译出库才能正常使用,它支持C、C++、C#、go、typescript、javascript、rust等语言的补全,这里只添加C家族的支持,编译方法如下,其他语言的请参考官网$ cd ~/.vim/bundle/YouCompleteMe$ ./install.py --clang-completer编译完成以后再把.ycm_ext原创 2017-04-04 00:42:02 · 8057 阅读 · 1 评论 -
Vim插件之python-mode
python-mode这款插件应该是Vim上写Python最佳辅助型插件了,集成了语法高亮,文档查阅,语法检查和重构等多种功能,相关的设置和快捷键也异常丰富繁多,这里从项目的文档中选取了大部分实用的设置并进行适当修改,如果你想要更详细地了解相关内容建议阅读文档,也建议阅读或者浏览一下文档"python-mode"开启警告let g:pymode_warnings = 0"保存文件时自动删除无用原创 2017-05-04 10:32:55 · 13652 阅读 · 0 评论 -
Vim插件之UltiSnips
UltiSnips,Vim的代码片段工具,它只是一个引擎,它需要和vim-snippets搭配使用,配置如下"UltiSnips"插入模式下直接通过<c-z>键来触发UltiSnips的代码块补全let g:UltiSnipsExpandTrigger="<c-z>""iI弹出UltiSnips的可用列表,不常用的, 所以这里设置成了特殊的<c-l>映射let g:UltiSnipsList原创 2017-04-04 09:08:29 · 8087 阅读 · 0 评论 -
解决Vim"UltiSnips requires py >= 2.7 or py3"
由于UltiSnips依赖于Python,所以有时候你安装完UltiSnips再重新打开Vim时会弹出一个窗口提示”Ultisnips requires py >= 2.7 or py3”,这种情况多发生在Windows上,因为Lunix上你从包管理器中安装Vim和Python它们是严格匹配的,而在Windows上即使你是从官网下载的Vim而且有+python/dyn和+python3/dyn仍然可原创 2017-05-16 22:05:09 · 6816 阅读 · 1 评论 -
Vim实用技巧
屏幕滚动 按键 作用 Ctrl-D 向下滚动半屏 Ctrl-U 向上滚动半屏 Ctrl-F 向下滚动一屏 Ctrl-B 向上滚动一屏 zt 将光标所在行置于屏幕顶端 zz 将光标所在行置于屏幕中央 zb 将光标所在行置于屏幕底端光标移动 按键 作用 + 把光标移至下一行第一个非空白字符 - 把光标移至上一行第一个非原创 2017-05-20 15:39:09 · 633 阅读 · 0 评论 -
解决Vim使用ctrlp+ag搜索不能扫描隐藏的文件和目录和自定义忽略文件问题
之前的文章 Vim插件之ctrlp 中提到过ctrlp调用外部工具ag提高搜索速度的方法,同时也指出了这种方法存在的两个问题,一是不能搜索隐藏文件,二是不能自定义忽略的文件,在仔细查阅ag(the_silver_searcher )的文档之后,现在这两个问题都解决了,下面说一下方法。 首先,在ag的文档中列出了它支持的所有参数,其中的--hidden参数就是用来搜索隐藏文件的,所以要搜索隐藏的文原创 2017-05-26 13:53:26 · 4146 阅读 · 0 评论 -
Vim插件之YankRing
YankRing,实现类似于Emacs的“kill ring”功能,配置如下"YankRing"将yankring的历史文件夹移到~/.vimlet g:yankring_history_dir = $HOME.'/.vim/'"修改历史文件名let g:yankring_history_file = '.yankring_history'"<leader>b选择上一个复制的文本let原创 2017-04-23 00:51:47 · 2108 阅读 · 0 评论 -
Vim插件之command-t
之前的文章Vim插件之ctrlp中曾经提到Vim下的模糊搜索工具ctrlp,ctrlp的优点是依赖少,其他插件对它的支持比较好,缺点是一个是速度慢,这个可以通过让ctrlp调用ag来提高搜索速度,另一点是原作者已经基本不更新了,现在是别人fork了这个项目后在维护着,所以大的功能更新不一定会有。相比之下,近几年,同类插件中有一些新秀就做得比较好,开发活跃,功能不断丰富。下面主要介绍一下command原创 2017-05-23 15:43:02 · 3900 阅读 · 0 评论 -
Vim基础配置
UNIX like系统下用得比较多的编辑器主要是vim和emacs,分别有“编辑器之神”和“神的编辑器”的美誉,emacs比较庞大,扩展性强,有人说它是“伪装成编辑器的操作系统”,而vim则是轻量级的编辑器,对于日常的开发维护非常方便,因此接下来要说的也主要是如何将vim打造成一个轻量级的IDE。安装vim首先,需要安装vim和gvim(vim的GUI版),我的系统是debian,如果你的是其他Li原创 2017-04-03 20:38:13 · 3509 阅读 · 1 评论 -
Vim插件之undotree
undotree,与gundo一样能提供十分强大的撤销更改功能,不同之处在于gundo依赖于python,而某些linux发行版上的Vim并不原生支持python,有时需要自己去编译Vim,与之相反undotree由vimscript实现,依赖少更为轻便,实现的功能却不比gundo少–不仅支持与gundo一样的撤销树,而且还可以将历史更改保存到文件,方便以后使用,能够实时更新撤销树,能够保留某次特定原创 2017-04-28 14:35:32 · 3383 阅读 · 0 评论 -
Vim插件之vim-autoformat
vim-autoformat是Vim的一款自动化格式代码工具,不过它只是一个框架,要使用它还需要相应语言的格式化工具,这里推荐几个常用的工具,分别是astyle,clang-format,python-pep8,python3-pep8,python-autopep8,yapf,在终端执行下面命令即可完成安装$ sudo aptitude install astyle clang-format py原创 2017-04-03 22:47:39 · 14243 阅读 · 0 评论 -
Vim插件之ack.vim
与ctrlp一样,ack.vim也是Vim上的一个搜索工具,主要用于项目内搜索,比如搜索某个函数之类的非常方便,ack还有一个基于The Silver Searcher的fork版本ag,速度比ack更快,但功能不如ack丰富,而且ack也允许调用ag进行搜索,因此更推荐用ack,要使用ag必须先在系统中安装The Silver Searcher,在Debian上只需执行$ sudo aptitud原创 2017-05-03 19:51:35 · 8648 阅读 · 0 评论 -
Vim插件之vim-man
Linux和Unix用户多多少少都要和man打交道,在Linux下查看man默认是用less进行查看的,但是这样子比较单调,而vim-man能让你使用vim来查看man,使用方法是:Man keyword,你也可以在阅读man时对光标下的单词进行查找,在vimrc中写入"vim-man"水平窗口打开manmap <leader>s <Plug>(Man)"竖直窗口打开manmap <lead原创 2017-04-22 20:37:56 · 3179 阅读 · 0 评论 -
Vim插件之ctrlp
ctrlp,模糊搜索工具,同类软件还有 ack,ag,fzf,ctrlp在速度上有些逊色,不过依赖少配置简单"ctrlplet g:ctrlp_map = '<leader>p'let g:ctrlp_cmd = 'CtrlP'map <leader>f :CtrlPMRU<CR>let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(gi原创 2017-04-04 00:34:20 · 20667 阅读 · 0 评论 -
解决clang"fatal error: 'stdio.h' file not found"问题
先看一下下面这个”hello world”程序#include <stdio.h>int main(void){ printf("hello!\n"); return 0;}在Windows下使用”gcc test.c”编译这个程序不会出现任何问题,但如果使用”clang test.c”编译,在控制台窗口就会报”fatal error: ‘stdio.h’ file not fo原创 2017-06-10 18:39:33 · 32103 阅读 · 0 评论 -
Vim插件之The NERD tree
The NERD tree,文件管理工具,方便浏览,配置如下"F3触发,设置宽度为30,显示书签map <F3> :NERDTreeToggle<CR>let NERDTreeWinSize=30let NERDTreeShowBookmarks=1"高亮当前行let NERDTreeHighlightCursorline=1"从NERDTree打开文件后自动关闭NERDTreelet原创 2017-04-03 23:00:01 · 2229 阅读 · 0 评论 -
Vim插件之ale
ale是一款语法检查的插件,与syntastic类似,但有两个明显的优势,一个是语法检查是异步执行的,因此基本不会卡,另外一个是ale默认会使用所有检查工具并发的进行检查,但它只支持Vim 8.0以上的版本,配置如下&quot;alelet g:ale_sign_column_always = 1let g:ale_set_highlights = 0let g:ale_sign_error = '✗'原创 2017-04-03 21:57:58 · 26371 阅读 · 6 评论 -
Vim插件之vim-clang和clang complete
在Vim所有的插件里面,YouCompleteMe 无疑是最强大的了,但安装也是异常的繁琐,在Windows平台上更加麻烦,下面介绍两个基于clang的插件可以部分替代YCM的功能。clang complete首先介绍clang complete,YCM对C家族的补全就是基于它,功能之强大不用多提,使用它必须先下载安装LLVM并将其添加到系统环境变量中(下面提到的vim-clang插件也需要这么做)原创 2017-06-10 20:24:58 · 5879 阅读 · 0 评论 -
Vim插件之Conque GDB
之前曾经提到Vim下的Debug插件Vim插件之Vebugger,这款插件的主要特点就是支持语言多,这就意味着调试不同语言时不用记多套快捷键,缺点是目前支持Linux平台而且依赖于vimproc,下面介绍一个支持平台更多的调试插件Conque GDB,配置如下"Conque GDB"待调试文件位于屏幕上方let g:ConqueGdb_SrcSplit = 'above'"保存历史let g原创 2017-06-10 20:54:00 · 2905 阅读 · 0 评论 -
Vim插件之vimwiki
Emacs最强大的一个插件应该就是Org-mode了,在Vim上虽然也有vim-orgmode,但是翻阅一遍文档你就会发现一大堆的”Not yet implemented in vim-orgmode”,虽然vim-orgmode不能与Emacs的Org-mode相提并论,但这并不意味着Vim就没有能媲美Org-mode的插件,它就是vimwiki。 vimwiki能够写笔记构建工作流,写todo原创 2017-06-10 22:13:53 · 5186 阅读 · 0 评论 -
Vim为特定文件载入模板
编程开发实际上有许多重复性的工作,比如编写C/C++时有一些头文件是通用的,但在Vim里面每次创建新文件默认都是空白文件,手工输入其实挺繁琐的,下面介绍两种为特定文件载入模板的方法,仅以C为例,其他语言类似方法一这种方法的特点是以纯vimscript实现,跨平台autocmd BufNewFile *.c exec ":call SetHeader()" func! SetHeader()原创 2017-06-07 16:10:12 · 1728 阅读 · 0 评论 -
Vim插件之vim-flake8
vim-flake8是PyFlakes和PEP8的组合,可以说是vim-pyflakes和vim-pep8的完美替代品,它能为Python提供静态的语法检查和风格检查,默认情况下使用F7打开QuickFix窗口显示出错信息,可以通过修改配置绑定到其他按键,配置如下"vim-flake8"修改QuickFix窗口的高度let g:flake8_quickfix_height=7原创 2017-04-03 22:14:50 · 4791 阅读 · 0 评论 -
Vim插件之TaskList
TaskList,实现类似于Eclipse的tasklist的功能,这对于项目之后的更新维护非常有帮助,配置如下"TaskList"标签分类let g:tlTokenList = ["FIXME", "TODO", "HACK", "NOTE", "WARN", "MODIFY"]"默认在窗口上方打开任务列表,这里修改为下方let g:tlWindowPosition = 1原创 2017-04-22 19:52:45 · 1038 阅读 · 0 评论 -
Vim无插件实现Markdown文件实时预览
之前的文章Vim插件之vim-instant-markdown曾提到Vim实时预览Markdown文件的方法,不过这个方法有个小缺点,就是依赖不是很好处理–Node.js和npm在很多发行版(系统)并没有默认安装,有的发行版(系统)上甚至没有这个包,因此下面介绍一种Vim不需要任何插件就能实时预览Markdown文件的方法,而且它还是跨平台的。 首先,需要安装Firefox,Windows用户在安原创 2017-05-22 22:37:29 · 6352 阅读 · 1 评论 -
Vim插件之syntastic
syntastic是Vim上比较老牌的一款语法检查插件,虽然性能不及ale,但兼容性要更好一些,配置如下"syntastic"自动打开并跳转到第一个错误的地方let g:syntastic_error_symbol='✗'let g:syntastic_warning_symbol='➤'let g:syntastic_always_populate_loc_list = 1let g:s原创 2017-04-03 22:30:16 · 19746 阅读 · 5 评论 -
Vim插件之rainbow
rainbow,代码阅读增强工具,能给不同的括号不同的颜色,下面是作者推荐的配置"rainbowlet g:rainbow_active = 1let g:rainbow_conf = {\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],\ 'ctermfgs': ['lightblue', 'li原创 2017-04-11 12:02:55 · 3758 阅读 · 0 评论 -
Vim插件之Vebugger
Vebugger,Vim的debug插件,支持GDB、LLDB、JDB、Mdbg、PDB和RDebug,能够追踪程序运行,调试,设置断点和查看运行时的结果,使用这个插件需要调用外部的Debug程序,目前这个插件只支持Linux平台而且依赖于vimproc,具体的使用可以参考作者录制的一段视频 https://vimeo.com/95775461 在上面的视频中作者提到的一点需要注意,那就是调试的原创 2017-04-22 19:39:54 · 2779 阅读 · 0 评论 -
Vim可选插件
gundogundo,Vim的时光机,提供更加强大的撤销更改功能,配置如下"gundo"leader键加h触发,设置默认高度为30nnoremap <leader>h :GundoToggle<CR>let g:gundo_width = 30open-browseropen-browser,从Vim中打开网址,配置如下"open-browser"oo打开网址,同时开启智能识别nmap o原创 2017-04-04 09:31:34 · 1140 阅读 · 0 评论 -
Vim插件之startify
startifystartify.这款插件能提供全新的Vim启动界面,提供了一个直观的MRU(Most Recently Used),Session(会话)和Bookmarks功能,下面是配置"设置书签let g:startify_bookmarks = [ \ '~/Project/test.cpp', \]"起始页显示的列原创 2017-04-28 15:00:04 · 5688 阅读 · 0 评论 -
Vim插件之limelight和goyo
limelight和goyo是的开发者junegunn同时也是大名鼎鼎的vim-plug的作者,因此这两款插件的质量也不消多说,goyo能提供一个专注阅读和写作的环境,输入:Goyo触发功能,输入:Goyo!则关闭这个功能,limelight实现类似于“关灯看小说”的功能 ,两者组合起来后阅读文档和写作都变得非常方便,下面是我的配置"limelight"<Leader>l触发limelight功原创 2017-04-22 20:07:08 · 2995 阅读 · 0 评论 -
Ex命令
初时,先有ed,ed为ex之父,ex为vi之父,而vi为Vim之父。 – The Old Testament of Unix Vim的命令分为两种,一种是Vim自己的,另一种则是Ex的,Ex命令都需要先输入冒号,最后回车才能执行,相比于Vim命令,Ex命令作用范围更广,也更强大,下面列举一些常用的Ex命令 命令 作用 :w 保存文件 :q 退出 :x 保存并退出,相原创 2017-04-04 13:11:35 · 1314 阅读 · 0 评论 -
Vim文本对象简介
Vim的文本对象(text object)由两个字符组成,第一个字符永远是i或是a。一般说来, 以i开头的文本对象会选择分隔符内部的文本,而以a开头的文本对象则会选择包括分隔符在内的整个文本。为了便于记忆,可以把i 想成“inside”,而把a想成 “around” 或“all”。Vim的文本对象主要用于扩大选区,将它与可视模式或 surround结合起来使用将变得异常强大,下面列举一些常用的文本对原创 2017-04-04 12:34:20 · 1048 阅读 · 0 评论 -
Vim插件之vim-airline
vim-airline,状态栏美化插件,使用前请确保已经在vimrc中写入set laststatus=2然后需要安装powerline的字体,最后配置如下"安装字体后必须设置let g:airline_powerline_fonts = 1"关闭tablinelet g:airline#extensions#tabline#enabled = 0let g:airline#extensio原创 2017-04-04 00:24:56 · 8917 阅读 · 0 评论 -
Vim插件之vim-instant-markdown
vim-instant-markdownvim-instant-markdown是一款实时显示markdown效果的插件,要使用这款插件需要先安装node.js和npm,可以在终端执行$ sudo apt-get install nodejs npm$ sudo npm -g install instant-markdown-d安装完成以后,你只要打开一个.md文件,Vim就会自动打开一个浏览器窗原创 2017-04-03 20:58:44 · 6326 阅读 · 0 评论 -
Vim插件之The NERD Commenter
The NERD Commenter,注释工具,接触的语言多的话,可以用这个插件实现统一的注释,这样就不用专门记忆注释的符号了,配置如下"The NERD Commenter"注释符号后面空一格let g:NERDSpaceDelims=1用法如下<leader>cc 加注释<leader>cu 解开注释<leader>c<space> 加上/解开注释, 智能判断<leader>原创 2017-04-03 23:08:58 · 1429 阅读 · 0 评论 -
Vim插件之open-browser
open-browser,从Vim中使用默认浏览器打开网址,配置如下"open-browser"oo打开网址,同时网址开启智能识别nmap oo <Plug>(openbrowser-open)nmap oo <Plug>(openbrowser-smart-search)原创 2017-04-11 12:20:40 · 1630 阅读 · 0 评论 -
Vim插件之investigate.vim
investigate.vim,对Vim中当前光标下的单词查找在线文档,配置如下"investigatennoremap <leader>k :call investigate#Investigate('n')<CR>vnoremap <leader>k :call investigate#Investigate('v')<CR>"默认情况下对python查找的是python2的文档,此处修改原创 2017-04-11 12:18:33 · 668 阅读 · 0 评论 -
Vim插件之vim-polyglot
vim-polyglot,语法高亮包,支持下面这些语言ansible (syntax, indent, ftplugin)apiblueprint (syntax)applescript (syntax)arduino (syntax, indent)blade (syntax, indent, ftplugin)c++11 (syntax)c/c++ (syntax)caddyfi原创 2017-04-11 12:16:34 · 5277 阅读 · 1 评论