Skip to content

Instantly share code, notes, and snippets.

@xiongjia
Last active September 14, 2017 07:43
Show Gist options
  • Save xiongjia/64e1353afb9415e85479 to your computer and use it in GitHub Desktop.
Save xiongjia/64e1353afb9415e85479 to your computer and use it in GitHub Desktop.
A simple Vim plugin with python #devsample #vim
#!/usr/bin/env python
import sys, os
# The test function for VIM plugin
def my_test(vim, vim_ver):
buf = vim.current.buffer
# append process id & python version info to the buffer
buf.append("VIM process %d; vim version: %s\n" % (os.getpid(), vim_ver))
buf.append("Py version: %s\n" % sys.version_info)
" A simple VIM plugin for test the python module in VIM.
"
" Loading the plugin:
" 1. Save the my-vim-plugin.py & my-vim-plugin.vim in the same folder.
" 2. Open the my-vim-plugin.vim in your VIM.
" 3. run "so %"
"
" After loading the plugin, you can call the "MyTestFunc()" in vim.
" This test function will append some python info to the your vim
" buffer.
"
" Load this module only once.
if exists('loaded_mytestplugin')
finish
endif
" Check vim python runtime
if !has('python')
echo "Error: Required vim compiled with +python"
finish
endif
" Check vim version
if v:version < 700
echo "Error: Required vim version +7"
finish
endif
" Set the loaded flag
let loaded_mytestplugin = 1
" Add my plugin to the path
python import sys, vim
python sys.path.append(vim.eval('expand("<sfile>:h")'))
" my test function
function! MyTestFunc()
python << endOfPython
# import vim object. Regarding the detail of the vim object,
# please check the ":help if_pyth.txt" in vim document.
import vim
# call our python function
import my_vim_plugin as myVimPlugin
myVimPlugin.my_test(vim, vim.eval("v:version"))
endOfPython
endfunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment