距离发布文章已经8个月了,期间基本每天都会使用Vim 来做(瞎)笔(折)记(腾)。现在我有研究了几个比较好用的插件,推荐大家。
1. md-img-paste.vim 将剪切板中的图片插入为Markdown 代码
很多Markdown的编辑软件都带有复制剪切板内图片的功能。Vim拥有数量众多且喜欢折腾的用户,因此这种插件在GitHub上也可以找到。我个人尝试之后使用的是 ‘ferrine/md-img-paste.vim‘。这个插件可以设置储存图片的默认文件夹,图片默认名,快捷键等等。设置方法如下:
“安装插件Plug ‘ferrine/md-img-paste.vim’ “设置默认储存文件夹。这里表示储存在当前文档所在文件夹下的’pic’文件夹下,相当于 ./pic/let g:mdip_imgdir = ‘pic’ “设置默认图片名称。当图片名称没有给出时,使用默认图片名称let g:mdip_imgname = ‘image'”设置快捷键,个人喜欢 Ctrl+p 的方式,比较直观autocmd FileType Markdown nnoremap:call mdip#MarkdownClipboardImage()F%i
可以看见,在快捷键设置这里我在末尾加了 F%i。因为这个插件初始设置插入的格式为标准Markdown格式,即 ![](pic/image1.png)。但是这个格式有一个缺点,就是无法该改变图片位置和大小。因此我改动了一下这个插件的源代码,把 ![](img/image1.png)改为了
。这个时候就可以让插入的图片居中,并且光标跳到大小设置的位置,方便我修改图片的大小。效果如下
修改方法为:
打开 ~/vim/plugged/md-img-paste.vim/plugin/mdip.vim ,修改第134行
execute”normal!i![Image](“.relpath.”)”
改成 execute “normal! a
2. vim-airline + Tagbar
vim-airline是一个编辑修改状态栏的插件,它最主要的功能就是让状态栏变得好看并且实用! 可以根据需求在状态栏显示各种你需要的信息,比如文件名,当前行号列号,日期,时间等等。。。当然,如果只是这样的话也没什么。但是!如果配合Tagbar使用,事情就变得有趣了起来。Tagbar是一个检索代码或者文章中固定表达的插件。用在编程的话就是可以找到所有的变量,方法并且总结出一个表。在这里我主要用Tagbar来查找Markdown的各级标题,并且检索出来的标题显示在状态栏中。
注意!Tagbar需要 ctags 支持,下载地址在这里。
效果图
设置如下
“安装插件Plug ‘vim-airline/vim-airline’Plug ‘majutsushi/tagbar'”不显示文档总字数let g:airline#extensions#wordcount#enabled = 0″不显示文件编码(Windows系统)let g:airline#parts#ffenc#skip_expected_string=’utf-8[dos]'”设置tagber对于Markdown的支持let g:tagbar_type_Markdown = { \ ‘ctagstype’ : ‘Markdown‘, \ ‘kinds’ : [ \ ‘h:Chapter’, \ ‘i:Section’, \ ‘k:Paragraph’, \ ‘j:Subparagraph’ \ ]\ }”取消显示warning部分let g:airline_section_warning = ””取消显示section_blet g:airline_section_b = ””section_c显示为tagbar检索出来的标题let g:airline_section_c = airline#section#create([‘tagbar’])”section_x显示文件名let g:airline_section_x = ‘%{expand(“%”)}'”section_y显示时间let g:airline_section_y = airline#section#create([‘%{strftime(“%D”)}’])”section_z显示日期let g:airline_section_z = airline#section#create([‘%{strftime(“%H:%M”)}’])”激活tagbar扩展let g:airline#extensions#tagbar#enabled = 1
另外,还需要在 ~/.ctags中加入如下代码(没有这个文件的可以新建一个命令为::vi ~/.ctags):
–langdef=Markdown–langmap=Markdown:.mkd–regex-Markdown=/^#[ \t]+(.*)/\1/h,Heading_L1/–regex-Markdown=/^##[ \t]+(.*)/\1/i,Heading_L2/–regex-Markdown=/^###[ \t]+(.*)/\1/k,Heading_L3/