164 lines
5.4 KiB
VimL
164 lines
5.4 KiB
VimL
" 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 nobackup
|
||
set nowritebackup
|
||
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 = '⦙'
|