From 6ea45e425be52b92006e97e2caf315036542856d Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 24 Feb 2023 22:39:05 +0200 Subject: [.vimrc] Huge overhaul, separating contents into different files --- .vim/startup/pluginsettings.vim | 146 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 .vim/startup/pluginsettings.vim (limited to '.vim/startup/pluginsettings.vim') diff --git a/.vim/startup/pluginsettings.vim b/.vim/startup/pluginsettings.vim new file mode 100644 index 0000000..633cfe7 --- /dev/null +++ b/.vim/startup/pluginsettings.vim @@ -0,0 +1,146 @@ +" DelimitMate {{{ + let delimitMate_expand_cr = 1 + " Don't autocomplete diamond brackets in HTML (compatibility with closetag plugin) + autocmd FileType html let b:delimitMate_matchpairs='(:),[:],{:}' +" }}} + +" NERDTree {{{ + " Toggle NERDTree with Tab + nmap :NERDTreeToggle + + let NERDTreeCustomOpenArgs = {'file':{'where':'t'}} " Open file in new tab, doesn't work only for double-click + let NERDTreeShowHidden = 1 + let NERDTreeWinPos = "right" + let NERDTreeIgnore = ['\.swp$', '\~$'] " Ignore file, ending with .swp and ~ +" }}} + +" Undotree {{{ + " Toggle undotree with F5 + nmap :UndotreeToggle + + let g:undotree_WindowLayout = 2 + let g:undotree_ShortIndicators = 1 " e.g. using 'd' instead of 'days' to save some space. + let g:undotree_SetFocusWhenToggle = 1 " if set, let undotree window get focus after being opened, otherwise focus will stay in current window. + let g:undotree_TreeNodeShape = '*' + let g:undotree_DiffCommand = "diff" +" }}} + +" Tabman {{{ + let g:tabman_toggle = '' + let g:tabman_side = 'right' +" }}} + +" SuperTab {{{ + let g:SuperTabDefaultCompletionType = "context" +" }}} + +" Lightline {{{ + " Settings {{{ + + if !has('gui_running') + set t_Co=256 + endif + + let g:lightline = { + \ 'enable': { + \ 'statusline': 1, + \ 'tabline': 1 + \ }, + \ 'colorscheme': 'wombat', + \ 'active': { + \ 'left': [ [ 'mode', 'paste' ], + \ [ 'gitbranch', 'filename', 'charvaluehex', 'readonly', 'modified' ] ], + \ 'right': [ [ 'lineinfo' ], + \ [ 'fileencoding', 'filetype'] ] + \ }, + \ 'component': { + \ 'charvaluehex': '0x%B', + \ }, + \ 'component_function': { + \ 'gitbranch': 'LightlineFugitive', + \ 'readonly': 'LightlineReadonly', + \ 'modified': 'LightlineModified', + \ 'filetype': 'LightlineFileType' + \ }, + \ 'tabline': { + \ 'right': [[]] + \ }, + \ 'tab': { + \ 'active': [ 'iconFilename','iconReadonly', 'iconModified' ], + \ 'inactive': [ 'iconFilename', 'iconReadonly', 'iconModified' ] + \ }, + \ 'tab_component_function': { + \ 'iconFilename': 'LightlineTabFilename', + \ 'iconReadonly': 'LightlineTabReadonly', + \ 'iconModified': 'LightlineTabModified' + \ }, + \ 'separator': { 'left': '', 'right': '' }, + \ 'subseparator': { 'left': '', 'right': '' }, + \ 'tabline_separator': { 'left': '', 'right': '' }, + \ 'tabline_subseparator': { 'left': '' } + \ } + " }}} + + " Function overrides {{{ + " Most of the following functions are just modification of source: + " Examples from doc file - https://github.com/itchyny/lightline.vim/blob/53176a0b75d6389d775d7bce0d494e58fc654f38/doc/lightline.txt#L583 + " Tab source code - https://github.com/itchyny/lightline.vim/blob/master/autoload/lightline/tab.vim + + function! LightlineFugitive() + if exists('*FugitiveHead') + let branch = FugitiveHead() + return branch !=# '' ? ' '.branch : '' + endif + return '' + endfunction + + function! LightlineReadonly() + return &ft !~? 'help\|vimfiler' && &readonly ? '' : '' + endfunction + + function! LightlineModified() + return &ft =~ 'help\|vimfiler' ? '' : &modified ? '' : &modifiable ? '' : '' + endfunction + + function! LightlineFileType() + return strlen(&filetype) ? WebDevIconsGetFileTypeSymbol() . ' ' . &filetype : '' + endfunction + + " Adds the file type icon in tabs and limit their width + function! LightlineTabFilename(n) abort + let buflist = tabpagebuflist(a:n) + let winnr = tabpagewinnr(a:n) + let _ = (expand('#'.buflist[winnr - 1].':t') !=# '' ? expand('#'.buflist[winnr - 1].':t') : '[No Name]') + + " Limit the width of tabs, so they don't go out of the screen + let tabNameLengthMax = &columns/((tabpagenr('$') > 0 ? tabpagenr('$') : 0) + 5) + + return WebDevIconsGetFileTypeSymbol(_) . ' ' . _[0:tabNameLengthMax] + endfunction + + function! LightlineTabReadonly(n) abort + let winnr = tabpagewinnr(a:n) + return gettabwinvar(a:n, winnr, '&readonly') ? '' : '' + endfunction + + function! LightlineTabModified(n) abort + let winnr = tabpagewinnr(a:n) + return gettabwinvar(a:n, winnr, '&modified') ? '' : gettabwinvar(a:n, winnr, '&modifiable') ? '' : '' + endfunction + " }}} +" }}} + +" ALE {{{ + map :ALERename + map gd :ALEGoToDefinition + map gi :ALEHover + map ge :ALEDetail + + set omnifunc=ale#completion#OmniFunc + let g:ale_completion_enabled = 1 + + let g:ale_floating_preview = 1 " Use floating window + let g:ale_floating_window_border = ['│', '─', '╭', '╮', '╯', '╰'] " Nicer borders + + let g:ale_typescript_tsserver_use_global = 1 " Use global tsserver package +" }}} -- cgit v1.2.3