diff options
| author | Syndamia <kamen@syndamia.com> | 2023-02-24 22:39:05 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2023-02-24 22:39:05 +0200 |
| commit | 6ea45e425be52b92006e97e2caf315036542856d (patch) | |
| tree | 99e37b4a5963af7c99b35e705135b9457800aa82 /.vim/startup/pluginsettings.vim | |
| parent | 9020beac90c6779d831f0d73639c95a2dabacdb1 (diff) | |
| download | dotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar dotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar.gz dotfiles-6ea45e425be52b92006e97e2caf315036542856d.zip | |
[.vimrc] Huge overhaul, separating contents into different files
Diffstat (limited to '.vim/startup/pluginsettings.vim')
| -rw-r--r-- | .vim/startup/pluginsettings.vim | 146 |
1 files changed, 146 insertions, 0 deletions
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 <Tab> :NERDTreeToggle<CR> + + 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 <F5> :UndotreeToggle<CR> + + 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 = '<S-Tab>' + 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 <F2> <ESC>:ALERename<CR> + map gd <ESC>:ALEGoToDefinition<CR> + map gi <ESC>:ALEHover<CR> + map ge <ESC>:ALEDetail<CR> + + 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 +" }}} |
