Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jarolrod/vim-python-ide

Python development config
https://github.com/jarolrod/vim-python-ide

python vim-ide vimrc

Last synced: about 1 month ago
JSON representation

Python development config

Awesome Lists containing this project

README

        

![Imgur](https://i.imgur.com/hVVulbM.png)

![screenshot](https://i.imgur.com/KoKH5aA.png)

Table of contents
=================
* [Getting Started](#getting-started)
* [Bash](#bash)
* [Fish](#fish)
* [DevIcons](#devicons-optional)
* [Manual Install](#alternatively)
* [Plugins](#plugins)
* [Python](#python)
* [Code + Project Navigation](#code-and-project-navigation)
* [Snippets](#snippets)
* [Extra](#extra)
* [Key Bindings](#key-bindings)
* [Python](#python)
* [Switching Between Buffers](#switching-between-buffers)
* [Toggle Relative Numbering](#toggle-relative-numbering)
* [Comfortable Motion Scrolling](#comfortable-motion-scrolling)
* [NerdTree Toggle](#nerdtree-toggle)
* [Disable Arrow Keys](#disable-arrow-keys)

## Getting Started

A script shell will get a copy of the vimrc up and running on your local machine for testing purposes. The script will install the vimrc and compile the YouCompleteMe plugin:
### Bash
```
sh -c "$(curl -fsSL https://raw.githubusercontent.com/jarolrod/vim-python-ide/master/setup.sh)"
```
### Fish
```
curl -fsSL https://raw.githubusercontent.com/jarolrod/vim-python-ide/master/setup.sh | sh
```
### YouCompleteMe
YouCompleteMe must be compiled for it to work. The install script handles the compiling, but if something goes wrong then do the following:

1. Make sure the following is included in your vimrc where all the vundle plugins are placed:
```
Plugin 'Valloric/YouCompleteMe'
```

#### MacOS
1. Assuming you already have MacVim installed, install Cmake through brew
```
brew install cmake
```
2. Navigate to YouCompleteMe bundle folder and run the compile script
```
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
```
3. Reference the [YouCompleteMe](https://github.com/ycm-core/YouCompleteMe) README.md for any other configuration

### Linux
Make sure you have Cmake and Python 3 Headers, they can be downloaded through your distributions package manager. Then run:
```
cd ~/.vim/bundle/YouCompleteMe
python3 ./install.py --clang-completer
```

### DevIcons (Optional)
This plugin is used to show file icons in NerdTree and requires additional steps to install:
* Must install a patched font that contains required glyphs:
* [Arch Linux](https://aur.archlinux.org/packages/nerd-fonts-complete/)
* [Everyone Else](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts)
* Set vim encoding to UTF-8
```
set encoding=utf8
```
* Set vim font to NerdFont
```
set guifont=
```
* Add glyphs to Airline
```
let g:airline_powerline_fonts = 1
* If you dont want this feature simply remove this plugin from your vimrc and execute :PluginUpdate in vim, for proper removal delete the devicons plugin folder

### Alternatively:
* Cherry pick the parts you like from my vimrc and add it to yours

## Plugins
* [PEP 8 Indentation](https://github.com/Vimjas/vim-python-pep8-indent) - Python Indentation
* [Jinja](https://github.com/lepture/vim-jinja) - Syntax and Indentation
* [Python Combined](https://github.com/mitsuhiko/vim-python-combined) - Extra handling

### Code and Project Navigation
* [NerdTree](https://github.com/scrooloose/nerdtree) - Project and File navigation
* [Tagbar](https://github.com/majutsushi/tagbar) - Class outline
* [CtrlSpace](https://github.com/vim-ctrlspace/vim-ctrlspace) - Bookmarks/Workspaces/Fuzzy Search/ File management
* [Ack](https://github.com/mileszs/ack.vim) - Search tool
* [Airline](https://github.com/vim-airline/vim-airline) - Tabline
* [Powerline](https://github.com/powerline/powerline) - Used for fonts
* [Fixed Task List](https://github.com/fisadev/FixedTaskList.vim) - Pending tasks
* [Comfortable Motion](https://github.com/yuttie/comfortable-motion.vim) - Physics based scrolling
* [Bookmarks](https://github.com/MattesGroeger/vim-bookmarks) - Bookmark code
* [Indent Guides](https://github.com/nathanaelkane/vim-indent-guides) - Visual repesentation of indents

### Snippets
* [Snippets](https://github.com/honza/vim-snippets) - Snippets
* [Snip-Mate](https://github.com/garbas/vim-snipmate) - Snippet Manager
* [NerdCommenter](https://github.com/scrooloose/nerdcommenter) - Easy code documentation
* [Utility Functions](https://github.com/tomtom/tlib_vim) - Add-on
* [Add-on](https://github.com/MarcWeber/vim-addon-mw-utils) - interpret file by function

### Extra
* [Sparkup](https://github.com/rstacruz/sparkup) - Condensed HTML parser
* [Riv](https://github.com/Rykka/riv.vim) - Take notes in RST
* [Surround](https://github.com/tpope/vim-surround) - Add parentheses + etc. in pairs
* [Colorscheme](https://github.com/flazz/vim-colorschemes) - Change vim colorscheme
* [Rainbow-Parantheses](https://github.com/kien/rainbow_parentheses.vim) - Rianbow Parentheses
* [Vim-Wiki](https://github.com/vimwiki/vimwiki) - Personal Vim wiki
* [Vimagit](https://github.com/jreybert/vimagit) - Git operations from buffer
* [Dev Icons](https://github.com/ryanoasis/vim-devicons) - File icons in NerdTree
* [DevIcons Installation](#devicons-optional)

## Key-Bindings
### Python
```
let g:pymode_run_bind=''
imap :w:!clear;python %
```
### Switching Between Buffers
```
nmap :bprev
nmap :bnext
```
### Toggle Relative Numbering
```
nnoremap :set relativenumber!
```
### Comfortable Motion Scrolling
```
let g:comfortable_motion_scroll_down_key = "j"
let g:comfortable_motion_scroll_up_key = "k"
```
```
nnoremap :call comfortable_motion#flick(g:comfortable_motion_imp ulse_multiplier * winheight(0) * 2)
nnoremap :call comfortable_motion#flick(g:comfortable_motion_imp ulse_multiplier * winheight(0) * -2)
nnoremap :call comfortable_motion#flick(g:comfortable_motion_imp ulse_multiplier * winheight(0) * 4)
nnoremap :call comfortable_motion#flick(g:comfortable_motion_imp ulse_multiplier * winheight(0) * -4)
```

### NerdTree Toggle
* NerdTree wil automatically open when vim is launched in terminal without a file
```
nmap " :NERDTreeToggle
```
### Disable Arrow Keys
```
no
no
no
no

ino
ino
ino
ino

vno
vno
vno
vno
```