Files
dotfiles/vim/vimrc

162 lines
5.3 KiB
VimL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
" TODO: fzf enable search through hidden files - https://www.reddit.com/r/neovim/comments/fzeccx/how_can_i_make_fzf_include_hidden_directories/
" * fixed for Rg, but not for Files yet
" TODO: fix fzf search the same dir in different windows https://vimways.org/2019/vim-and-the-working-directory/
" TODO: create readme file about navigation
filetype plugin indent on "Включает определение типа файла, загрузку...
"... соответствующих ему плагинов и файлов отступов
set encoding=utf-8
syntax enable
set timeoutlen=300 ttimeoutlen=0 " https://www.johnhawthorn.com/2012/09/vi-escape-delays/
" For coc-vim. Always show the signcolumn, otherwise it would shift the text each time
" diagnostics appear/become resolved.
set signcolumn=yes
set number relativenumber
set backspace=indent,eol,start
filetype plugin indent on
if empty(glob('~/.vim/autoload/plug.vim')) "Если vim-plug не стоит
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
"И скачать его оттуда
"А после прогнать команду PlugInstall, о которой мы сейчас поговорим
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.vim/bundle') "Начать искать плагины в этой директории
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'Yggdroot/indentLine'
Plug 'airblade/vim-gitgutter'
Plug 'jreybert/vimagit'
Plug 'preservim/nerdtree'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'towolf/vim-helm'
Plug 'pearofducks/ansible-vim'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
call plug#end() "Перестать это делать
"
" Colors configuration
"
set term=xterm-256color
colorscheme atom-dark-256
let g:airline_theme='dark'
function ToggleColors()
if (g:colors_name == "atom-dark-256")
colorscheme antiphoton
let g:airline_theme='light'
else
colorscheme atom-dark-256
let g:airline_theme='dark'
endif
endfunction
nnoremap <C-b> :call ToggleColors()<CR>
" tabs navigation
nnoremap <C-S-tab> :tabprevious<CR>
nnoremap <C-tab> :tabnext<CR>
nnoremap <C-t> :tabnew<CR>
inoremap <C-S-tab> <Esc>:tabprevious<CR>i
inoremap <C-tab> <Esc>:tabnext<CR>i
inoremap <C-t> <Esc>:tabnew<CR>i
nnoremap H gT
nnoremap L gt
" Changing <leader> key from \ to <space>
nnoremap <SPACE> <Nop>
let mapleader=" "
" Folding params
set foldlevelstart=20
"
" Vim-Airline plugin config
"
" To enable powerfonts you first need to install it system-wide: https://github.com/ryanoasis/nerd-fonts#font-installation
" Then you need to enable Non-ASCII font displaying on your terminal settings
let g:airline_powerline_fonts = 0 " Disable powerline fonts
let g:airline#extensions#keymap#enabled = 0 " Do not show keyboard mapping
let g:airline_section_z = "㏑:%l/%L:%c" " Custom minimalistic current position section
let g:Powerline_symbols='unicode' " Unicode support
"
" Gitgutter plugin config
"
let g:gitgutter_override_sign_column_highlight = 1
set updatetime=100
nnoremap <leader>gu :GitGutterUndoHunk<CR> " undo git change under the line
"
" Magit plugin config
"
nnoremap <leader>gs :Magit<CR>| " git status
nnoremap <leader>gp :! git push<CR>| " git Push
nnoremap <leader>gP :! git pull<CR>| " git Pull
"
" NERDTree plugin config
"
nnoremap <leader>n :NERDTreeFocus<CR>
nnoremap <C-n> :NERDTree<CR>
nnoremap <C-t> :NERDTreeToggle<CR>
let NERDTreeShowHidden=1
" Exit Vim if NERDTree is the only window remaining in the only tab.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
"
" fzf plugin config
"
let g:fzf_preview_window = 'right:50%'
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.8 } }
command! -bang -nargs=* Rg call
\fzf#vim#grep('rg
\ --hidden
\ -g !node_modules/ -g !.git/
\ --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>),
\1,
\fzf#vim#with_preview({'options': '--exact --delimiter : --nth 4..'}), <bang>0) " is for strict search by default and other unknown stuff is to exclude filenames from search results
nnoremap <silent> <Leader>b :Buffers<CR>
nnoremap <silent> <Leader>f :Files<CR>
nnoremap <silent> <Leader>gr :Rg<CR>
nnoremap <silent> <Leader>/ :BLines<CR>
nnoremap <silent> <Leader>' :Marks<CR>
"nnoremap <silent> <Leader>g :Commits<CR>
nnoremap <silent> <Leader>H :Helptags<CR>
nnoremap <silent> <Leader>hh :History<CR>
nnoremap <silent> <Leader>h: :History:<CR>
nnoremap <silent> <Leader>h/ :History/<CR>
"
" Ansible plugin config
"
let g:ansible_unindent_after_newline = 1
let g:ansible_attribute_highlight = "ob"
let g:ansible_extra_keywords_highlight = 1
let g:ansible_name_highlight = 'b'
let g:ansible_yamlKeyName = 'yamlKey'
"
" CoC plugin settings
"
let g:coc_global_extensions = ['coc-pyright']
source ~/.vim/coc.vim
function! s:enable_coc_for_type()
let l:filesuffix_whitelist = ['py']
if index(l:filesuffix_whitelist, expand('%:e')) == -1
let b:coc_enabled = 0
endif
endfunction
autocmd BufRead,BufNewFile * call s:enable_coc_for_type()
" YAML files config
autocmd FileType yaml,yml setlocal ts=2 sts=2 sw=2 expandtab
let g:indentLine_char = '⦙'