Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- syntax on
- call plug#begin('~/.vim/plugged')
- if !has('nvim')
- Plug 'roxma/nvim-yarp'
- Plug 'roxma/vim-hug-neovim-rpc'
- endif
- let g:deoplete#enable_at_startup = 1
- "Plug 'powerline/powerline',{'rtp':'powerline/bindings/vim/'}
- "Plug 'crosbymichael/vim-cfmt'
- Plug 'vim-airline/vim-airline'
- "Plug 'vim-airline/vim-airline-themes'
- Plug 'ycm-core/YouCompleteMe'
- filetype plugin on
- Plug 'fatih/vim-go',{'do':':GoUpdateBinaries'}
- Plug 'preservim/tagbar'
- Plug 'scrooloose/nerdcommenter'
- Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
- Plug 'junegunn/fzf.vim'
- Plug 'rust-lang/rust.vim'
- Plug 'dense-analysis/ale'
- Plug 'airblade/vim-rooter'
- Plug 'prabirshrestha/vim-lsp'
- "Plug 'zacanger/angr.vim'
- "Plug 'morhetz/gruvbox'
- "Plug 'mattn/vim-lsp-settings'
- Plug 'cocopon/iceberg.vim'
- Plug 'ntpeters/vim-better-whitespace'
- Plug 'chriskempson/base16-vim'
- Plug 'rafi/awesome-vim-colorschemes'
- Plug 'rhysd/vim-clang-format'
- Plug 'tpope/vim-surround'
- Plug 'skywind3000/asyncrun.vim'
- Plug 'tpope/vim-fugitive'
- Plug 'habamax/vim-rst'
- let g:airline_powerline_fonts=1
- " YCM: load extra conf
- let g:ycm_confirm_extra_conf = 0
- let g:ycm_autoclose_preview_window_after_insertion = 1
- let g:ycm_semantic_triggers = { 'c': [ 're!\w{4}' ] }
- let g:ycm_clangd_args=['--header-insertion=never'] " don't include headers
- let g:clang_format#command = "/usr/bin/clang-format"
- "set omnifunc=ale#completion#OmniFunc
- let rustfmt_autosave=1
- nmap <F8> :TagbarToggle<CR>
- let g:go_def_mapping_enabled=0
- call plug#end()
- set termguicolors
- " colorscheme selection
- "colorscheme iceberg
- "colorscheme mountaineer
- "colorscheme base16-gruvbox-dark-pale
- "colorscheme gotham
- colorscheme molokai
- "colorscheme termschool
- "hi Search ctermbg=Yellow
- "hi Search ctermfg=Black
- " Настроим кол-во символов пробелов, которые будут заменять \t
- set tabstop=8
- set shiftwidth=8
- set smarttab
- " set et " — включим автозамену по умолчанию
- " set expandtab
- set copyindent
- " set smartindent
- set preserveindent
- set softtabstop=0
- " 80 symbols per line
- set tw=80
- set wrap " — попросим Vim переносить длинные строки
- set formatoptions=tcrq
- " case sensitive search
- set noic
- " nmap <F9> :set ignorecase! ignorecase?
- nmap <F5> :FZF<CR>
- autocmd FileType go nmap <F7> :GoTest<CR>
- autocmd FileType go nmap <F9> :GoBuild<CR>
- autocmd FileType go nmap <F10> :GoDef<CR>
- autocmd FileType go nmap <F6> :cclose<CR>:pclose<CR>:lclose<CR>
- autocmd FileType rust nmap <F9> :Cargo build<CR>
- autocmd FileType rust nmap <F7> :Cargo test<CR>
- autocmd FileType rust nmap <F6> :cclose<CR>:pclose<CR>:lclose<CR>
- autocmd FileType rust setlocal omnifunc=lsp#complete
- autocmd BufRead *.c,*.h nmap <F9> :ClangFormat<CR>
- autocmd BufRead *.c,*.h nmap <F10> :YcmCompleter GoToDefinition<CR>
- autocmd BufRead *.rst set nowrap
- set ai " — включим автоотступы для новых строк
- set cin " — включим отступы в стиле Си
- " Далее настроим поиск и подсветку результатов поиска и совпадения скобок
- set showmatch
- set hlsearch
- set incsearch
- highlight ExtraWhitespace ctermbg=red guibg=red
- match ExtraWhitespace /\s\+$/
- autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
- autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
- autocmd InsertLeave * match ExtraWhitespace /\s\+$/
- autocmd BufWinLeave * call clearmatches()
- set lz " — ленивая перерисовка экрана при выполнении скриптов
- " Показываем табы в начале строки точками
- set listchars=tab:··,trail:·
- "set listchars=tab:│·,trail:·,extends:→
- "set listchars=tab:│\ ,trail:·,extends:→
- set list
- "Порядок применения кодировок и формата файлов
- set ffs=unix,dos,mac
- set fencs=utf-8,cp1251,koi8-r,ucs-2,cp866
- "Взаимодействие и элементы интерфейса
- "Я часто выделяю мышкой содержимое экрана в Putty, но перехват мышки в Vim мне иногда мешает. Отключаем функционал вне графического режима:
- if !has('gui_running')
- set mouse=
- endif
- "Опять же, системы сборки для разных платформ могут быть переопределены:
- if has('win32')
- set makeprg=nmake
- compiler msvc
- else
- set makeprg=make
- compiler gcc
- endif
- "highlight Comment ctermfg=DarkGrey
- set laststatus=2
- set t_Co=256
- " Turn ALE on
- let g:ale_enabled = 0
- "let g:ale_linters = { 'c': ['cppcheck']}
- " Use cppcheck for C/C++
- let g:ale_linters = {
- \ 'go': ['revive', 'gometalinter', 'gofmt'] ,
- \ 'c': ['cppcheck'],
- \ 'cpp': ['cppcheck'],
- \}
- " Linting behavior (pick what you like)
- let g:ale_lint_on_text_changed = 'normal' " or 'never'
- let g:ale_lint_on_insert_leave = 1
- let g:ale_lint_on_enter = 1
- let g:ale_lint_on_save = 1
- " Show signs + use loclist/quickfix if desired
- let g:ale_sign_column_always = 1
- let g:ale_set_loclist = 1
- let g:ale_set_quickfix = 0
- " Optional: open list automatically when problems exist
- let g:ale_open_list = 0
- let g:ale_cpp_cppcheck_options =
- \ '--enable=warning,style,performance,portability ' .
- \ '--inline-suppr ' .
- \ '--suppress=missingIncludeSystem ' .
- \ '--language=c++ ' .
- \ '--std=c++17'
- let g:ale_c_cppcheck_options =
- \ '--enable=warning,style,performance,portability ' .
- \ '--inline-suppr ' .
- \ '--suppress=missingIncludeSystem ' .
- \ '--language=c ' .
- \ '--std=gnu17'
- " crosbymichael/vim-cfmt
- "autocmd BufWritePre *.c,*.h Cfmt
- "let g:cfmt_style = '-linux -l120'
- let g:tagbar_position = "topleft vertical"
- " For use with gotags
- let g:tagbar_type_go = {
- \ 'ctagstype' : 'go',
- \ 'kinds' : [
- \ 'p:package',
- \ 'i:imports:1',
- \ 'c:constants',
- \ 'v:variables',
- \ 't:types',
- \ 'n:interfaces',
- \ 'w:fields',
- \ 'e:embedded',
- \ 'm:methods',
- \ 'r:constructor',
- \ 'f:functions'
- \ ],
- \ 'sro' : '.',
- \ 'kind2scope' : {
- \ 't' : 'ctype',
- \ 'n' : 'ntype'
- \ },
- \ 'scope2kind' : {
- \ 'ctype' : 't',
- \ 'ntype' : 'n'
- \ },
- \ 'ctagsbin' : 'gotags',
- \ 'ctagsargs' : '-sort -silent'
- \ }
- set bg=dark
- " Disable arrow keys - force to use home line
- nnoremap <up> <nop>
- nnoremap <down> <nop>
- inoremap <up> <nop>
- inoremap <down> <nop>
- inoremap <left> <nop>
- inoremap <right> <nop>
- let g:rooter_patterns = ['.vimroot', '.git/', '.python-version']
- augroup vimrc_rooter
- autocmd VimEnter * :Rooter
- augroup END
- "Toggle YouCompleteMe on and off with F3
- function Toggle_ycm()
- if g:ycm_show_diagnostics_ui == 0
- let g:ycm_auto_trigger = 1
- let g:ycm_show_diagnostics_ui = 1
- :YcmRestartServer
- :e
- :echo "YCM on"
- elseif g:ycm_show_diagnostics_ui == 1
- let g:ycm_auto_trigger = 0
- let g:ycm_show_diagnostics_ui = 0
- :YcmRestartServer
- :e
- :echo "YCM off"
- endif
- endfunction
- map <F3> :call Toggle_ycm() <CR>
- function MakeTabSpaces()
- setlocal shiftwidth=4
- setlocal tabstop=4
- setlocal softtabstop=4
- setlocal expandtab
- endfunction
- function DockerExec(image, cmd)
- let save_efm=&errorformat
- setlocal errorformat=%*[^-]---\ %f:%l:\ error:\ %m
- "setlocal errorformat=%E[\ \ ERROR\ \ \ ]%#---\ %m,%Z[\ \ \ LINE\ \ \ ]%#---\ %f:%l:%*[^:]:\ %m
- "setlocal errorformat=%E[%#\ ERROR\ %#]%#---\ %m,%Z[%#\ LINE\ %#]%#---\ %f:%l:%*[^:]:\ %m
- execute 'AsyncRun docker exec ' . a:image . ' ' . a:cmd
- call clearmatches()
- let &errorformat=save_efm
- endfunction
- map <F4> :call DockerExec("floweaver-24.11", "meson test -v") <CR>
- nnoremap <C-j> :cnext<cr>
- nnoremap <C-k> :cprev<cr>
Advertisement
Add Comment
Please, Sign In to add comment