26062024-1
This commit is contained in:
parent
85ce42f2ba
commit
8db8af6988
1 changed files with 32 additions and 45 deletions
261
linux/.vimrc
261
linux/.vimrc
|
@ -1,261 +0,0 @@
|
|||
" Base settings (add comments)
|
||||
set nocompatible
|
||||
syntax on " syntax highlight
|
||||
|
||||
set clipboard=unnamedplus
|
||||
|
||||
set t_Co=256 " set 256 colors
|
||||
|
||||
set number " show line numbers
|
||||
set ruler
|
||||
set ttyfast " terminal acceleration
|
||||
|
||||
set tabstop=4 " 4 whitespaces for tabs visual presentation
|
||||
set shiftwidth=4 " shift lines by 4 spaces
|
||||
set smarttab " set tabs for a shifttabs logic
|
||||
set expandtab " expand tabs into spaces
|
||||
set autoindent " indent when moving to the next line while writing code
|
||||
|
||||
set cursorline " shows line under the cursor's line
|
||||
set showmatch " shows matching part of bracket pairs (), [], {}
|
||||
|
||||
set enc=utf-8 " utf-8 by default
|
||||
|
||||
set nobackup " no backup files
|
||||
set nowritebackup " only in case you don't want a backup file while editing
|
||||
set noswapfile " no swap files
|
||||
|
||||
set backspace=indent,eol,start " backspace removes all (indents, EOLs, start) What is start?
|
||||
|
||||
set scrolloff=10 " let 10 lines before/after cursor during scroll
|
||||
|
||||
set clipboard=unnamed " use system clipboard
|
||||
|
||||
set exrc " enable usage of additional .vimrc files from working directory
|
||||
set secure " prohibit .vimrc files to execute shell, create files, etc...
|
||||
|
||||
let mapleader = " " " leader key
|
||||
|
||||
" Buffers
|
||||
set switchbuf=useopen " open buffer instead of creating a new one
|
||||
set laststatus=2
|
||||
" close current buffer
|
||||
nmap <leader>bc :bd<CR>
|
||||
|
||||
" Search
|
||||
set incsearch " incremental search
|
||||
set hlsearch " highlight search results
|
||||
|
||||
" highlight 'long' lines (>= 80 symbols) in python files
|
||||
augroup vimrc_autocmds
|
||||
autocmd!
|
||||
autocmd FileType python,rst,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
|
||||
autocmd FileType python,rst,c,cpp match Excess /\%81v.*/
|
||||
autocmd FileType python,rst,c,cpp set nowrap
|
||||
autocmd FileType python,rst,c,cpp set colorcolumn=80
|
||||
|
||||
autocmd FileType vimwiki set wrap
|
||||
autocmd FileType vimwiki set textwidth=80
|
||||
augroup END
|
||||
|
||||
" terminal
|
||||
cabbrev bterm bo term
|
||||
autocmd TerminalWinOpen *
|
||||
\ if &buftype == 'terminal' |
|
||||
\ resize 10 |
|
||||
"\ setlocal termwinsize=0x140 |
|
||||
\ endif
|
||||
nmap <leader>tt :bterm<CR>
|
||||
|
||||
autocmd FileType html setlocal tabstop=2 shiftwidth=2 softtabstop=2
|
||||
autocmd FileType css setlocal tabstop=2 shiftwidth=2 softtabstop=2
|
||||
autocmd FileType javascript setlocal tabstop=2 shiftwidth=2 softtabstop=2
|
||||
|
||||
" plugings
|
||||
call plug#begin()
|
||||
|
||||
Plug 'machakann/vim-highlightedyank'
|
||||
Plug 'tpope/vim-commentary'
|
||||
Plug 'easymotion/vim-easymotion'
|
||||
Plug 'preservim/nerdtree'
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'terryma/vim-multiple-cursors'
|
||||
Plug 'tommcdo/vim-exchange'
|
||||
Plug 'michaeljsmith/vim-indent-object'
|
||||
Plug 'vimwiki/vimwiki'
|
||||
Plug 'mattn/calendar-vim'
|
||||
Plug 'jamessan/vim-gnupg'
|
||||
Plug 'ryanoasis/vim-devicons'
|
||||
" https://github.com/LunarWatcher/auto-pairs/blob/master/doc/AutoPairs.txt
|
||||
Plug 'LunarWatcher/auto-pairs'
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
|
||||
Plug 'morhetz/gruvbox'
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
Plug 'sheerun/vim-polyglot'
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
Plug 'mhinz/vim-startify'
|
||||
Plug 'tpope/vim-fugitive'
|
||||
Plug 'tpope/vim-obsession'
|
||||
" Plug 'ycm-core/YouCompleteMe'
|
||||
Plug 'dense-analysis/ale'
|
||||
Plug 'SirVer/ultisnips'
|
||||
Plug 'honza/vim-snippets'
|
||||
Plug 'majutsushi/tagbar'
|
||||
|
||||
call plug#end()
|
||||
|
||||
filetype on
|
||||
filetype plugin on
|
||||
filetype plugin indent on
|
||||
|
||||
" tagbar
|
||||
let g:tagbar_autofocus=0
|
||||
let g:tagbar_width=42
|
||||
autocmd BufEnter *.py :call tagbar#autoopen(0)
|
||||
|
||||
" ultisnips
|
||||
let g:UltiSnipsExpandTrigger = '<C-j>'
|
||||
let g:UltiSnipsJumpForwardTrigger = '<C-j>'
|
||||
let g:UltiSnipsJumpBackwardTrigger = '<C-k>'
|
||||
|
||||
" easymotion
|
||||
map <leader>F <Plug>(easymotion-s)
|
||||
map <leader>f <Plug>(easymotion-f)
|
||||
" nerdtree
|
||||
map <c-t> :NERDTree<CR>
|
||||
nmap " :NERDTreeToggle<CR>
|
||||
let NERDTreeIgnore=['\.pyc$', '\.pyo$', '__pycache__$'] " Ignore files in NERDTree
|
||||
let NERDTreeWinSize=40
|
||||
" autocmd VimEnter * if !argc() | NERDTree | endif " Load NERDTree only if vim is run without arguments
|
||||
|
||||
" fzf
|
||||
set rtp+=/opt/homebrew/opt/fzf
|
||||
nmap <leader>bb :Buffers<CR>
|
||||
|
||||
" auto-pairs
|
||||
let g:AutoPairsMapBS = 1
|
||||
let g:AutoPairsBSAfter = 0
|
||||
|
||||
" airline
|
||||
let g:airline#extensions#obsession#enable = 1
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline#extensions#whitespace#enabled = 0
|
||||
let g:airline_theme='gruvbox'
|
||||
if !exists('g:airline_symbols')
|
||||
let g:airline_symbols = {}
|
||||
endif
|
||||
let g:airline_symbols.linenr = ' ☰ '
|
||||
let g:airline_symbols.colnr = ' : '
|
||||
let g:airline_symbols.maxlinenr = ''
|
||||
|
||||
" theme
|
||||
autocmd vimenter * ++nested colorscheme gruvbox
|
||||
set background=dark
|
||||
let g:gruvbox_contrast_dark='soft'
|
||||
|
||||
" vim wiki
|
||||
let g:GPGFilePattern = '*.\(gpg\|asc\|pgp\)\(.wiki\|.md\)\='
|
||||
" toggle checklists
|
||||
nnoremap <leader>cl :VimwikiToggleListItem<CR>
|
||||
" reset gpg-agent password cache after close or save the buffer (vimwiki diary)
|
||||
autocmd BufWritePost *.asc.md !gpgconf --reload gpg-agent
|
||||
" https://github.com/WnP/vimwiki_markdown
|
||||
" ~/vimwiki/personal - private content
|
||||
" ~/vimwiki/public_wiki - public wiki content
|
||||
" ~/vimwiki/diary - private diary
|
||||
let default_wiki = '~/Productivity/vimwiki/personal'
|
||||
let public_wiki = '~/Productivity/vimwiki/public_wiki'
|
||||
let g:diary = '~/Productivity/vimwiki/diary'
|
||||
let g:diary_index_name = 'diary'
|
||||
let g:diary_ext = '.asc.md'
|
||||
let g:vimwiki_list = [{
|
||||
\ 'path': default_wiki,
|
||||
\ 'diary_rel_path': '../diary',
|
||||
\ 'auto_diary_index': 1,
|
||||
\ 'auto_export': 0},
|
||||
\ {'path': public_wiki,
|
||||
\ 'auto_export': 0,
|
||||
\ 'diary_rel_path': '../diary',
|
||||
\ 'template_path': public_wiki . '/templates/',
|
||||
\ 'template_default': 'default',
|
||||
\ 'syntax': 'markdown',
|
||||
\ 'ext': '.md',
|
||||
\ 'path_html': public_wiki . '/site_html/',
|
||||
\ 'custom_wiki2html': 'vimwiki_markdown',
|
||||
\ 'template_ext': '.tpl'},
|
||||
\ {'path': diary,
|
||||
\ 'index': diary_index_name,
|
||||
\ 'ext': diary_ext,
|
||||
\ 'diary_rel_path': './',
|
||||
\ 'auto_diary_index': 1,
|
||||
\ 'auto_export': 0}]
|
||||
" fix - https://github.com/vimwiki/vimwiki/issues/1055
|
||||
exe 'autocmd BufEnter ' . diary_index_name . diary_ext . ' :VimwikiDiaryGenerateLinks'
|
||||
" inserting default diary template
|
||||
function! AppendDiaryTemplate()
|
||||
" detecting path of current buffer
|
||||
let current_dir = substitute(expand('%:p:h'), '^' . $HOME, '~', '')
|
||||
if current_dir == g:diary
|
||||
r! ~/scripts/vimwiki_diary_template
|
||||
execute '1,2d'
|
||||
normal G
|
||||
normal o
|
||||
endif
|
||||
endfunction
|
||||
command! InsertDiaryTemplate call AppendDiaryTemplate()
|
||||
nnoremap <leader>idr :InsertDiaryTemplate<CR>
|
||||
" inserting default GPG fingerprint for the diary
|
||||
let g:diaryGPG = 'CE7EB8727486553012A04E284EE708165AA10C48'
|
||||
" inserting default GPG fingerprint for the personal notes
|
||||
let g:personalGPG = '5F2D798AC3A4A1B1A0CAA868EBE731F3329F400C'
|
||||
command! InsertGPGAndExit call AppendGPGAndExit()
|
||||
function! AppendGPGAndExit()
|
||||
" detecting vim-gnupg dialog
|
||||
if match(getline(2), '^GPG:') == 0
|
||||
call append(line('.'), g:diaryGPG)
|
||||
wq
|
||||
endif
|
||||
endfunction
|
||||
nnoremap <leader>igg :InsertGPGAndExit<CR>
|
||||
|
||||
command! InsertDiaryGPGAndExit call AppendDiaryGPGAndExit()
|
||||
function! AppendDiaryGPGAndExit()
|
||||
" detecting vim-gnupg dialog
|
||||
if match(getline(2), '^GPG:') == 0
|
||||
call append(line('.'), g:personalGPG)
|
||||
wq
|
||||
endif
|
||||
endfunction
|
||||
nnoremap <leader>igp :InsertDiaryGPGAndExit<CR>
|
||||
|
||||
" prettier
|
||||
nmap <leader>mm <Plug>(PrettierAsync)
|
||||
|
||||
" ALE
|
||||
let g:ale_linters = {
|
||||
\ 'python': ['ruff', 'mypy', 'pyright'],
|
||||
\}
|
||||
let g:ale_fixers = {
|
||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'python': ['ruff', 'ruff_format'],
|
||||
\ 'javascript': ['prettier', 'eslint'],
|
||||
\}
|
||||
let g:ale_fix_on_save = 1
|
||||
map <C-e> <Plug>(ale_next_wrap)
|
||||
map <C-r> <Plug>(ale_previous_wrap)
|
||||
nmap <leader>go :ALEGoToDefinition<CR>
|
||||
nmap <leader>qf :ALEFix<CR>
|
||||
nmap <leader>k :ALEHover<CR>
|
||||
let g:ale_python_auto_virtualenv = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
|
||||
" YCM
|
||||
set completeopt-=preview
|
||||
" autocmd CompleteDone * if pumvisible() == 0 | pclose | endif
|
||||
"
|
||||
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,ж\\;,э',ё\\,яz,чx,сc,мv,иb,тn,ьm,б\\,,ю.,ЙQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж:,Э\\",ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б<,Ю>,Ё/|
|
Loading…
Add table
Add a link
Reference in a new issue