Skip to content

Instantly share code, notes, and snippets.

@blogdron
Created May 20, 2024 10:13
Show Gist options
  • Save blogdron/8c3605f41cdfd6fa9d8b45c6128ab2c5 to your computer and use it in GitHub Desktop.
Save blogdron/8c3605f41cdfd6fa9d8b45c6128ab2c5 to your computer and use it in GitHub Desktop.
"echo ">^.^<"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""Vundle"""""""""""""""""""""""""""""""""""""""
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'tiagofumo/vim-nerdtree-syntax-highlight'
Plugin 'q60/vim-brainfuck' " ...
Plugin 'vim-syntastic/syntastic' " ...
Plugin 'gmarik/Vundle.vim' "Менеджер плагинов
Plugin 'scrooloose/nerdtree' "Файловый менеджер
Plugin 'majutsushi/tagbar' "Менеджер навигации по коду, аля ctag
Plugin 'flazz/vim-colorschemes' "Набор цветовых схем/тем
Plugin 'bling/vim-airline' "строка состояния
Plugin 'vim-airline/vim-airline-themes' "Набор цветовых тем строки состояния
Plugin 'morhetz/gruvbox' "just nice theme
Plugin 'vim-scripts/AutoComplPop' " ...
Plugin 'Shougo/neoinclude.vim' "support autocomplit include files
Plugin 'SirVer/ultisnips' "Менеджер сниппетов
Plugin 'honza/vim-snippets' " ...
Plugin 'ervandew/supertab' "для дружбы ycm и ultisnips
Plugin 'justinmk/vim-syntax-extra'
Plugin 'fedor-elizarov/vim-startify'
Plugin 'gilsondev/searchtasks.vim'
Plugin 'tikhomirov/vim-glsl'
Plugin 'jlanzarotta/bufexplorer'
call vundle#end()
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
filetype plugin indent on
autocmd! BufNewFile,BufRead *.vs,*.fs,*.ts set ft=glsl
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set cm=blowfish
set termguicolors
set conceallevel=0 "disable json hiden quotes
set relativenumber
set encoding=UTF-8
command BA bel term
autocmd BufWritePre * :%s/\s\+$//e
autocmd BufEnter * silent! lcd %:p:h
au BufReadPost *.b set syntax=brainfuck
""""""""""""""""""""""" vim terminal support scroll""""""""""""""""""""""""""""
tnoremap <Esc> <C-W>N
set notimeout ttimeout timeoutlen=100
"------------------------------------------------------------------------------
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
"------------------------------------------------------------------------------
"set exrc ""искать дополнительный vimrc в текущем каталоге
"set secure ""запретить исполнять внешние комманды из vimrc
set noswapfile
set nowrap
set updatetime=100
set ttyfast
set lazyredraw
set synmaxcol=240
syntax sync minlines=256
set modifiable
set noshowmode
"set cursorline
set t_Co=256
"let g:auto_save = 1
set guifont=Noto\ Mono\ Regular\ 12
"------------------------------------------------------------------------------
let g:airline#extensions#tabline#enabled = 0
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#fugitiveline#enabled = 1
let g:airline#extensions#branch#enabled = 1
let g:airline#extensions#tagbar#enabled = 1
let g:airline#extensions#ctags#enabled = 1
"------------------------------------------------------------------------------
let g:indentLine_char = '┆'
let g:indentLine_enabled = 1
"------------------------------------------------------------------------------
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
"let g:syntastic_auto_loc_list = 1
"let g:syntastic_check_on_open = 1
"let g:syntastic_check_on_wq = 0
let g:syntastic_error_symbol = "➤"
let g:syntastic_warning_symbol = "●"
let g:syntastic_enable_signs=1
let g:syntastic_check_on_wq = 0
let g:syntastic_check_on_open = 1
"let g:syntastic_lua_checkers = ["luac", "luacheck"]
"let g:syntastic_lua_luacheck_args = "--no-unused-args"
"------------------------------------------------------------------------------
map <F1> :tabnext <CR>
map <F2> :NERDTree <CR>
map <F3> :Tagbar <CR>
map <F4> :tabnew <CR>
map <F5> :sp <CR>
map <F6> :vs <CR>
map <F8> :bel term <CR>
map <F10> :BufExplorerHorizontalSplit <CR>
"------------------------------------------------------------------------------
function ToggleMenu()
if &go =~ 'e'
exec('set guioptions+=m')
exec('set go-=e')
else
exec('set guioptions-=m')
exec('set go+=e')
endif
endfunction
nnoremap <F9> :call ToggleMenu() <CR>
"------------------------------------------------------------------------------
function ToggleFullScreen()
if &go =~ 'e'
exec('silent !wmctrl -r :ACTIVE: -b add,fullscreen')
exec('set go-=e')
else
exec('silent !wmctrl -r :ACTIVE: -b remove,fullscreen')
exec('set go+=e')
endif
endfunction
nnoremap <F11> :call ToggleFullScreen()<CR>
inoremap <F11> :call ToggleFullScreen()<CR>
"------------------------------------------------------------------------------
"function UpdateTags()
" """""""""""""""""""""""""""""
" let projects = ["~/egnaroc/"]
" """""""""""""""""""""""""""""
" for proj in projects
" exec('!cd ' . proj . ' && ctags -R include')
" tags+= proj . 'tags'
" endfor
"endfunction
"map <F12> :call UpdateTags() <CR>
"------------------------------------------------------------------------------
"set wildmenu
"set wcm=<tab>
"menu Encoding.koi8-r :e ++enc=koi8-r <CR>
"menu Encoding.cp1251 :e ++enc=cp1251 <CR>
"menu Encoding.cp866 :e ++enc=cp866 <CR>
"menu Encoding.ucs-2le :e ++enc=ucs-2le <CR>
"menu Encoding.utf-8 :e ++enc=utf-8 <CR>
"map <F12> :emenu Encoding.<Tab>
"menu Tab.new :tabnew <CR>
"menu Tab.next :tabnext <CR>
"menu Tab.previous :tabprevious <CR>
"------------------------------------------------------------------------------
menu Theme.gruvbox :colorscheme gruvbox <CR>
menu Theme.solarized :colorscheme solarized <CR>
menu Theme.badwolf :colorscheme badwolf <CR>
menu Theme.hybrid :colorscheme hybrid <CR>
menu Theme.hybrid_material :colorscheme hybrid_material <CR>
menu Theme.atom :colorscheme atom <CR>
menu Theme.abra :colorscheme abra <CR>
menu Theme.adventurous :colorscheme adventurous <CR>
menu Theme.afterglow :colorscheme afterglow <CR>
menu Theme.alduin :colorscheme alduin <CR>
menu Theme.anderson :colorscheme anderson <CR>
menu Theme.antares :colorscheme antares <CR>
menu Theme.apprentice :colorscheme apprentice <CR>
menu Theme.ayu :colorscheme ayu <CR>
menu Theme.base16-alterdune :colorscheme base16-alterdune <CR>
menu Theme.basic-dark :colorscheme basic-dark <CR>
menu Actions.PasteON :set paste <CR>
menu Actions.PasteOFF :set nopaste <CR>
menu Actions.Wrap :set wrap <CR>
menu Actions.Nowrap :set nowrap <CR>
menu Builds.MakeAll :bel terminal make all <CR>
menu Builds.MakeClean :bel terminal make clean <CR>
menu Builds.Cmake :bel terminal cmake . <CR>
menu Vimrc.Reload :so ~/.vimrc <CR>
menu Vimrc.Edit :vnew ~/.vimrc <CR>
menu Vundle.Update :VundleUpdate <CR>
menu Vundle.Search :VundleSearch <CR>
menu Vundle.Install :VundleInstall <CR>
menu Vundle.Clean :VundleClean <CR>
menu Vundle.Docs :VundleDocs <CR>
"------------------------------------------------------------------------------
set colorcolumn=80
set mouse=a
set showtabline=1
set laststatus=2 "всегда показавать статусную строку
set guioptions-=m
set guioptions-=e
set guioptions-=T
"set guioptions-=r
syntax on
set number
set background=dark
let g:gruvbox_contrast_dark='medium'
let g:gruvbox_italic=v:false
try
"colorscheme Tomorrow-Night
colorscheme gruvbox
"colorscheme apprentice
"catch E185
endtry
hi Bang ctermfg=red guifg=red
match Bang /\%>79v.*\%<81v/
highlight Normal guifg=#e0e0e0 guibg=#242B3C
highlight Terminal guifg=#e0e0e0 guibg=#2D3853
highlight VertSplit guibg=#1F2531 guifg=#1F2531
syn match keywordAs ";"
hi def link keywordAs GruvboxGreen
let g:airline_theme='gruvbox'
"------------------------------------------------------------------------------
set tabstop=4 "ширина таба
set shiftwidth=4 "ширина таба при выравнивании
set expandtab "заменять табы пробелами
set autoindent "копирует отступы с текущей для новой строки
set smartindent "дополнительные умные отступы расширяет autoindent
set wrapmargin=4 "отступ от границы правой стороы окна
"------------------------------------------------------------------------------
set list "отображать спец символы
set listchars=tab:►·,eol:·,trail:↔ "табы ,конец строки, пробелы
"------------------------------------------------------------------------------
set textwidth=1024 ""максимальная длинна строки
"------------------------------------------------------------------------------
"set virtualedit=all "свободное перемещение курсора в произвольное место
"------------------------------------------------------------------------------
set encoding=utf8
set fileformat=unix ""формат по умолчанию
set termencoding=utf-8 ""системная кодировка
set fileencodings=utf8,cp1251,koi8-r "последовательность перебора кодировок
"------------------------------------------------------------------------------
set incsearch ""автоматический поиск совпадений при наборе
set hlsearch ""подсвечивать наиденные совпадения
set ignorecase ""игнорировать регистр при поиске
"set noignorecase ""учитывать регистр при поиске
"set smartcase ""умный учёт регистра при поиске если отсуцтвует верхний
""регист поиск ведётся без его учёта, если же хоть один
""символ в верхнем регистре то регистр учитывается при поиске
"set nosmartcase ""отключает умный режим поска
"------------------------------------------------------------------------------
set history=10000 ""сколько помнить позиций в истории
set undofile ""сохранять историю изменений для закрытых буфферов
set undolevels=1000000000 ""сколько помнить позиций в истории
set undodir=/tmp/undo/ ""где хранить служебные файлы истоии
"------------------------------------------------------------------------------
let g:NERDTreeDisableExactMatchHighlight = 0
let g:NERDTreeDisablePatternMatchHighlight = 0
let g:NERDTreeLimitedSyntax = 0 " limit syntax for the most popular extensions
let g:NERDTreeMouseMode = 2
let g:NERDTreeFileExtensionHighlightFullName = 1
let g:NERDTreeExactMatchHighlightFullName = 1
let g:NERDTreePatternMatchHighlightFullName = 1
let g:NERDTreeHighlightFolders = 1
let g:NERDTreeHighlightFoldersFullName = 1
"let g:NERDTreeDirArrowExpandable = '> '
"------------------------------------------------------------------------------
autocmd User Startified setlocal cursorline
let g:startify_enable_special = 0
let g:startify_files_number = 8
let g:startify_relative_path = 1
let g:startify_change_to_dir = 1
let g:startify_update_oldfiles = 1
let g:startify_session_autoload = 1
let g:startify_session_persistence = 1
let g:startify_custom_header =
\ startify#fortune#cowsay('', '═','║','╔','╗','╝','╚')
let g:startify_custom_footer =
\ ['', " Make code Йопта", '']
hi StartifyBracket ctermfg=240
hi StartifyFile ctermfg=147
hi StartifyFooter ctermfg=240
hi StartifyHeader ctermfg=114
hi StartifyNumber ctermfg=215
hi StartifyPath ctermfg=245
hi StartifySlash ctermfg=240
hi StartifySpecial ctermfg=240
autocmd VimEnter *
\ if !argc()
\ | Startify
"\ | NERDTree
\ | wincmd w
\ | endif
let g:startify_lists = [
\ { 'type': 'sessions', 'header': [' Сессии'] },
\ { 'type': 'files', 'header': [' Последние файлы'] },
\ { 'type': 'dir', 'header': [' Каталоги '. getcwd()]},
\ { 'type': 'bookmarks', 'header': [' Закладки'] },
\ { 'type': 'commands', 'header': [' Комманды'] },
\ ]
let g:startify_files_number = 15
let g:startify_bookmarks = ['~/.vimrc']
let g:startify_commands = ['tabnew ~/.vimrc']
let g:startify_session_before_save = [
\ 'silent! NERDTreeClose'
\ ]
autocmd SessionLoadpost * NERDTree
"------------------------------------------------------------------------------
let g:searchtasks_list=["TODO", "FIXME", "XXX"]
set path+=~/egnaroc/include/**2/
"set path+=/usr/include**2/
"set completeopt=menu,popup,preview,longest
"set complete+=~/.vim/complete/egnaroc.vim
"set tags+=~/egnaroc/tags
"set tags+=~/.vim/tags;
let g:SuperTabDefaultCompletionType = '<C-X><C-O>'
set omnifunc=syntaxcomplete#Complete
"let g:easytags_always_enabled = 1
"let g:easytags_cmd = '/usr/bin/env ctags'
"let g:easytags_syntax_keyword = 'always'
"let g:easytags_file = '~/.vim/tags'
"let g:gutentags_enabled = 0
"set statusline+=%{gutentags#statusline()}
"let g:gutentags_project_root = ['~/egnaroc/','Makefile'] "can use .git
"
"let g:gutentags_ctags_exclude = [
" \ '.git', '.svg', '.hg',
" \ 'release',
" \ 'debut',
" \ 'bin',
" \ 'build',
" \ 'depends',
" \ 'docs',
" \ '.md',
" \ '.rc',
" \ '.bak',
" \ '.zip',
" \ '.pyc',
" \ '.class',
" \ '.cache',
" \ 'tags',
" \ 'cscope.',
" \ '.css',
" \ '.swp', '.swo',
" \ '.bmp', '.gif', '.ico', '.jpg', '.png',
" \ '.rar', '.zip', '.tar', '.tar.gz', '.tar.xz', '.tar.bz2',
" \ '.pdf', '.doc', '.docx', '.ppt', '.pptx',
" \ '.vim',
"\]
"------------------------------------------------------------------------------
set tags+=~/.vim/tags
set tags+=~/egnaroc/tags
"------------------------------------------------------------------------------
lua << EOF
-- тут можно писать код на луа :)
EOF
"------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment