" 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 noswapfile set encoding=utf-8 syntax enable set timeoutlen=300 ttimeoutlen=0 " https://www.johnhawthorn.com/2012/09/vi-escape-delays/ set clipboard=unnamed set nocompatible " For coc-vim. Always show the signcolumn, otherwise it would shift the text each time " diagnostics appear/become resolved. set signcolumn=yes " linenumbers, in relative manner set number relativenumber set splitbelow set splitright " [docs] split navigation " switching between splits nnoremap j nnoremap k nnoremap l nnoremap h " resizing splits noremap :vertical resize +3 noremap :vertical resize -3 noremap :resize +3 noremap :resize -3 set backspace=indent,eol,start filetype plugin indent on let hostname = substitute(system('hostname'), '\n', '', '') 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 'tpope/vim-commentary' Plug 'airblade/vim-gitgutter' Plug 'jreybert/vimagit' Plug 'preservim/nerdtree' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'justinmk/vim-sneak' Plug 'towolf/vim-helm' Plug 'pearofducks/ansible-vim' Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'elzr/vim-json' Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } Plug 'hashivim/vim-terraform' " Plug 'Exafunction/codeium.vim' 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 :call ToggleColors() " [docs] tabs navigation " go left nnoremap H gT " go right nnoremap L gt " Changing key from \ to nnoremap 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:airline_section_y = '{…}%3{codeium#GetStatusString()}' let g:Powerline_symbols='unicode' " Unicode support " " [docs] Gitgutter plugin config " let g:gitgutter_override_sign_column_highlight = 1 set updatetime=100 nnoremap gu :GitGutterUndoHunk| " undo git change under the line " " [docs] Magit plugin config " nnoremap gs :Magit| " git status function GitPullPush(cmd) echo system('git '.a:cmd) " redraw! endfunction nnoremap gp :call GitPullPush("push")| " git Push nnoremap gP :call GitPullPush("pull")| " git Pull " " [docs] NERDTree plugin config " nnoremap n :NERDTreeFocus nnoremap :NERDTreeToggle 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 \ --no-ignore \ -g !node_modules/ -g !.git/ \ --column --line-number --no-heading --color=always --smart-case '.shellescape(), \1, \fzf#vim#with_preview({'options': '--exact --delimiter : --nth 4..'}), 0) " is for strict search by default and other unknown stuff is to exclude filenames from search results " [docs] fzf hotkeys nnoremap ag :Rg | " searching for word ander cursor nnoremap b :Buffers nnoremap f :Files nnoremap gr :Rg nnoremap / :BLines nnoremap ' :Marks "nnoremap g :Commits nnoremap H :Helptags nnoremap hh :History nnoremap h: :History: nnoremap h/ :History/ " " 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 " if hostname == "i113855042" let g:coc_user_config = '~/.vim/coc-lsp/coc-settings-cloudia.json' else let g:coc_user_config = '~/.vim/coc-lsp/coc-settings.json' endif let g:coc_global_extensions = ['coc-pyright', 'coc-sh', 'coc-go'] function! s:enable_coc_for_type() let l:filesuffix_whitelist = ['py', 'sh', 'go'] if index(l:filesuffix_whitelist, expand('%:e')) == -1 let b:coc_enabled = 0 endif endfunction autocmd BufRead,BufNewFile * call s:enable_coc_for_type() source ~/.vim/coc-lsp/coc.vim " " vim-sneak plugin settings " let g:sneak#label = 1 " YAML files config autocmd FileType yaml,yml setlocal ts=2 sts=2 sw=2 expandtab let g:indentLine_char = '⦙'