昨晚我写了一个非常简单的 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教程**: 提供了一个简单的教程来帮助用户快速入门。 - **版权**: 明确了手册的版权信息。 ##### jusr 02.txtj Vim第一步 - **首次运行Vim**: 如何启动Vim并了解其初始界面。 - **插入文本**: 如何在Vim...
10. **编程支持**:Vim对多种编程语言提供了语法高亮、自动缩进和代码补全等功能,对于开发者来说非常实用。 11. **帮助系统**:Vim的内置帮助系统是其强大之处。使用`:help`命令可以查看帮助文档,`:help {topic}`...
4. **脚本语言支持**: Vim 7.4 提供了对更多编程语言的内建支持,可以通过插件系统扩展其功能。 5. **多窗口编辑**: 支持同时打开多个文件,在不同的窗口中进行编辑。 6. **强大的搜索和替换**: Vim的查找和替换功能...
例如,`vim –d file1 file2` 将打开 Vim 并显示两个文件的差异。 **2.19 缩进** Vim 支持多种缩进操作,如 `%` 缩进块中内容、`反缩进块中内容、`>i{` 内部缩进等。正确使用缩进可以提高代码的可读性。 **2.20 ...
`.emacs.d` 文件夹是 Emacs 编辑器的个人初始化目录,它包含了用户自定义的配置、插件和设置,让每个人可以根据自己的需求定制编辑器的行为。`.emacs.d` 中的 `init.el` 文件是核心配置文件,启动 Emacs 时会执行...
)u ^ R〜^ L ^ G m @ qr R a A i I o O&s S ZZ *:wasavi支持以下ex命令:*缩写cd chdir复制删除编辑文件文件系统全局加入k映射标记标记移动选项打印放置pwd退出读取重做s&〜将寄存器设置为不缩写undo unmap版本v...
它支持多种编程语言,具有丰富的插件生态系统。 - **模式**:Vim有三种主要模式:普通模式、插入模式和命令行模式。 - **基本使用方法**:学习基本的导航、编辑和保存命令。 - **Moving about**:掌握光标移动命令,...
`vim`和`neovim`是两款强大的文本编辑器,它们的配置通常存储在`.vimrc`和`.config/nvim/init.vim`中,分别对应于vim和neovim。这些文件可以用来设置快捷键、加载插件和自定义编辑器行为。 `tmux`是一款终端多路...