Skip to content

Instantly share code, notes, and snippets.

@makeev
Created March 4, 2021 08:48
Show Gist options
  • Save makeev/8d08c4e143455e166d8d1fba1765b5af to your computer and use it in GitHub Desktop.
Save makeev/8d08c4e143455e166d8d1fba1765b5af to your computer and use it in GitHub Desktop.
set synmaxcol=2048 " убираем тормоза подсветки на больших файлах
set nofoldenable " не схлопываем код по умолчанию
set number " показывать номера строк
let g:ackprg = 'ag --nogroup --nocolor --column' " что-то для поиска :Ag
let g:ack_autoclose = 0
" let g:ackpreview = 0
set switchbuf=useopen " открывать превью поиска в том же буфере
set iskeyword+=- " treat dash separated words as a word text object
set mouse=a " Enable your mouse
set clipboard=unnamedplus "Copy paste between vim and everything else
" syntax для django шаблонов по умолчанию
au BufNewFile,BufRead *.html set filetype=htmldjango
" ремапим чтобы не конфликтовал с поиском
let g:comfortable_motion_no_default_key_mappings = 1
nnoremap <silent> <C-j> :call comfortable_motion#flick(100)<CR>
nnoremap <silent> <C-k> :call comfortable_motion#flick(-100)<CR>
" биндим fuzzy find на ctrl+f
nnoremap <C-f> :FZF -m<cr>
" ,p чтобы показать польный путь до файла
nnoremap <leader>p :echo @%<cr>
" тут какие-то автозамены
imap ;lol пыщь-пыщь-ололо
imap ;ps <?=?><left><left>
imap ;php <?php ?><left><left>
imap ;fun function() {}<left><cr>
imap ;tag {%%}<left><left>
" выводим серую линию на 80 символах и серый фон после 120
" лучше добавить в файл темы, чтобы не ломалось после ,z
highlight ColorColumn ctermbg=235 guibg=#2c2d27
let &colorcolumn="80,".join(range(120,999),",")
" тут начинаются плагины, не забывать вызывать :PlugInstall после обновления
call plug#begin('~/.local/share/nvim/plugged')
Plug 'mg979/vim-visual-multi'
let g:VM_maps = {}
let g:VM_maps['Find Under'] = '<C-d>' " replace C-n
let g:VM_maps['Find Subword Under'] = '<C-d>' " replace visual C-n
let g:VM_mouse_mappings = 1
" джедайский плагин для питона
Plug 'davidhalter/jedi-vim'
" let g:jedi#completions_command = "<C-n>"
" кажется это все не надо, т.к. заменяется deoplete
let g:jedi#popup_select_first = 1
let g:jedi#show_call_signatures = "1"
let g:jedi#goto_definitions_command = "gd"
let g:pymode_rope = 0 " fast autocompletion
autocmd FileType python setlocal completeopt-=preview
" автоимпорт
Plug 'mgedmin/python-imports.vim'
map <a-cr> :ImportName<CR>
" автонастройка окружения из virtualenv
Plug 'jmcantrell/vim-virtualenv'
let g:virtualenv_auto_activate = 1
" нормальный автокомплит
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
endif
let g:deoplete#enable_at_startup = 1
Plug 'deoplete-plugins/deoplete-jedi'
" отключаем джейдайский комплит, чтобы deoplete заработал
let g:jedi#completions_enabled = 0
" поддержка файлов .editorconfig
Plug 'editorconfig/editorconfig-vim'
" список методов и функций на F8
Plug 'majutsushi/tagbar'
nmap <F8> :TagbarToggle<CR>
" красивый статус бар
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
let g:airline_theme='simple'
" :ImpSort сортирует питоновский импорт
Plug 'tweekmonster/impsort.vim'
" git настройка для NERDTree
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'airblade/vim-gitgutter'
let g:gitgutter_enabled = 1
set updatetime=100
" пиздатый поиск по всему https://github.com/junegunn/fzf.vim#commands
Plug '/usr/local/opt/fzf'
Plug 'junegunn/fzf.vim'
" shift+s для surround выделенного в скобки/теги/кавычки
Plug 'tpope/vim-surround'
" nodejs
Plug 'mmalecki/vim-node.js'
Plug 'moll/vim-node'
" docstring в стиле sphinx
Plug 'sirver/ultisnips'
let g:ultisnips_python_style = 'sphinx'
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"
Plug 'heavenshell/vim-pydocstring'
" react tsx syntax
Plug 'leafgarland/typescript-vim'
Plug 'peitalin/vim-jsx-typescript'
" Django
Plug 'vim-scripts/django.vim'
" Stylus
Plug 'wavded/vim-stylus'
" Lorem
Plug 'vim-scripts/loremipsum'
" Autoclose html tag
Plug 'docunext/closetag.vim'
" Python autoimport
" Plug 'mgedmin/python-imports.vim'
" map <ALT+r> :ImportName<CR>
" react
Plug 'mxw/vim-jsx'
" json pretty
Plug 'alfredodeza/jacinto.vim'
Plug 'neomake/neomake'
" terraform
Plug 'hashivim/vim-terraform'
Plug 'vim-syntastic/syntastic'
Plug 'juliosueiras/vim-terraform-completion'
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 1
let g:terraform_align=1
let g:terraform_fmt_on_save=1
let g:syntastic_terraform_tffilter_plan = 1
let g:terraform_completion_keys = 1
let g:terraform_registry_module_completion = 1
call plug#end()
set completeopt+=noselect
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
" let g:deoplete#omni_patterns = {}
call deoplete#custom#option('omni_patterns', {
\ 'complete_method': 'omnifunc',
\ 'terraform': '[^ *\t"{=$]\w*',
\})
call deoplete#initialize()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment