Skip to main content

Python backend for vimtk plugin

Project description

CircleCI Codecov Pypi Downloads ReadTheDocs

Description

The tools in this package focus on, but are not exclusive to Python development with gVim. This is both a Vim plugin and a pip installable Python module.

Usage

We suggest using vim-plug to manage plugins. Install vim plug like this:

# Install vim-plug into your autoload directory
" See: https://github.com/junegunn/vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

We suggest the following vimrc as a template:

" DEMO_VIMRC:

call plug#begin('~/.vim/bundle')

Plug 'sjl/badwolf'
Plug 'Erotemic/vimtk'

call plug#end()            " required

filetype plugin indent on
syntax on

"""" The above code should be among the first things in your vimrc


" Map your leader key to comma (much easier to hit)
let mapleader = ","
let maplocalleader = ","
noremap \ ,

" Make default vimtk remaps
:call VimTK_default_remap()

" Register files you use all the time with quickopen
" (use <leader>i<char> as a shortcut to specific files
call vimtk#quickopen(',', '~/.vimrc')
call vimtk#quickopen('5', '~/.bashrc')

This module defines many helper functions, but does not bind them to keys by default unless VimTK_default_remap is called. The default bindings are as follows:

noremap <leader>H :call vimtk#helloworld()<Esc>

noremap  <leader>a :call vimtk#execute_text_in_terminal(mode())<CR>
vnoremap <leader>a :call vimtk#execute_text_in_terminal(visualmode())<CR>
noremap  <leader>m :call vimtk#execute_text_in_terminal('word')<CR>

noremap <leader>C :call vimtk#copy_current_fpath()<Esc>
noremap <leader>M :call vimtk#ipython_import_all()<CR>

command! AutoImport call vimtk#insert_auto_import()
noremap <leader>pv :call vimtk#insert_print_var_at_cursor()<CR>
noremap  <c-M-B> :call vimtk#insert_timerit(mode())<CR><Esc>
vnoremap <c-M-B> :call vimtk#insert_timerit(visualmode())<CR><Esc>

noremap <leader>es :call vimtk#smart_search_word_at_cursor()<CR>
noremap <leader>go :call vimtk#open_path_at_cursor("e")<CR>
noremap <leader>gf :call vimtk#open_path_at_cursor("e")<CR>
noremap <leader>gi :call vimtk#open_path_at_cursor("split")<CR>
noremap <leader>gv :call vimtk#open_path_at_cursor("vsplit")<CR>
noremap <leader>gv :call vimtk#open_path_at_cursor("vsplit")<CR>
noremap <leader>gt :call vimtk#open_path_at_cursor("tabe")<CR>
noremap gi :call vimtk#open_path_at_cursor("split")<CR>

Obviously you can modify the exact key bindings however you would like.

Here is what some of these functions do:

  • vimtk#execute_text_in_terminal - copies the current word, line, or visual selection and executes it in your most recently used terminal (perhaps running IPython or bash) without needing to alt-tab or copy paste.

  • vimtk#ipython_import_all - if you are in a python module, this funciton creates a few lines of code that will import everything in this module into the current namespace. Note, it detects if you need to modify your pythonpath and does that. It also completely disregards __all__. These lines are then executed in your terminal (which should probably be an IPython session)

  • vimtk#copy_current_fpath - Copies the path to the current file into the clipboard. On non-windows the home drive is replaced with ~.

  • vimtk#auto_import - Automatically inserts missing Python imports

  • vimtk#insert_print_var_at_cursor - Insert a print statement around the current variable your cursor is on (supports python, bash, cmake, and C++)

  • vimtk#insert_timerit - Make a stub timerit and insert it at the current position

  • vimtk#open_path_at_cursor - Open a file path or web url at your cursor

  • vimtk#quickopen(char, fpath) - Use <leader>[tvio] to open predefined files / directories

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vimtk-0.2.0.tar.gz (34.1 kB view details)

Uploaded Source

Built Distribution

vimtk-0.2.0-py2.py3-none-any.whl (34.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file vimtk-0.2.0.tar.gz.

File metadata

  • Download URL: vimtk-0.2.0.tar.gz
  • Upload date:
  • Size: 34.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for vimtk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 772eac9d81fe4390021f31ffc3c05250f43e499d62160f716cf9ada32052b3b5
MD5 96e3fec55804068ad3fff49700f32680
BLAKE2b-256 d161fc6255ffd8797149ca0d9e3814166b96c22d8a9c329dfebb877ef9a1ee66

See more details on using hashes here.

File details

Details for the file vimtk-0.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: vimtk-0.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for vimtk-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 181cef9b6874587ef5e11859bae6fb9fa12e3bbcb00ade65bbc2c4bf49e46fba
MD5 66b96378df7d666e5fd84d91499de6cc
BLAKE2b-256 448cd0e4764cb14a24602bb498ad8ed415da4d72677559060d044d33761406c3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page