vim中自動補全插件snipmate使用


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...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM