Vim 8 is slow to start due to vim-isort
Opened this issue · 6 comments
haruanm commented
For some reason vim isort is taking 1.5 sec to start, i'm using Pathogen, some idea about what to check?
times in msec
clock self+sourced self: sourced script
clock elapsed: other lines
000.006 000.006: --- VIM STARTING ---
000.125 000.119: Allocated generic buffers
000.184 000.059: locale set
000.191 000.007: window checked
000.776 000.585: inits 1
000.897 000.121: parsing arguments
000.901 000.004: expanding arguments
000.924 000.023: shell init
001.289 000.365: Termcap init
001.322 000.033: inits 2
001.538 000.216: init highlight
002.089 000.418 000.418: sourcing /usr/share/vim/vim80/debian.vim
004.266 001.902 001.902: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
004.630 002.362 000.460: sourcing /usr/share/vim/vim80/syntax/synload.vim
015.975 011.206 011.206: sourcing /usr/share/vim/vim80/filetype.vim
016.020 013.850 000.282: sourcing /usr/share/vim/vim80/syntax/syntax.vim
016.044 014.463 000.195: sourcing $VIM/vimrc
016.486 000.176 000.176: sourcing /home/hjustino/.vim/autoload/pathogen.vim
024.359 001.991 001.991: sourcing /usr/share/vim/vim80/ftoff.vim
032.430 000.032 000.032: sourcing /home/hjustino/.vim/bundle/ultisnips/ftdetect/snippets.vim
032.549 000.018 000.018: sourcing /home/hjustino/.vim/bundle/vim-fugitive/ftdetect/fugitive.vim
032.783 000.021 000.021: sourcing /home/hjustino/.vim/bundle/vim-vue/ftdetect/vue.vim
033.012 007.800 007.729: sourcing /usr/share/vim/vim80/filetype.vim
033.624 000.374 000.374: sourcing /usr/share/vim/vim80/syntax/nosyntax.vim
034.584 000.277 000.277: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
034.762 000.807 000.530: sourcing /usr/share/vim/vim80/syntax/synload.vim
034.810 001.627 000.446: sourcing /usr/share/vim/vim80/syntax/syntax.vim
035.126 000.023 000.023: sourcing /usr/share/vim/vim80/filetype.vim
035.504 000.082 000.082: sourcing /usr/share/vim/vim80/ftplugin.vim
035.945 000.116 000.116: sourcing /usr/share/vim/vim80/indent.vim
038.334 001.938 001.938: sourcing /usr/share/vim/vim80/syntax/nosyntax.vim
039.069 000.181 000.181: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
039.196 000.592 000.411: sourcing /usr/share/vim/vim80/syntax/synload.vim
039.224 002.890 000.360: sourcing /usr/share/vim/vim80/syntax/syntax.vim
039.391 000.011 000.011: sourcing /usr/share/vim/vim80/filetype.vim
039.560 000.008 000.008: sourcing /usr/share/vim/vim80/ftplugin.vim
039.723 000.008 000.008: sourcing /usr/share/vim/vim80/indent.vim
040.444 000.160 000.160: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
040.992 000.188 000.188: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
041.374 000.152 000.152: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
041.617 000.085 000.085: sourcing /home/hjustino/.vim/bundle/onedark.vim/autoload/onedark.vim
060.263 019.735 019.310: sourcing /home/hjustino/.vim/bundle/onedark.vim/colors/onedark.vim
060.990 000.388 000.388: sourcing /usr/share/vim/vim80/syntax/nosyntax.vim
061.858 000.255 000.255: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
062.448 000.221 000.221: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
080.994 019.745 019.269: sourcing /home/hjustino/.vim/bundle/onedark.vim/colors/onedark.vim
081.104 019.939 000.194: sourcing /usr/share/vim/vim80/syntax/synload.vim
081.135 020.569 000.242: sourcing /usr/share/vim/vim80/syntax/syntax.vim
081.869 000.254 000.254: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
082.531 000.248 000.248: sourcing /usr/share/vim/vim80/syntax/syncolor.vim
102.411 021.191 020.689: sourcing /home/hjustino/.vim/bundle/onedark.vim/colors/onedark.vim
102.942 086.859 010.472: sourcing $HOME/.vimrc
102.946 000.086: sourcing vimrc file(s)
103.474 000.387 000.387: sourcing /home/hjustino/.vim/bundle/ReplaceWithRegister/plugin/ReplaceWithRegister.vim
103.738 000.203 000.203: sourcing /home/hjustino/.vim/bundle/ack.vim/plugin/ack.vim
104.716 000.107 000.107: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/events.vim
105.050 001.253 001.146: sourcing /home/hjustino/.vim/bundle/ale/plugin/ale.vim
105.311 000.203 000.203: sourcing /home/hjustino/.vim/bundle/commentary/plugin/commentary.vim
105.783 000.387 000.387: sourcing /home/hjustino/.vim/bundle/conflict-marker.vim/plugin/conflict_marker.vim
106.247 000.196 000.196: sourcing /home/hjustino/.vim/bundle/ctrlp.vim/autoload/ctrlp/mrufiles.vim
106.476 000.633 000.437: sourcing /home/hjustino/.vim/bundle/ctrlp.vim/plugin/ctrlp.vim
107.040 000.125 000.125: sourcing /home/hjustino/.vim/bundle/nerdtree/autoload/nerdtree.vim
108.134 000.445 000.445: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/path.vim
108.321 000.121 000.121: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/menu_controller.vim
108.453 000.073 000.073: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/menu_item.vim
108.606 000.095 000.095: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/key_map.vim
108.948 000.284 000.284: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/bookmark.vim
109.239 000.219 000.219: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/tree_file_node.vim
109.683 000.382 000.382: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/tree_dir_node.vim
109.922 000.180 000.180: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/opener.vim
110.191 000.210 000.210: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/creator.vim
110.306 000.056 000.056: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/flag_set.vim
110.485 000.122 000.122: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/nerdtree.vim
110.808 000.269 000.269: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/ui.vim
110.895 000.029 000.029: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/event.vim
110.995 000.043 000.043: sourcing /home/hjustino/.vim/bundle/nerdtree/lib/nerdtree/notifier.vim
111.418 000.358 000.358: sourcing /home/hjustino/.vim/bundle/nerdtree/autoload/nerdtree/ui_glue.vim
113.639 000.098 000.098: sourcing /home/hjustino/.vim/bundle/nerdtree/nerdtree_plugin/exec_menuitem.vim
114.194 000.537 000.537: sourcing /home/hjustino/.vim/bundle/nerdtree/nerdtree_plugin/fs_menu.vim
114.251 000.038 000.038: sourcing /home/hjustino/.vim/bundle/nerdtree/nerdtree_plugin/vcs.vim
114.889 000.579 000.579: sourcing /home/hjustino/.vim/bundle/nerdtree-git-plugin/nerdtree_plugin/git_status.vim
115.214 008.681 004.418: sourcing /home/hjustino/.vim/bundle/nerdtree/plugin/NERD_tree.vim
115.679 000.083 000.083: sourcing /home/hjustino/.vim/bundle/ultisnips/autoload/UltiSnips/map_keys.vim
115.769 000.473 000.390: sourcing /home/hjustino/.vim/bundle/ultisnips/plugin/UltiSnips.vim
116.173 000.096 000.096: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/init.vim
116.600 000.091 000.091: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/parts.vim
117.611 000.118 000.118: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/util.vim
117.639 001.817 001.512: sourcing /home/hjustino/.vim/bundle/vim-airline/plugin/airline.vim
118.145 000.446 000.446: sourcing /home/hjustino/.vim/bundle/vim-buffergator/plugin/buffergator.vim
122.076 003.870 003.870: sourcing /home/hjustino/.vim/bundle/vim-ctags/plugin/ctags.vim
122.856 000.648 000.648: sourcing /home/hjustino/.vim/bundle/vim-fugitive/plugin/fugitive.vim
123.409 000.164 000.164: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/utility.vim
123.871 000.114 000.114: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/highlight.vim
124.931 001.989 001.711: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/plugin/gitgutter.vim
1615.779 1490.774 1490.774: sourcing /home/hjustino/.vim/bundle/vim-isort/plugin/python_vimisort.vim
1616.014 000.111 000.111: sourcing /home/hjustino/.vim/bundle/vim-snippets/plugin/vimsnippets.vim
1616.246 000.177 000.177: sourcing /home/hjustino/.vim/bundle/vim-sort-motion/plugin/sort_motion.vim
1616.907 000.601 000.601: sourcing /home/hjustino/.vim/bundle/vim-surround/plugin/surround.vim
1617.189 000.220 000.220: sourcing /home/hjustino/.vim/bundle/vim-system-copy/plugin/system_copy.vim
1617.978 000.499 000.499: sourcing /home/hjustino/.vim/bundle/vim-textobj-user/autoload/textobj/user.vim
1619.368 002.082 001.583: sourcing /home/hjustino/.vim/bundle/vim-textobj-entire/plugin/textobj/entire.vim
1621.888 002.440 002.440: sourcing /home/hjustino/.vim/bundle/vim-textobj-indent/plugin/textobj/indent.vim
1623.320 001.351 001.351: sourcing /home/hjustino/.vim/bundle/vim-textobj-line/plugin/textobj/line.vim
1623.630 000.090 000.090: sourcing /usr/share/vim/vim80/plugin/getscriptPlugin.vim
1623.973 000.325 000.325: sourcing /usr/share/vim/vim80/plugin/gzip.vim
1624.252 000.261 000.261: sourcing /usr/share/vim/vim80/plugin/logiPat.vim
1624.285 000.014 000.014: sourcing /usr/share/vim/vim80/plugin/manpager.vim
1624.500 000.201 000.201: sourcing /usr/share/vim/vim80/plugin/matchparen.vim
1625.236 000.718 000.718: sourcing /usr/share/vim/vim80/plugin/netrwPlugin.vim
1625.278 000.017 000.017: sourcing /usr/share/vim/vim80/plugin/rrhelper.vim
1625.329 000.033 000.033: sourcing /usr/share/vim/vim80/plugin/spellfile.vim
1625.542 000.195 000.195: sourcing /usr/share/vim/vim80/plugin/tarPlugin.vim
1625.662 000.099 000.099: sourcing /usr/share/vim/vim80/plugin/tohtml.vim
1625.909 000.228 000.228: sourcing /usr/share/vim/vim80/plugin/vimballPlugin.vim
1626.116 000.186 000.186: sourcing /usr/share/vim/vim80/plugin/zipPlugin.vim
1626.124 002.065: loading plugins
1626.169 000.045: loading packages
1626.373 000.124 000.124: sourcing /home/hjustino/.vim/bundle/ultisnips/after/plugin/UltiSnips_after.vim
1626.388 000.095: loading after plugins
1626.401 000.013: inits 3
1628.833 002.432: reading viminfo
1628.860 000.027: setting raw mode
1628.866 000.006: start termcap
1628.919 000.053: clearing screen
1631.622 000.534 000.534: sourcing /usr/share/vim/vim80/scripts.vim
1634.983 002.553 002.553: sourcing /usr/share/vim/vim80/ftplugin/text.vim
1637.007 000.308 000.308: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions.vim
1637.212 000.065 000.065: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/quickfix.vim
1637.658 000.338 000.338: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline.vim
1637.924 000.088 000.088: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/netrw.vim
1638.145 000.087 000.087: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/term.vim
1638.436 000.148 000.148: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/ctrlp.vim
1638.811 000.192 000.192: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/hunks.vim
1639.371 000.379 000.379: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/branch.vim
1639.663 000.086 000.086: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/fugitiveline.vim
1640.129 000.250 000.250: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/ale.vim
1640.783 000.245 000.245: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/whitespace.vim
1641.294 000.140 000.140: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/po.vim
1641.671 000.224 000.224: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/wordcount.vim
1642.181 000.109 000.109: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/keymap.vim
1648.484 000.420 000.420: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/section.vim
1649.303 000.486 000.486: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/highlighter.vim
1652.730 000.132 000.132: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/themes.vim
1653.307 001.105 000.973: sourcing /home/hjustino/.vim/bundle/onedark.vim/autoload/airline/themes/onedark.vim
1655.374 000.904 000.904: sourcing /home/hjustino/.vim/bundle/onedark.vim/autoload/airline/themes/onedark.vim
1680.466 000.391 000.391: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/builder.vim
1681.453 000.313 000.313: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/wordcount/formatters/default.vim
1681.995 000.200 000.200: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/extensions/default.vim
1704.193 000.082 000.082: sourcing /home/hjustino/.vim/bundle/conflict-marker.vim/autoload/conflict_marker/detect.vim
1709.568 004.957 004.957: sourcing /home/hjustino/.vim/bundle/vim-fugitive/autoload/fugitive.vim
1710.774 000.168 000.168: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale.vim
1711.183 000.287 000.287: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/util.vim
1711.604 000.304 000.304: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/linter.vim
1712.675 000.203 000.203: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/handlers/alex.vim
1713.071 001.005 000.802: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/alex.vim
1713.671 000.296 000.296: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/handlers/languagetool.vim
1714.151 001.055 000.759: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/languagetool.vim
1714.858 000.673 000.673: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/proselint.vim
1715.474 000.580 000.580: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/redpen.vim
1716.089 000.580 000.580: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/textlint.vim
1716.682 000.558 000.558: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/vale.vim
1717.242 000.354 000.354: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/handlers/writegood.vim
1717.735 001.019 000.665: sourcing /home/hjustino/.vim/bundle/ale/ale_linters/text/writegood.vim
1718.930 000.198 000.198: sourcing /home/hjustino/.vim/bundle/ctrlp.vim/autoload/ctrlp/utils.vim
1738.532 088.582: opening buffers
1739.113 000.196 000.196: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter.vim
1739.804 000.087 000.087: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/async.vim
1740.030 000.096 000.096: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/debug.vim
1749.738 007.839 007.839: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/diff.vim
1756.289 000.471 000.471: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/hunk.vim
1756.833 000.241 000.241: sourcing /home/hjustino/.vim/bundle/vim-gitgutter/autoload/gitgutter/sign.vim
1757.234 009.772: BufEnter autocommands
1757.238 000.004: editing files in windows
1757.622 000.384: VimEnter autocommands
1757.623 000.001: before starting main loop
1763.060 000.311 000.311: sourcing /home/hjustino/.vim/bundle/vim-airline/autoload/airline/async.vim
1767.047 001.045 001.045: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/engine.vim
1767.582 000.281 000.281: sourcing /home/hjustino/.vim/bundle/ale/autoload/ale/statusline.vim
1776.928 017.668: first screen update
1776.948 000.020: --- VIM STARTED ---
This is my vimrc file:
" This is Haruan Justino's .vimrc file
" remove all existing autocmds
autocmd!
execute pathogen#infect()
syntax on
filetype plugin indent on
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" BASIC EDITING CONFIGURATION
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible
" allow unsaved background buffers and remember marks/undo for them
set hidden
" remember more commands and search history
set history=10000
set expandtab
set number
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set laststatus=2
set showmatch
set incsearch
set hlsearch
" make searches case-sensitive only if they contain upper-case characters
set ignorecase smartcase
" highlight current line
set cursorline
set cmdheight=1
set switchbuf=useopen
" Always show tab bar at the top
set showtabline=2
set winwidth=79
" This makes RVM work inside Vim. I have no idea why.
set shell=bash
" Prevent Vim from clobbering the scrollback buffer. See
" http://www.shallowsky.com/linux/noaltscreen.html
" set t_ti= t_te=
" keep more context when scrolling off the end of a buffer
set scrolloff=3
" Don't make backups at all
set nobackup
set nowritebackup
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
" display incomplete commands
set showcmd
" Enable highlighting for syntax
syntax on
" Enable file type detection.
" Use the default filetype settings, so that mail gets 'tw' set to 72,
" 'cindent' is on in C files, etc.
" Also load indent files, to automatically do language-dependent indenting.
filetype plugin indent on
" use emacs-style tab completion when selecting files, etc
set wildmode=longest,list
" make tab completion for files/buffers act like bash
set wildmenu
let mapleader=","
" Fix slow O inserts
:set timeout timeoutlen=1000 ttimeoutlen=100
" Normally, Vim messes with iskeyword when you open a shell file. This can
" leak out, polluting other file types even after a 'set ft=' change. This
" variable prevents the iskeyword change so it can't hurt anyone.
let g:sh_noisk=1
" Modelines (comments that set vim options on a per-file basis)
set modeline
set modelines=3
" Turn folding off for real, hopefully
set foldmethod=manual
set nofoldenable
" Insert only one space when joining lines that contain sentence-terminating
" punctuation like `.`.
set nojoinspaces
" If a file is changed outside of vim, automatically reload it without asking
set autoread
" Use the old vim regex engine (version 1, as opposed to version 2, which was
" introduced in Vim 7.3.969). The Ruby syntax highlighting is significantly
" slower with the new regex engine.
set re=1
" Stop SQL language files from doing unholy things to the C-c key
let g:omni_sql_no_default_maps = 1
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CUSTOM AUTOCMDS
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
augroup vimrcEx
" Clear all autocmds in the group
autocmd!
autocmd FileType text setlocal textwidth=78
" Jump to last cursor position unless it's invalid or in an event handler
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
"for ruby, autoindent with two spaces, always expand tabs
autocmd FileType ruby,haml,eruby,yaml,html,sass,cucumber set ai sw=2 sts=2 et
autocmd FileType python set sw=4 sts=4 et
autocmd! BufRead,BufNewFile *.sass setfiletype sass
autocmd BufRead *.mkd set ai formatoptions=tcroqn2 comments=n:>
autocmd BufRead *.markdown set ai formatoptions=tcroqn2 comments=n:>
" Indent p tags
" autocmd FileType html,eruby if g:html_indent_tags !~ '\\|p\>' | let g:html_indent_tags .= '\|p\|li\|dt\|dd' | endif
" Don't syntax highlight markdown because it's often wrong
autocmd! FileType mkd setlocal syn=off
" Leave the return key alone when in command line windows, since it's used
" to run commands there.
autocmd! CmdwinEnter * :unmap <cr>
autocmd! CmdwinLeave * :call MapCR()
" *.md is markdown
autocmd! BufNewFile,BufRead *.md setlocal ft=
" indent slim two spaces, not four
autocmd! FileType slim set sw=2 sts=2 et
" javascript
autocmd! FileType javascript set sw=2 sts=2 expandtab autoindent smartindent nocindent
" Expand tabs in Go. Was gofmt raised in a barn?!
autocmd! FileType go set sw=4 sts=4 expandtab | retab
augroup END
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" COLOR
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:set background=dark
:color onedark
if exists('+termguicolors')
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
endif
" Theme
syntax enable
set cursorline
colorscheme onedark
let g:enable_bold_font = 1
let g:enable_italic_font = 1
let g:hybrid_transparent_background = 1
let g:airline_theme='onedark'
let g:airline_powerline_fonts = 1
highlight OverLength ctermbg=darkred ctermfg=white guibg=#592929
match OverLength /\%>120v.\+/
if exists('+colorcolumn')
set colorcolumn=120
else
au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>120v.\+', -1)
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" AUTOCLOSE MAPS
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
noremap " ""<left>
inoremap ' ''<left>
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>O
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" FIX SOME TYPOS
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:abbr lenght length
:abbr heigth height
:abbr rigth right
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" ULTISNIPS CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:UltiSnipsExpandTrigger = ',<tab>'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" ACK.VIM CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:ackprg = 'ag --nogroup --nocolor --column'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" PYDOCSTRING CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <Leader>d :Pydocstring<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" BUFFERGATOR CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap <C-b> :CtrlPTag<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTRLP CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
let g:ctrlp_show_hidden = 1
nnoremap <C-t> :CtrlPTag<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" ALE CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:ale_sign_column_always = 1
let g:ale_sign_error = '>>'
let g:ale_sign_warning = '--'
let b:ale_linters = ['pylint', 'flake8']
let g:ale_python_pylint_options = '--load-plugins pylint_django'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" VIM VUE CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd FileType vue syntax sync fromstart
autocmd BufRead,BufNewFile *.vue setlocal filetype=vue.html.javascript.css
autocmd! FileType vue set sw=2 sts=2 expandtab autoindent smartindent nocindent
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" NERDTREE CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <silent><Leader>m :NERDTreeToggle<CR>
:let g:NERDTreeWinSize=30
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1
let NERDTreeAutoDeleteBuffer = 1
let NERDTreeShowHidden=1
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" TAGBAR CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <silent><Leader>t :TagbarToggle<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" GITGUTTER CONFIG
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
highlight clear SignColumn
highlight GitGutterAdd ctermfg=green guifg=darkgreen
highlight GitGutterChange ctermfg=yellow guifg=darkyellow
highlight GitGutterDelete ctermfg=red guifg=darkred
highlight GitGutterChangeDelete ctermfg=yellow guifg=darkyellow
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" MISC KEY MAPS
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map <leader>y "*y
" Move around splits with <c-hjkl>
nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l
" Insert a hash rocket with <c-l>
imap <c-l> <space>=><space>
" Can't be bothered to understand ESC vs <c-c> in insert mode
imap <c-c> <esc>
nnoremap <leader><leader> <c-^>
" Align selected lines
vnoremap <leader>ib :!align<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" SHORTCUT TO REFERENCE CURRENT FILE'S PATH IN COMMAND LINE MODE
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
cnoremap <expr> %% expand('%:h').'/'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" RENAME CURRENT FILE
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! RenameFile()
let old_name = expand('%')
let new_name = input('New file name: ', expand('%'), 'file')
if new_name != '' && new_name != old_name
exec ':saveas ' . new_name
exec ':silent !rm ' . old_name
redraw!
endif
endfunction
map <leader>n :call RenameFile()<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" PROMOTE VARIABLE TO RSPEC LET
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! PromoteToLet()
:normal! dd
" :exec '?^\s*it\>'
:normal! P
:.s/\(\w\+\) = \(.*\)$/let(:\1) { \2 }/
:normal ==
endfunction
:command! PromoteToLet :call PromoteToLet()
:map <leader>p :PromoteToLet<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" EXTRACT VARIABLE (SKETCHY)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! ExtractVariable()
let name = input("Variable name: ")
if name == ''
return
endif
" Enter visual mode (not sure why this is needed since we're already in
" visual mode anyway)
normal! gv
" Replace selected text with the variable name
exec "normal c" . name
" Define the variable on the line above
exec "normal! O" . name . " = "
" Paste the original selected text to be the variable value
normal! $p
endfunction
vnoremap <leader>rv :call ExtractVariable()<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" INLINE VARIABLE (SKETCHY)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! InlineVariable()
" Copy the variable under the cursor into the 'a' register
:let l:tmp_a = @a
:normal "ayiw
" Delete variable and equals sign
:normal 2daW
" Delete the expression into the 'b' register
:let l:tmp_b = @b
:normal "bd$
" Delete the remnants of the line
:normal dd
" Go to the end of the previous line so we can start our search for the
" usage of the variable to replace. Doing '0' instead of 'k$' doesn't
" work; I'm not sure why.
normal k$
" Find the next occurence of the variable
exec '/\<' . @a . '\>'
" Replace that occurence with the text we yanked
exec ':.s/\<' . @a . '\>/' . escape(@b, "/")
:let @a = l:tmp_a
:let @b = l:tmp_b
endfunction
nnoremap <leader>ri :call InlineVariable()<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" OpenChangedFiles COMMAND
" Open a split for each dirty file in git
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! OpenChangedFiles()
only " Close all windows, unless they're modified
let status = system('git status -s | grep "^ \?\(M\|A\|UU\)" | sed "s/^.\{3\}//"')
let filenames = split(status, "\n")
exec "edit " . filenames[0]
for filename in filenames[1:]
exec "sp " . filename
endfor
endfunction
command! OpenChangedFiles :call OpenChangedFiles()
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" InsertTime COMMAND
" Insert the current time
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
command! InsertTime :normal a<c-r>=strftime('%F %H:%M:%S.0 %z')<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" FindConditionals COMMAND
" Start a search for conditional branches, both implicit and explicit
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
command! FindConditionals :normal /\<if\>\|\<unless\>\|\<and\>\|\<or\>\|||\|&&<cr>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" RemoveFancyCharacters COMMAND
" Remove smart quotes, etc.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! RemoveFancyCharacters()
let typo = {}
let typo["“"] = '"'
let typo["”"] = '"'
let typo["‘"] = "'"
let typo["’"] = "'"
let typo["–"] = '--'
let typo["—"] = '---'
let typo["…"] = '...'
:exe ":%s/".join(keys(typo), '\|').'/\=typo[submatch(0)]/ge'
endfunction
command! RemoveFancyCharacters :call RemoveFancyCharacters()
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" MULTIPURPOSE TAB KEY
" Indent if we're at the beginning of a line. Else, do completion.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! InsertTabWrapper()
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k'
return "\<tab>"
else
return "\<c-p>"
endif
endfunction
inoremap <s-tab> <c-n>
inoremap <expr> <tab> InsertTabWrapper()
haruanm commented
I debuged the python_vimisort.vim file, when it tries to import isort on line 37:
from isort import SortImports
I commented this line, now the plugin does not verify if the isort exists, but starts fast.
As soon as Iave some time, I will try to workarround this problem with some more elegant way and do a pull request.
karambaq commented
Same here
jrd commented
wrap the import in a load_isort
function and use it in isort
function:
def load_isort():
try:
# Try isort >= 5
from isort import code
from isort.settings import Config
return code, Config, None
except ImportError:
try:
# Try isort < 5
from isort import SortImports
return None, None, SortImports
except ImportError:
return None, None, None
Then
def isort(text_range):
code, Config, SortImports = load_isort()
if code is None and Config is None and SortImports is None:
...
fisadev commented
Good idea! I'll implement this (unless you want to send a PR)
asiojxzcijvi commented
same here
Skeen commented
What's the status on this?