Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vim 8 is slow to start due to vim-isort #33

Open
haruanm opened this issue Apr 10, 2019 · 6 comments
Open

Vim 8 is slow to start due to vim-isort #33

haruanm opened this issue Apr 10, 2019 · 6 comments

Comments

@haruanm
Copy link

haruanm commented Apr 10, 2019

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:&gt;
  autocmd BufRead *.markdown  set ai formatoptions=tcroqn2 comments=n:&gt;

  " 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
Copy link
Author

haruanm commented May 2, 2019

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
Copy link

Same here

@jrd
Copy link

jrd commented Sep 28, 2020

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
Copy link
Owner

fisadev commented Sep 28, 2020

Good idea! I'll implement this (unless you want to send a PR)

@asiojxzcijvi
Copy link

same here

@Skeen
Copy link

Skeen commented Feb 19, 2021

What's the status on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants