昨晚我写了一个非常简单的 VIM 的D语言缩写插件,希望能让用VIM编辑D程序的指头轻松一点。
请看下图,当在VIM的插入模式键入“'main”这个字符序列时,该插件能自动将文本替换为一个完整的 main() 函数定义,并且能自动选中 <+ body +> 部分等待输入替换。Ctrl+j 键可以跳转到下一个由 <+ ????? +> 标记的地方,同样会自动选定。
插件中的代码片段由 d_imaps.vim 文件定义,此文件应当放到 ~/.vim/ftplugin(Windows 用户推荐放到 $VIMRUNTIME/ftplugin/) 目录下,下面是 d_imaps.vim 文件的内容:
代码
- let maplocalleader="'"
-
- " D snippets "
-
- inoremap <buffer><localleader>main <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>int main(char[][] args)\n{\n <+ body +>;\nreturn <+ return value+>;\n}")<cr></cr>
- inoremap <buffer><localleader>istd <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>import std.stdio;\n")<cr></cr>
- inoremap <buffer><localleader>cl <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>class <+ name +>\n{\ninvariant\n{\n\n}\n\nthis()\n{\n}\n}")<cr></cr>
- inoremap <buffer><localleader>if <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>interface <+ name +>\n{\npublic <+ first method +>;\n}")<cr></cr>
- inoremap <buffer><localleader>switch <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>switch(<+ expr +>)\n{\ncase <+ cond1 +>:\n\nbreak;\n\n\n\ndefault:\n\nbreak;\n}")<cr></cr>
- inoremap <buffer><localleader>case <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>case <+ cond +>:\n<+ action +>;\nbreak;")<cr></cr>
- inoremap <buffer><localleader>bl <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>{\n<+ block +>;\n}")<cr></cr>
- inoremap <buffer><localleader>c1 <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>")<cr></cr>
-
-
- inoremap <buffer><localleader>cs <c-r>=IMAP_PutTextWithMovement("</c-r></localleader></buffer>const char[] <+ name +> = \"<+ string +>\";")<cr> </cr>
- inoremap <buffer><localleader>sa <c-r>=IMAP_PutTextWithMovement("static assert(<+ const expr +>);\n")<cr> </cr></c-r></localleader></buffer>
文件格式非常简单,第一行定义了缩写的前导字符,在这里是单引号。<localleader>后的字符就是缩写,在 IMAP_PutTextWithMovement("") 函数参数的文本是要插入的代码片段,需要需要跳转的部分用 <+ +> 包围起来就可以了。
需要注意的是此D语言缩写插件需要 imaps.vim 插件的支持,该插件可以在
这里下载,将其放入 VIM 的 plugin 目录里就 OK了。
Happy Vimming!</localleader>
- 大小: 7.9 KB
分享到:
相关推荐
vim配置插件
go语言高亮vim插件,go语言高亮vim插件,go语言高亮vim插件 go语言高亮vim插件.go语言高亮vim插件
VIM快捷键 VIM快捷键 VIM插件 VIM快捷键 VIM插件
由于vim管网有时候连不上去,特地将之前下载好的几个插件打包提供下载方便大家。
vim配置插件
vim-plugin插件
vim常用插件
Vim常用插件和Vim配置文件,以及帮助文档.
vim插件 很经典的vim插件 很经典的vim插件 很经典的vim插件 很经典的vim插件 很经典的
本资源含有vim常用插件及相应vimrc配置文件,可直接解压替换主目录相应.vim文件夹及.vimrc文件即可使用,省时省心,非常方便,happy coding...
vim 插件 全集有a.vim grep.vim mark.vim minibufexpl.vim taglist.vim vimcdoc.vim visualmark.vim winfileexplorer.vim winmanager.vim wintagexplorer.vim
javacc的vim插件~~~~~ 十分好用哦
自己当时一个个找,太麻烦了,为了方便大家,将自己找好的打包,基本包括vim所有常用插件包括cscppe/ctags/gbimfullscreen/taglist/bufexplorer/gtrp/minibufexpl/winmanager/
VIM 插件的安装 Vundle (插件中的插件) youCompleteMe (自动补全) NERDTree (树型插件) Vim-Jinja2-Syntax (语法增强插件)
vim配置插件
vim常用插件安装说明和使用说明,vim linux 插件
vim配置插件
vim中verilog插件vlog-support。在vim插件文件夹中中解压
VIM 实用插件整理,vim-8.2.0100.tar.gz,1.Vundle.vim,2.vim-colors-solarized,3.nerdtree,4.tagbar,5.taglist,6.vim-airline,7.YouCompleteMe,8.ultisnips.....
vim 插件