Обновление

This commit is contained in:
Andrei Astafev 2022-11-27 13:55:29 +03:00
parent 3f020a8b33
commit cf9a4dc1e8

219
vimrc
View File

@ -13,11 +13,11 @@ call pathogen#infect()
" https://github.com/junegunn/vim-plug " https://github.com/junegunn/vim-plug
" Менеджер плагинов " " Менеджер плагинов
call plug#begin('~/.vim/plugged') call plug#begin('~/.vim/plugged')
" https://github.com/skywind3000/asyncrun.vim " https://github.com/skywind3000/asyncrun.vim
" Запуск асинхронных команд " " Запуск асинхронных команд
Plug 'skywind3000/asyncrun.vim' Plug 'skywind3000/asyncrun.vim'
" https://github.com/mhinz/vim-startify " https://github.com/mhinz/vim-startify
@ -25,297 +25,302 @@ Plug 'skywind3000/asyncrun.vim'
Plug 'mhinz/vim-startify' Plug 'mhinz/vim-startify'
" https://github.com/lyokha/vim-xkbswitch " https://github.com/lyokha/vim-xkbswitch
" Автоматическое переключение раскладки клавиатуры в режиме вставки " " Автоматическое переключение раскладки клавиатуры в режиме вставки
Plug 'lyokha/vim-xkbswitch' Plug 'lyokha/vim-xkbswitch'
" https://github.com/srcery-colors/srcery-vim " https://github.com/srcery-colors/srcery-vim
" Тема srcery " " Тема srcery
Plug 'srcery-colors/srcery-vim' Plug 'srcery-colors/srcery-vim'
" https://github.com/wellle/context.vim " https://github.com/wellle/context.vim
" Отображение контекста " " Отображение контекста
Plug 'wellle/context.vim' Plug 'wellle/context.vim'
" https://github.com/itchyny/lightline.vim " https://github.com/itchyny/lightline.vim
" Настраиваемая строка состояния " " Настраиваемая строка состояния
" https://github.com/taohexxx/lightline-buffer " https://github.com/taohexxx/lightline-buffer
" Строка с названиями буферов " " Строка с названиями буферов
Plug 'itchyny/lightline.vim' | Plug 'taohexxx/lightline-buffer' Plug 'itchyny/lightline.vim' | Plug 'taohexxx/lightline-buffer'
" https://github.com/Cheeto836/vim-rainbow " https://github.com/Cheeto836/vim-rainbow
" Разноцветные скобки " " Разноцветные скобки
Plug 'Cheeto836/vim-rainbow' Plug 'Cheeto836/vim-rainbow'
" https://github.com/ntpeters/vim-better-whitespace " https://github.com/ntpeters/vim-better-whitespace
" Подсветка лишних пробельных символов " " Подсветка лишних пробельных символов
Plug 'ntpeters/vim-better-whitespace' Plug 'ntpeters/vim-better-whitespace'
" https://github.com/wincent/terminus " https://github.com/wincent/terminus
" Улучшенная поддержка терминала " " Улучшенная поддержка терминала
Plug 'wincent/terminus' Plug 'wincent/terminus'
" https://www.vim.org/scripts/script.php?script_id=231 " https://www.vim.org/scripts/script.php?script_id=231
" Tab для логической разметки, Space для выравнивания " " Tab для логической разметки, Space для выравнивания
Plug 'dpc/vim-smarttabs' Plug 'dpc/vim-smarttabs'
" https://github.com/tpope/vim-commentary
" Комментарии
Plug 'tpope/vim-commentary'
" https://github.com/ctrlpvim/ctrlp.vim " https://github.com/ctrlpvim/ctrlp.vim
" Поиск файлов и буферов " " Поиск файлов и буферов
Plug 'ctrlpvim/ctrlp.vim' Plug 'ctrlpvim/ctrlp.vim'
" https://github.com/easymotion/vim-easymotion " https://github.com/easymotion/vim-easymotion
" Быстрая навигация " " Быстрая навигация
Plug 'easymotion/vim-easymotion' Plug 'easymotion/vim-easymotion'
" https://github.com/haya14busa/incsearch.vim " https://github.com/haya14busa/incsearch.vim
" Поиск " " Поиск
Plug 'haya14busa/incsearch.vim' | Plug 'haya14busa/incsearch-easymotion.vim' Plug 'haya14busa/incsearch.vim' | Plug 'haya14busa/incsearch-easymotion.vim'
" https://github.com/mihaifm/bufstop " https://github.com/mihaifm/bufstop
Plug 'mihaifm/bufstop' Plug 'mihaifm/bufstop'
" https://github.com/moll/vim-bbye " https://github.com/moll/vim-bbye
" Удаление буферов с сохранением расположения окон " " Удаление буферов с сохранением расположения окон
Plug 'moll/vim-bbye' Plug 'moll/vim-bbye'
" https://github.com/sstallion/vim-wildignore " https://github.com/sstallion/vim-wildignore
" Чтение масок файлов из файлов wildignore и suffixes " " Чтение масок файлов из файлов wildignore и suffixes
Plug 'sstallion/vim-wildignore' Plug 'sstallion/vim-wildignore'
" https://github.com/tpope/vim-fugitive " https://github.com/tpope/vim-fugitive
" Git " " Git
" Plug 'tpope/vim-fugitive' " Plug 'tpope/vim-fugitive'
" https://github.com/airblade/vim-gitgutter " https://github.com/airblade/vim-gitgutter
" Отличия от Git в левой колонке " " Отличия от Git в левой колонке
Plug 'airblade/vim-gitgutter' Plug 'airblade/vim-gitgutter'
" https://github.com/neomake/neomake " https://github.com/neomake/neomake
" Проверка синтаксиса в фоновом режиме " " Проверка синтаксиса в фоновом режиме
Plug 'neomake/neomake' Plug 'neomake/neomake'
" https://github.com/dense-analysis/ale " https://github.com/dense-analysis/ale
" Проверка синтаксиса " " Проверка синтаксиса
Plug 'dense-analysis/ale' Plug 'dense-analysis/ale'
" https://github.com/stephpy/vim-yaml " https://github.com/stephpy/vim-yaml
" YAML " " YAML
Plug 'stephpy/vim-yaml' Plug 'stephpy/vim-yaml'
" https://github.com/plasticboy/vim-markdown " https://github.com/plasticboy/vim-markdown
" Markdown " " Markdown
Plug 'plasticboy/vim-markdown' Plug 'plasticboy/vim-markdown'
"https://github.com/habamax/vim-asciidoctor "https://github.com/habamax/vim-asciidoctor
" AsciiDoctor " " AsciiDoctor
Plug 'habamax/vim-asciidoctor' Plug 'habamax/vim-asciidoctor'
" https://github.com/SirVer/ultisnips " https://github.com/SirVer/ultisnips
" Вставка фрагментов кода " " Вставка фрагментов кода
Plug 'sirver/ultisnips' Plug 'sirver/ultisnips'
" https://github.com/honza/vim-snippets " https://github.com/honza/vim-snippets
" Библиотека фрагментов кода " " Библиотека фрагментов кода
Plug 'honza/vim-snippets' Plug 'honza/vim-snippets'
" https://github.com/aklt/plantuml-syntax " https://github.com/aklt/plantuml-syntax
" Plantuml " " PlantUML
Plug 'aklt/plantuml-syntax' Plug 'aklt/plantuml-syntax'
" https://github.com/dhruvasagar/vim-table-mode " https://github.com/dhruvasagar/vim-table-mode
" Создание таблиц " " Создание таблиц
Plug 'dhruvasagar/vim-table-mode' Plug 'dhruvasagar/vim-table-mode'
" https://github.com/junegunn/vim-easy-align " https://github.com/junegunn/vim-easy-align
" Выравнивание строк " " Выравнивание строк
Plug 'junegunn/vim-easy-align' Plug 'junegunn/vim-easy-align'
" https://github.com/henry4k/vim-fontzoom " https://github.com/henry4k/vim-fontzoom
" Изменение размера шрифта " " Изменение размера шрифта
Plug 'henry4k/vim-fontzoom' Plug 'henry4k/vim-fontzoom'
" https://dmitryfrank.com/projects/vimprj " https://dmitryfrank.com/projects/vimprj
" Опции для отдельных проектов " " Опции для отдельных проектов
Plug 'elnull/vim-dfutil' | Plug 'elnull/vimprj' Plug 'elnull/vim-dfutil' | Plug 'elnull/vimprj'
" https://github.com/ilyachur/cmake4vim " https://github.com/ilyachur/cmake4vim
" CMake " " CMake
Plug 'ilyachur/cmake4vim' Plug 'ilyachur/cmake4vim'
" LaTeX
Plug 'lervag/vimtex' Plug 'lervag/vimtex'
Plug 'xuhdev/vim-latex-live-preview' Plug 'xuhdev/vim-latex-live-preview'
" https://github.com/jez/vim-superman " https://github.com/jez/vim-superman
" MAN " " MAN
Plug 'jez/vim-superman' Plug 'jez/vim-superman'
" https://github.com/kergoth/vim-bitbake " https://github.com/kergoth/vim-bitbake
" Bitbake " " Bitbake
Plug 'kergoth/vim-bitbake' Plug 'kergoth/vim-bitbake'
" https://github.com/python-mode/python-mode " " https://github.com/python-mode/python-mode
" Python " " Python
Plug 'python-mode/python-mode', { 'for': 'python', 'branch': 'develop' } Plug 'python-mode/python-mode', { 'for': 'python', 'branch': 'develop' }
" https://github.com/puremourning/vimspector " " https://github.com/puremourning/vimspector
" Multi language graphical debugger " " Multi language graphical debugger
Plug 'puremourning/vimspector' Plug 'puremourning/vimspector'
" https://github.com/itspriddle/vim-shellcheck " " https://github.com/itspriddle/vim-shellcheck
" Shell " " Shell
Plug 'itspriddle/vim-shellcheck' Plug 'itspriddle/vim-shellcheck'
Plug 'rhysd/vim-grammarous' Plug 'rhysd/vim-grammarous'
" https://github.com/mcchrish/nnn.vim " " https://github.com/mcchrish/nnn.vim
" File manager for vim/neovim powered by n³ " " File manager for vim/neovim powered by n³
Plug 'mcchrish/nnn.vim' Plug 'mcchrish/nnn.vim'
" Перечисление плагинов заканчивается здесь " " Перечисление плагинов заканчивается здесь
call plug#end() call plug#end()
"{{{ Базовые настройки "{{{ Базовые настройки
" Включена подсветка синтаксиса " " Включена подсветка синтаксиса
" Plug устанавливает свои значения, нужно явно переопределить после plug#end " " Plug устанавливает свои значения, нужно явно переопределить после plug#end
syntax on syntax on
filetype plugin indent on filetype plugin indent on
" Выбор движка для регулярных выражений " Выбор движка для регулярных выражений
autocmd FileType ruby,tex set regexpengine=1 autocmd FileType ruby,tex set regexpengine=1
" Отключен режим совместимости " " Отключен режим совместимости
set nocompatible set nocompatible
" Проверка изменения файла другой программой " " Проверка изменения файла другой программой
set autoread set autoread
" Автоматическая запись перед make, внешними командами и т.п. " " Автоматическая запись перед make, внешними командами и т.п.
set autowrite set autowrite
" Показывать парные скобки " " Показывать парные скобки
set showmatch set showmatch
" Размер табуляции " " Размер табуляции
set tabstop=4 set tabstop=4
" Размер сдвига при нажатии на клавиши << и >> " " Размер сдвига при нажатии на клавиши << и >>
set shiftwidth=4 set shiftwidth=4
" Количество пробелов, на которое будет заменена табуляция " " Количество пробелов, на которое будет заменена табуляция
set softtabstop=4 set softtabstop=4
" Не заменять <TAB> на пробелы " " Не заменять <TAB> на пробелы
set noexpandtab set noexpandtab
" Визуальный перенос строк " " Визуальный перенос строк
set wrap set wrap
" Визуальный перенос строк по словам, а не по буквам " " Визуальный перенос строк по словам, а не по буквам
set linebreak set linebreak
" Визуальный перенос строки с учётом отступов " " Визуальный перенос строки с учётом отступов
set breakindent set breakindent
" Подсветка выражения, которое ищется в тексте " " Подсветка выражения, которое ищется в тексте
set hlsearch set hlsearch
" Переход на найденный текст в процессе набора строки " " Переход на найденный текст в процессе набора строки
set incsearch set incsearch
" Не останавливать поиск при достижении конца файла " " Не останавливать поиск при достижении конца файла
set wrapscan set wrapscan
" Игнорировать регистр букв при поиске, если в шаблоне нет заглавных букв " " Игнорировать регистр букв при поиске, если в шаблоне нет заглавных букв
set smartcase set smartcase
" Копирует отступ от предыдущей строки " " Копирует отступ от предыдущей строки
set autoindent set autoindent
" Автоматическая расстановка отступов " " Автоматическая расстановка отступов
set smartindent set smartindent
" По умолчанию не сворачивать " " По умолчанию не сворачивать
set nofoldenable set nofoldenable
" Сворачивание согласно синтаксису тормозит, нужно использовать что-то другое " " Сворачивание согласно синтаксису тормозит, нужно использовать что-то другое
set foldmethod=marker set foldmethod=marker
" Кодировка внутри Vim " " Кодировка внутри Vim
set encoding=utf-8 set encoding=utf-8
" Кодировка терминала " " Кодировка терминала
set termencoding=utf-8 set termencoding=utf-8
" Кодировка для сохраняемого файла " " Кодировка для сохраняемого файла
set fileencoding=utf-8 set fileencoding=utf-8
" Список предполагаемых кодировок в порядке предпочтения " " Список предполагаемых кодировок в порядке предпочтения
set fileencodings=utf8,koi8r,cp1251,cp866,latin1,ucs-2le set fileencodings=utf8,koi8r,cp1251,cp866,latin1,ucs-2le
" Включаем мышку даже в текстовом режиме " " Включаем мышку даже в текстовом режиме
" (без этого символы табуляции раскладываются в кучу пробелов) " " (без этого символы табуляции раскладываются в кучу пробелов)
set mouse=a set mouse=a
" Модель поведения правой кнопки мыши " " Модель поведения правой кнопки мыши
set mousemodel=popup set mousemodel=popup
" Тип переноса строк " " Тип переноса строк
set fileformat=unix set fileformat=unix
" В графическом режиме: убрать меню " " В графическом режиме: убрать меню
set guioptions-=m set guioptions-=m
" В графическом режиме: убрать панель инструментов " " В графическом режиме: убрать панель инструментов
set guioptions-=T set guioptions-=T
" В графическом режиме: убрать прокрутку справа " " В графическом режиме: убрать прокрутку справа
set guioptions-=r set guioptions-=r
" В графическом режиме: убрать прокрутку слева " " В графическом режиме: убрать прокрутку слева
set guioptions-=L set guioptions-=L
" В графическом режиме: отключить графические вкладки " " В графическом режиме: отключить графические вкладки
set guioptions-=e set guioptions-=e
" Шрифт в графическом режиме " " Шрифт в графическом режиме
if has('gui_running') && !has('nvim') if has('gui_running') && !has('nvim')
set guifont=Iosevka\ Fixed\ SS08\ 10 set guifont=Iosevka\ Fixed\ SS08\ 10
endif endif
" Количество отображаемых строк над/под курсором " " Количество отображаемых строк над/под курсором
set scrolloff=6 set scrolloff=6
" Количество отображаемых колонок слева/справа от курсора " " Количество отображаемых колонок слева/справа от курсора
set sidescrolloff=5 set sidescrolloff=5
" Нумерация строк включена " " Нумерация строк включена
set number set number
" Нумерация строк абсолютная " " Нумерация строк абсолютная
set nornu set nornu
" Использовать меню в статусной строке " " Использовать меню в статусной строке
set wildmenu set wildmenu
" Клавиша для переключения между пунктами меню " " Клавиша для переключения между пунктами меню
set wildcharm=<Tab> set wildcharm=<Tab>
" Всегда отображать статусную строку для каждого окна " " Всегда отображать статусную строку для каждого окна
set laststatus=2 set laststatus=2
" Отображение набираемой в данный момент команды в правом нижнем углу экрана " " Отображение набираемой в данный момент команды в правом нижнем углу экрана
set showcmd set showcmd
" Пробельные символы " " Пробельные символы
set listchars=tab:>·,trail:~,extends:>,precedes:<,space:␣ set listchars=tab:>·,trail:~,extends:>,precedes:<,space:␣
" Включение отображения пробельных символов " " Включение отображения пробельных символов
set list set list
" Копирование выравнивания от предыдущей строки " " Копирование выравнивания от предыдущей строки
set copyindent set copyindent
" " "
set clipboard^=unnamed,unnamedplus set clipboard^=unnamed,unnamedplus
"}}} "}}}
@ -409,10 +414,10 @@ autocmd FileType javascript,c,cpp,java,html,python,ruby,tex,vim EnableStripWhite
"}}} "}}}
"{{{1 Статусная строка "{{{1 Статусная строка
" Всегда отображать статусную строку для каждого окна " " Всегда отображать статусную строку для каждого окна
set laststatus=2 set laststatus=2
" Всегда отображать перечень буферов " " Всегда отображать перечень буферов
set showtabline=2 set showtabline=2
" \ [ 'fugitive', 'readonly', 'filename', 'modified' ] ], " \ [ 'fugitive', 'readonly', 'filename', 'modified' ] ],
" \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}', " \ 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}',
@ -593,15 +598,15 @@ for c in range('1', '9')
endfor endfor
"1}}} "1}}}
" Переход к последней позиции при открытии файла " " Переход к последней позиции при открытии файла
if has("autocmd") if has("autocmd")
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif
endif endif
" Открыть файл настроек " " Открыть файл настроек
nmap <silent> <leader>vie :e $MYVIMRC<CR> nmap <silent> <leader>vie :e $MYVIMRC<CR>
" Перезагрузить файл настроек " " Перезагрузить файл настроек
nmap <silent> <leader>vis :so $MYVIMRC<CR> nmap <silent> <leader>vis :so $MYVIMRC<CR>
augroup reload_vimrc augroup reload_vimrc
@ -609,7 +614,7 @@ augroup reload_vimrc
autocmd BufWritePost $MYVIMRC nested source $MYVIMRC autocmd BufWritePost $MYVIMRC nested source $MYVIMRC
augroup END augroup END
" Запись файл с использованием sudo " " Запись файл с использованием sudo
cmap w!! w !sudo tee > /dev/null % cmap w!! w !sudo tee > /dev/null %
"{{{ Neomake "{{{ Neomake
@ -626,7 +631,7 @@ function! LocationNext()
endtry endtry
endfunction endfunction
" <leader>e для перехода к следующей ошибке или предупреждению " " <leader>e для перехода к следующей ошибке или предупреждению
nnoremap <leader>ee :call LocationNext()<cr> nnoremap <leader>ee :call LocationNext()<cr>
let g:neomake_make_maker = { let g:neomake_make_maker = {
@ -636,10 +641,10 @@ let g:neomake_make_maker = {
\ } \ }
"}}} "}}}
" Отмена автоматического комментирования кода при вставке из буфера " " Отмена автоматического комментирования кода при вставке из буфера
autocmd FileType * setlocal formatoptions-=cro autocmd FileType * setlocal formatoptions-=cro
" Запрет TAB для markdown " " Запрет TAB для markdown
autocmd FileType markdown set expandtab autocmd FileType markdown set expandtab
autocmd FileType cmake setlocal ts=2 sts=2 sw=2 et autocmd FileType cmake setlocal ts=2 sts=2 sw=2 et
@ -672,11 +677,11 @@ fun! IgnoreSomeCasesSpell()
endfun endfun
autocmd BufRead,BufNewFile * :call IgnoreSomeCasesSpell() autocmd BufRead,BufNewFile * :call IgnoreSomeCasesSpell()
" Выбор Набора языков для проверки орфографии " " Выбор Набора языков для проверки орфографии
map <C-F7> :call ChangeSpellLang()<CR> map <C-F7> :call ChangeSpellLang()<CR>
imap <C-F7> <Esc>:call ChangeSpellLang()<CR> imap <C-F7> <Esc>:call ChangeSpellLang()<CR>
" Выбор альтернатив для исправления " " Выбор альтернатив для исправления
imap <F7> <C-X>s imap <F7> <C-X>s
map <F7> z= map <F7> z=
map <S-F7> ]s map <S-F7> ]s
@ -712,28 +717,28 @@ map <F12> :emenu Encoding.<Tab>
"}}} "}}}
"{{{ Easymotion "{{{ Easymotion
" Не включать команды по умолчанию " " Не включать команды по умолчанию
let g:EasyMotion_do_mapping = 0 let g:EasyMotion_do_mapping = 0
" Умный регистр " " Умный регистр
let g:EasyMotion_smartcase = 1 let g:EasyMotion_smartcase = 1
" <Leader>ec{char} для перехода к {char} " " <Leader>ec{char} для перехода к {char}
map <Leader>ec <Plug>(easymotion-bd-f) map <Leader>ec <Plug>(easymotion-bd-f)
nmap <Leader>ec <Plug>(easymotion-overwin-f) nmap <Leader>ec <Plug>(easymotion-overwin-f)
" s{char}{char} для перехода к {char}{char} " " s{char}{char} для перехода к {char}{char}
nmap s <Plug>(easymotion-overwin-f2) nmap s <Plug>(easymotion-overwin-f2)
" Переход к строке " " Переход к строке
map <Leader>eg <Plug>(easymotion-bd-jk) map <Leader>eg <Plug>(easymotion-bd-jk)
nmap <Leader>eg <Plug>(easymotion-overwin-line) nmap <Leader>eg <Plug>(easymotion-overwin-line)
" Переход к слову " " Переход к слову
map <Leader>ew <Plug>(easymotion-bd-w) map <Leader>ew <Plug>(easymotion-bd-w)
nmap <Leader>ew <Plug>(easymotion-overwin-w) nmap <Leader>ew <Plug>(easymotion-overwin-w)
" Навигация по строкам " " Навигация по строкам
map <Leader>el <Plug>(easymotion-lineforward) map <Leader>el <Plug>(easymotion-lineforward)
map <Leader>ej <Plug>(easymotion-j) map <Leader>ej <Plug>(easymotion-j)
map <Leader>ek <Plug>(easymotion-k) map <Leader>ek <Plug>(easymotion-k)