283 lines
7.3 KiB
VimL
283 lines
7.3 KiB
VimL
|
||
set ruler
|
||
set laststatus=2
|
||
|
||
" xclip requiered
|
||
set clipboard=unnamedplus
|
||
|
||
|
||
set shell=zsh
|
||
|
||
" <Leader>
|
||
let g:mapleader = ","
|
||
|
||
set cursorline
|
||
|
||
" like tabdo but restore the current tab
|
||
function! TabDo(command)
|
||
let currTab=tabpagenr()
|
||
execute 'tabdo ' . a:command
|
||
execute 'tabn ' . currTab
|
||
endfunction
|
||
|
||
" like bufdo but restore the current buffer
|
||
function! BufDo(command)
|
||
let currBuff=bufnr("%")
|
||
execute 'bufdo ' . a:command
|
||
execute 'buffer ' . currBuff
|
||
endfunction
|
||
|
||
" like windo but restore the current window
|
||
function! WinDo(command)
|
||
let currwin=winnr()
|
||
execute 'windo ' . a:command
|
||
execute currwin . 'wincmd w'
|
||
endfunction
|
||
|
||
nnoremap <silent> <Leader>c :call TabDo('set cursorline!') <CR>
|
||
inoremap jk <esc>
|
||
inoremap ол <esc>
|
||
|
||
let g:airline_powerline_fonts = 1 "Включить поддержку Powerline шрифтов
|
||
let g:airline#extensions#keymap#enabled = 0 "Не показывать текущий маппинг
|
||
let g:airline_section_z = "\ue0a1:%l/%L Col:%c" "Кастомная графа положения курсора
|
||
let g:Powerline_symbols='unicode' "Поддержка unicode
|
||
let g:airline#extensions#xkblayout#enabled = 0
|
||
let g:airline#extensions#branch#enabled=1
|
||
|
||
nnoremap <Tab> :bnext<CR>
|
||
nnoremap <S-Tab> :bprevious<CR>
|
||
|
||
let g:netrw_banner = 0 " hide banner
|
||
let g:netrw_liststyle = 3 " tree instead of plain view
|
||
let g:netrw_browse_split = 0
|
||
let g:netrw_winsize = 15
|
||
let g:netrw_keepdir = 0
|
||
|
||
|
||
set ttimeoutlen=0 "Понижаем задержку ввода escape последовательностей
|
||
let &t_SI.="\e[5 q" "SI = режим вставки
|
||
let &t_SR.="\e[3 q" "SR = режим замены
|
||
let &t_EI.="\e[1 q" "EI = нормальный режим
|
||
|
||
set encoding=utf-8 "Ставит кодировку UTF-8
|
||
set nocompatible "Отключает обратную совместимость с Vi
|
||
syntax on "Включает подсветку синтаксиса
|
||
|
||
set expandtab
|
||
set smarttab
|
||
set tabstop=4
|
||
set softtabstop=4
|
||
set shiftwidth=4
|
||
set autoindent
|
||
set smartindent
|
||
set nowrap
|
||
|
||
set ttyfast
|
||
set autoread
|
||
|
||
set history=1000
|
||
set undofile
|
||
set undoreload=1000
|
||
|
||
set noerrorbells
|
||
set novisualbell
|
||
set showcmd
|
||
set showtabline=2
|
||
|
||
set ignorecase
|
||
set smartcase
|
||
set incsearch
|
||
|
||
set mousehide
|
||
set mouse=a
|
||
|
||
set colorcolumn=81
|
||
set scrolloff=7
|
||
|
||
set backup
|
||
set noswapfile
|
||
set backupdir=$HOME/.vim/tmp/backup/
|
||
set undodir=$HOME/.vim/tmp/undo/
|
||
set directory=$HOME/.vim/tmp/swap/
|
||
set viminfo+=n$HOME/.vim/tmp/viminfo
|
||
|
||
|
||
function! MakeDirIfNoExists(path)
|
||
if !isdirectory(expand(a:path))
|
||
call mkdir(expand(a:path), "p")
|
||
endif
|
||
endfunction
|
||
|
||
|
||
" make this dirs if no exists previously
|
||
silent! call MakeDirIfNoExists(&undodir)
|
||
silent! call MakeDirIfNoExists(&backupdir)
|
||
silent! call MakeDirIfNoExists(&directory)
|
||
set virtualedit=onemore " allow for cursor beyond last character
|
||
|
||
" toggle hlsearch
|
||
nnoremap <silent> <Leader>/ :set invhlsearch<CR>
|
||
|
||
cnoremap <C-p> <Up>
|
||
cnoremap <C-n> <Down>
|
||
|
||
nnoremap <up> <nop>
|
||
nnoremap <down> <nop>
|
||
nnoremap <left> <nop>
|
||
nnoremap <right> <nop>
|
||
inoremap <up> <nop>
|
||
inoremap <down> <nop>
|
||
inoremap <left> <nop>
|
||
inoremap <right> <nop>
|
||
|
||
set ffs=unix,mac
|
||
set encoding=utf8
|
||
|
||
" tabs
|
||
nnoremap <silent> <C-l> :tabnext<CR>
|
||
nnoremap <silent> <C-h> :tabprev<CR>
|
||
|
||
|
||
" hiden chars
|
||
nmap <silent> <Leader>eh :set list!<CR>
|
||
set listchars=tab:→\ ,eol:↵,trail:·,extends:↷,precedes:↶
|
||
|
||
|
||
" Autoload configuration when this file changes ($MYVIMRC)
|
||
autocmd! BufWritePost init.vim source %
|
||
|
||
|
||
" Plugins
|
||
set rtp+=~/.vim/bundle/Vundle.vim
|
||
|
||
call vundle#begin()
|
||
|
||
Plugin 'VundleVim/Vundle.vim'
|
||
Plugin 'vim-airline/vim-airline'
|
||
Plugin 'morhetz/gruvbox'
|
||
Plugin 'tpope/vim-surround'
|
||
Plugin 'tpope/vim-commentary'
|
||
Plugin 'ap/vim-css-color'
|
||
Plugin 'preservim/tagbar'
|
||
Plugin 'preservim/vimux'
|
||
Plugin 'rbgrouleff/bclose.vim'
|
||
Plugin 'frazrepo/vim-rainbow'
|
||
Plugin 'Pocco81/auto-save.nvim'
|
||
" requiered patch your font
|
||
Plugin 'ryanoasis/vim-devicons'
|
||
Plugin 'windwp/nvim-autopairs'
|
||
|
||
" pyright
|
||
Plugin 'neovim/nvim-lspconfig'
|
||
Plugin 'hrsh7th/nvim-cmp'
|
||
Plugin 'hrsh7th/cmp-nvim-lsp'
|
||
Plugin 'saadparwaiz1/cmp_luasnip'
|
||
Plugin 'L3MON4D3/LuaSnip'
|
||
Plugin 'nvim-lua/plenary.nvim'
|
||
|
||
Plugin 'powerman/vim-plugin-ruscmd' " Russian navigation
|
||
|
||
" golang
|
||
" Plugin 'fatih/vim-go'
|
||
Plugin 'nvim-telescope/telescope.nvim'
|
||
Plugin 'nvim-telescope/telescope-fzf-native.nvim', {'do': 'make'}
|
||
Plugin 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||
|
||
|
||
Plugin 'lewis6991/gitsigns.nvim'
|
||
|
||
call vundle#end()
|
||
|
||
filetype plugin indent on
|
||
|
||
" Python
|
||
let python_highlight_all = 1
|
||
set t_Co=256
|
||
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,match,case
|
||
|
||
|
||
nnoremap <silent> <Leader>rm :tabnew % <CR> :terminal make run <CR>
|
||
" run file by filetype
|
||
autocmd BufEnter * if (expand('%:t')=='manpage') | nnoremap <silent> <Leader>rr :tabnew % <CR> :terminal man -P cat -l % <CR> :set nocursorline number norelativenumber <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='python') | nnoremap <silent> <Leader>rr :tabnew % <CR> :terminal python3 % <CR> :set nocursorline number norelativenumber <CR> G <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='go') | nnoremap <silent> <Leader>rr :tabnew % <CR> :terminal go run % <CR> :set nocursorline number norelativenumber <CR> G <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='go') | nnoremap <silent> <Leader>rf :!go fmt % <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='rust') | nnoremap <silent> <Leader>rr :tabnew % <CR> :terminal cargo run % <CR> :set nocursorline number norelativenumber <CR> G <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='rust') | nnoremap <silent> <Leader>rf :!cargo fmt % <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='markdown') | nnoremap <silent> <Leader>rr :let g:buf_curline=line(".") <CR> :tabnew % <CR> :terminal glow % <CR> :set nocursorline number norelativenumber <CR> :exe buf_curline <CR> | endif
|
||
autocmd BufEnter * if (&filetype=='vim') | nnoremap <silent> <Leader>rr :so % <CR>
|
||
|
||
|
||
|
||
" ctags required
|
||
nnoremap <silent> <Leader>t :TagbarToggle <CR>
|
||
|
||
nnoremap <silent> <Leader>ve :tabnew $MYVIMRC<CR>
|
||
|
||
|
||
|
||
set laststatus=2
|
||
let g:lightline = {
|
||
\ 'colorscheme': 'iceberg',
|
||
\ 'active': {
|
||
\ 'left': [ [ 'mode', 'paste' ],
|
||
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
|
||
\ },
|
||
\ 'component_function': {
|
||
\ 'gitbranch': 'fugitive#head'
|
||
\ },
|
||
\ }
|
||
|
||
|
||
" Colorscheme
|
||
colorscheme gruvbox
|
||
set bg=dark
|
||
|
||
|
||
au FileType py,go,c,cpp,objc,js,rs call rainbow#load()
|
||
let g:rainbow_active = 1
|
||
|
||
|
||
|
||
set termguicolors
|
||
hi DiagnosticError guifg=Grey
|
||
hi DiagnosticWarn guifg=Grey
|
||
hi DiagnosticInfo guifg=Grey
|
||
hi DiagnosticHint guifg=Grey
|
||
|
||
|
||
|
||
nnoremap <Leader>ff <cmd>Telescope find_files<cr>
|
||
nnoremap <Leader>fg <cmd>Telescope live_grep<cr>
|
||
|
||
|
||
luafile ~/.config/nvim/lua/init.lua
|
||
|
||
|
||
set number
|
||
set relativenumber
|
||
|
||
|
||
function! ToggleRelativeAbsoluteNumber()
|
||
if !&number && !&relativenumber
|
||
set number
|
||
set norelativenumber
|
||
elseif &number && !&relativenumber
|
||
set nonumber
|
||
set relativenumber
|
||
elseif !&number && &relativenumber
|
||
set number
|
||
set relativenumber
|
||
elseif &number && &relativenumber
|
||
set nonumber
|
||
set norelativenumber
|
||
endif
|
||
endfunction
|
||
|
||
nnoremap <silent> <Leader>l :call TabDo('call ToggleRelativeAbsoluteNumber()') <CR>
|
||
|
||
nnoremap <silent> <Leader>qq :bd!<CR>
|
||
" Quick exiting without save
|
||
nnoremap <silent> <Leader>qa :qa!<CR>
|