vim中自动补全插件snipmate使用

1、下载snipMatezip:
https://github.com/msanders/snipmate.vim/archive/master.zip

2、解压master.zip

unzip master.zip -d ~/.vim  (若是没有此目录,就自己建一个)

cd ~/.vim

mv snipmate.vim-master/* ./

3、定制自己的快捷键,在~/.vim/snippets/python.snippets 文件中有着各种快捷键的定义,自己也可以添加配置,当然除了c语言之外snipmate还支持其他的各种语言如:shell、ruby、python等, 下面是一个python语言snippets文件

cat /root/.vim/snippets/python.snippets
snippet #!
#!/usr/bin/env python snippet imp
import ${1:module}
# Module Docstring
snippet docs
'''
File: ${1:`Filename('$1.py', 'foo.py')`}
Author: ${2:`g:snips_author`}
Description: ${3}
'''
snippet wh
while ${1:condition}:
${2:# code...}
snippet for
for ${1:needle} in ${2:haystack}:
${3:# code...}
# New Class
snippet cl
class ${1:ClassName}(${2:object}):
"""${3:docstring for $1}"""
def __init__(self, ${4:arg}):
${5:super($1, self).__init__()}
self.$4 = $4
${6}
# New Function
snippet def
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
"""${3:docstring for $1}"""
${4:pass}
snippet deff
def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):
${3}
# New Method
snippet defs
def ${1:mname}(self, ${2:arg}):
${3:pass}
# New Property
snippet property
def ${1:foo}():
doc = "${2:The $1 property.}"
def fget(self):
${3:return self._$1}
def fset(self, value):
${4:self._$1 = value}
# Lambda
snippet ld
${1:var} = lambda ${2:vars} : ${3:action}
snippet .
self.
snippet try Try/Except
try:
${1:pass}
except ${2:Exception}, ${3:e}:
${4:raise $3}
snippet try Try/Except/Else
try:
${1:pass}
except ${2:Exception}, ${3:e}:
${4:raise $3}
else:
${5:pass}
snippet try Try/Except/Finally
try:
${1:pass}
except ${2:Exception}, ${3:e}:
${4:raise $3}
finally:
${5:pass}
snippet try Try/Except/Else/Finally
try:
${1:pass}
except ${2:Exception}, ${3:e}:
${4:raise $3}
else:
${5:pass}
finally:
${6:pass}
# if __name__ == '__main__':
snippet ifmain
if __name__ == '__main__':
${1:main()}
# __magic__
snippet _
__${1:init}__${2}

4.使用

这个插件只用了一个键,就是TAB键,

比如对一个C/C++文件,输入inc,再按TAB键,就会填充为#include <stdio.h>,同时stdio被选中,以备修改。还有其他的,如main+TAB, wh+TAB,do+TAB,for+TAB,forr+TAB,if+TAB……具体可以看snippets文件夹下的那些文件,比如c.snippets

比如对于一个python文件,

输入ifmain,再按TAB键,就会填充为

if __name__ == '__main__':
main()

输入imp,再按TAB键,就会填充为

import module

输入wh,再按TAB键,就会填充为

while condition:

# code...

最新文章

  1. 显示和隐藏Mac下的 隐藏文件
  2. 运行所有sdk目录下的示例,查看它们的功能,方便以后查寻
  3. Salesforce删除数据时出现Insufficient privileges的可能原因
  4. Python3.6进程池添加子进程不执行_一次傻屌行为
  5. xpath 根据根节点找数据
  6. utf-8并不&quot;兼容&quot; gb2312, gb18030
  7. mysql 的 help 命令:每个命令,都有相应的反斜杠(\)加一个字母或字符的简写
  8. python ord()与chr()用法以及区别
  9. Spring事务控制和回滚
  10. SO\PR\MO\排产回写的数据如下
  11. Linux远程批量工具mooon_ssh和mooon_upload使用示例
  12. python 结巴分词简介以及操作
  13. java自定义线程池
  14. Windows10解决无法访问其他机器共享的问题
  15. Android程序员学WEB前端(7)-CSS(2)-伪类字体文本背景边框-Sublime
  16. Javascrpt 速成篇】 二:js面向对象
  17. android ART-逆向研究者的福音?
  18. 第五部分shell项目一监控脚本
  19. [BZOJ 3326] 数数
  20. redis存储对象与对象序列化详解

热门文章

  1. [原]使用kubeadm部署kubernetes(一)
  2. 【Docker学习之四】Docker自定义容器镜像
  3. C++ 智能指针 shared_ptr 分析
  4. .NET Core sdk和runtime区别
  5. LeetCode 5215. 黄金矿工(Java)DFS
  6. 去除Chrome“请停用以开发者模式运行的扩展程序”提示
  7. Go语言【数据结构】字符串
  8. cocos creator ScrollView组件scrollToOffset()方法的使用
  9. Ubuntu 编译安装 nginx
  10. Jenkins+Gitlab配置Webhook实现提交自动部署