-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit.vim
149 lines (120 loc) · 3.52 KB
/
init.vim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.local/share/nvim/plugged')
Plug 'vim-airline/vim-airline'
Plug 'nvie/vim-flake8'
"Plug 'python-mode/python-mode', { 'for': 'python', 'branch': 'develop' }
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'sonph/onehalf', { 'rtp': 'vim' }
call plug#end()
" COC configuration
"set cmdheight=2
let g:coc_global_extensions = ['coc-yaml', 'coc-git', 'coc-pyright']
""""" Color scheme
colorscheme onehalfdark
let g:airline_theme='onehalfdark'
" Fix folded highlighted
hi Folded ctermbg=0
" Fix coc-pyright popup
hi FgCocErrorFloatBgCocFloating ctermfg=94 ctermbg=253
"""""" python mode configuration
let g:neomake_python_enabled_makers = ['flake8']
" turn on rope
let g:pymode_rope = 1
" turn on completion?
let g:pymode_rope_completion = 1
let g:pymode_rope_goto_definition_bind = "<\-d>"
" Disable code running support
let g:pymode_run = 0
set completeopt=menu
set showmatch
set ts=4
set sts=4
set sw=4
set autoindent
set smartindent
set smarttab
set expandtab
set number
set mouse=a
set hlsearch
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set autowrite " Automatically save before commands like :next and :make
autocmd BufWinLeave *.* silent! mkview
autocmd BufWinEnter *.* silent! loadview
set tags=tags
autocmd BufWritePost *.py silent! !ctags -R --python-kinds=-i --languages=python&;
""""""""""""""""""""""""""""""""""""""""""" Python folding
set foldmethod=expr
set foldexpr=PythonFoldExpr(v:lnum)
set foldtext=PythonFoldText()
map <buffer> f za
map <buffer> F :call ToggleFold()<CR>
let b:folded = 1
function! ToggleFold()
if( b:folded == 0 )
exec "normal! zM"
let b:folded = 1
else
exec "normal! zR"
let b:folded = 0
endif
endfunction
function! PythonFoldText()
let size = 1 + v:foldend - v:foldstart
if size < 10
let size = " " . size
endif
if size < 100
let size = " " . size
endif
if size < 1000
let size = " " . size
endif
if match(getline(v:foldstart), '"""') >= 0
let text = substitute(getline(v:foldstart), '"""', '', 'g' ) . ' '
elseif match(getline(v:foldstart), "'''") >= 0
let text = substitute(getline(v:foldstart), "'''", '', 'g' ) . ' '
else
let text = getline(v:foldstart)
endif
return size . ' lines:'. text . ' '
endfunction
function! PythonFoldExpr(lnum)
if getline(a:lnum) =~ '^\ *\(def\|class\)\ *\s'
" echo "0"
return 0
endif
if getline(a:lnum-1) =~ '^\ *\(def\|class\)\ *\s'
" echo "1"
return 1
endif
if indent(a:lnum) != 0
" echo "First ="
return "="
endif
" if getline( nextnonblank(a:lnum) ) =~ '^\ *\(def\|class\)\ *\s'
" echo "0"
" return '0'
" endif
" echo "Final ="
return "="
endfunction
" In case folding breaks down
function! ReFold()
set foldmethod=expr
set foldexpr=0
set foldnestmax=1
set foldmethod=expr
set foldexpr=PythonFoldExpr(v:lnum)
set foldtext=PythonFoldText()
echo
endfunction
map <buffer> <S-e> :w<CR>:!python3 % <CR>
map <buffer> gd /def <C-R><C-W><CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""