mirror of
https://github.com/prurigro/darkcloud-nvimconfig.git
synced 2024-12-22 07:50:23 -05:00
Undo history and syntax errors can now be toggled with F9 and ctrl-F9.
Nerdtree was dropped in favour of the much better vimfiler. The status bar was reconfigured to display more information including the current number of errors. A script was added that can generate a tags file from /usr/include for more robust syntax checking in C. The update script was updated to hopefully handle the removal of nerdtree when it updates the submodules... Syntax highlighting has been improved in numerous directions including more definitions as well as tweaked colours. Keybindings were tweaked again and new ones added for the new features. The paste function was incorrectly using buffer 0 instead of the current buffer when in visual mode, but this is no longer the case. Autocompletion has been improved quite a bit and the keybindings tweaked. A bunch of general fixes and tidying up was done.
This commit is contained in:
parent
f67a01fca4
commit
d5d4189e78
13 changed files with 289 additions and 106 deletions
15
.gitmodules
vendored
15
.gitmodules
vendored
|
@ -34,9 +34,6 @@
|
|||
[submodule "vim/bundle/emmet-vim"]
|
||||
path = vim/bundle/emmet-vim
|
||||
url = https://github.com/mattn/emmet-vim.git
|
||||
[submodule "vim/bundle/nerdtree"]
|
||||
path = vim/bundle/nerdtree
|
||||
url = https://github.com/scrooloose/nerdtree.git
|
||||
[submodule "vim/bundle/vim-markdown"]
|
||||
path = vim/bundle/vim-markdown
|
||||
url = https://github.com/plasticboy/vim-markdown.git
|
||||
|
@ -46,3 +43,15 @@
|
|||
[submodule "vim/bundle/vim-togglelist"]
|
||||
path = vim/bundle/vim-togglelist
|
||||
url = https://github.com/milkypostman/vim-togglelist.git
|
||||
[submodule "vim/bundle/gundo.vim"]
|
||||
path = vim/bundle/gundo.vim
|
||||
url = https://github.com/sjl/gundo.vim.git
|
||||
[submodule "vim/bundle/unite.vim"]
|
||||
path = vim/bundle/unite.vim
|
||||
url = https://github.com/Shougo/unite.vim.git
|
||||
[submodule "vim/bundle/vimfiler.vim"]
|
||||
path = vim/bundle/vimfiler.vim
|
||||
url = https://github.com/Shougo/vimfiler.vim.git
|
||||
[submodule "vim/bundle/syntastic"]
|
||||
path = vim/bundle/syntastic
|
||||
url = https://github.com/scrooloose/syntastic.git
|
||||
|
|
19
README.md
19
README.md
|
@ -3,10 +3,10 @@
|
|||
## Requirements
|
||||
|
||||
1. Git: Required to clone and update the repository.
|
||||
3. CTags: Available @ http://ctags.sourceforge.net, this can be in $PATH or in the vim folder and is required for the tagbar plugin.
|
||||
3. CTags: Available @ http://ctags.sourceforge.net, place in $PATH or the vim folder to use the tagbar or extended C omni/auto-completion.
|
||||
4. Vim v7.4+: Everything has been written and tested using Vim 7.4.135, and I assume there could be issues with 7.3 and below.
|
||||
2. Bash (optional): Required to use the update script, which simply runs the git repo and submodule update commands.
|
||||
5. Powerline Fonts (optional): Required for the powerline lightline theme, which can be toggled in /etc/vimrc along with the gvim font
|
||||
2. Bash (optional): Required to use the update and ctags generation scripts, both of which can be run with the commands listed within.
|
||||
5. Powerline Fonts (optional): Required for an extended look/feel using lightline, otherwise it should be toggled off in the vimrc.
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -14,15 +14,16 @@
|
|||
* ]$ git clone https://github.com/prurigro/darkcloud-vimconfig.git
|
||||
* ]$ cd darkcloud-vimconfig
|
||||
* ]$ git submodule update --init
|
||||
2. Edit the 'vimrc' file and select whether to expect powerline fonts, choose a font for gvim, and add or change any of the loaded config files to match your personal setup.
|
||||
3. There are two main ways this package can be deployed: system-wide or single-user.
|
||||
2. Edit the 'vimrc' file and select whether to use powerline fonts, choose a font for gvim and add additional config after it loads the included files.
|
||||
3. There are two main ways this package can be deployed: system-wide or single-user (vim must be configured to load from the respective location):
|
||||
* For a distro-agnostic system-wide installation in the /etc directory, copy or link: 'vimrc' to '/etc/vimrc' and the 'vim' folder to '/etc/vim'.
|
||||
* For a single-user installation in a user's home directory, copy or link: 'vimrc' to '~/.vimrc' -and- the 'vim' folder to '~/.vim'.
|
||||
4. Make sure the 'vimrc' file and 'vim' folder are at least readable to any users that will be using the config.
|
||||
5. Clone additional vim plugin repos in the 'bundle' folder to have them loaded at startup.
|
||||
6. You can add or replace config files in your 'vimrc' file to customize behaviour.
|
||||
4. Make sure the 'vimrc' file and 'vim' folder are readable by any users expecting to use them.
|
||||
5. Clone additional vim plugin repositories in the 'bundle' folder to have them loaded at startup.
|
||||
6. You can add additional config files or replace the included ones listed in the vimrc file to customize behaviour.
|
||||
7. Run the 'gen-ctags-file' script to generate a tags file for the user that runs it to facilitate omnicompletion and tagbar.
|
||||
7. Run the 'update' script in the base directory of the repo as an easy way to pull changes and update the plugins all at once.
|
||||
8. You can find a list of keybindings that were added by this config as well as a few of the ones added by plugins in 'vim/config/keyboard.vim'
|
||||
8. You can find a list of key bindings that were added by this config as well as a few of the ones added by plugins in 'vim/config/keyboard.vim'
|
||||
|
||||
## Features
|
||||
|
||||
|
|
3
generate-system-ctags
Executable file
3
generate-system-ctags
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
[[ `type -P ctags` ]] && ctags -R -f ~/.vim/tags /usr/include /usr/local/include || echo "Can't find the ctags binary in $PATH"
|
2
update
2
update
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
git pull origin
|
||||
git submodule update --init
|
||||
git submodule update --init --recursive --rebase
|
||||
|
|
1
vim/bundle/gundo.vim
Submodule
1
vim/bundle/gundo.vim
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 3975ac871565115e3769dc69c06bc88ddc1369af
|
|
@ -1 +0,0 @@
|
|||
Subproject commit b0bb781fc73ef40365e4c996a16f04368d64fc9d
|
1
vim/bundle/syntastic
Submodule
1
vim/bundle/syntastic
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 82bff20b0200c3ccb292a9261d565b5bbc609ac2
|
1
vim/bundle/unite.vim
Submodule
1
vim/bundle/unite.vim
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 11c572564736dfbbebe8cdbbf3e2768ad80a083c
|
1
vim/bundle/vimfiler.vim
Submodule
1
vim/bundle/vimfiler.vim
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit d87231f66c042d8e6d139cd0ff71af91114af49d
|
|
@ -281,8 +281,8 @@ call s:X("StatusLineNC","ffffff","626262","","White","Grey")
|
|||
call s:X("VertSplit","626262","626262","",s:termBlack,s:termBlack)
|
||||
call s:X("WildMenu","808080","303030","","White",s:termBlack)
|
||||
|
||||
call s:X("Folded","ffaf00","626262","bold","Red",s:termBlack)
|
||||
call s:X("FoldColumn","ffaf00","626262","bold","Red",s:termBlack)
|
||||
call s:X("Folded","87d7ff","626262","bold","Blue",s:termBlack)
|
||||
call s:X("FoldColumn","87d7ff","262626","bold","Blue",s:termBlack)
|
||||
call s:X("SignColumn","ffaf00","626262","bold","Red",s:termBlack)
|
||||
call s:X("ColorColumn","ffaf00","626262","bold","Red",s:termBlack)
|
||||
|
||||
|
@ -291,7 +291,7 @@ call s:X("TabLineFill","","000000","","",s:termBlack)
|
|||
call s:X("TabLineSel","000000","ffffff","",s:termBlack,"White")
|
||||
|
||||
call s:X("Comment","626262","","italic","Grey","")
|
||||
call s:X("Todo","ffaf00","808080","","Red",s:termBlack)
|
||||
call s:X("Todo","d75f5f","","bold","Red","")
|
||||
|
||||
call s:X("Normal","d0d0d0","262626","","White",s:termBlack)
|
||||
call s:X("MatchParen","ffffff","262626","standout,bold",s:termBlack,"White")
|
||||
|
@ -314,10 +314,10 @@ call s:X("PreProc","ffd787","","","Yellow","")
|
|||
call s:X("Operator","d75f5f","","","Red","")
|
||||
call s:X("NonText","87d7ff","","","Blue","")
|
||||
call s:X("SpecialKey","000000","","",s:termBlack,"")
|
||||
call s:X("Search","ffffff","d75f5f","bold","White","Red")
|
||||
call s:X("IncSearch","87d7ff","626262","standout","Blue","Grey")
|
||||
call s:X("Directory","ffaf00","","","Yellow","")
|
||||
call s:X("Question","d75f5f","","","Red","")
|
||||
call s:X("Search","000000","87d7ff","bold",s:termBlack,"Blue")
|
||||
call s:X("IncSearch","","","standout","","")
|
||||
call s:X("Directory","87d7ff","","","Blue","")
|
||||
call s:X("Question","87d7ff","","","Blue","")
|
||||
call s:X("ExtraWhitespace","262626","","standout",s:termBlack,"")
|
||||
call s:X("Error","d75f5f","000000","standout","Red",s:termBlack)
|
||||
hi! link ErrorMsg Error
|
||||
|
@ -409,9 +409,15 @@ call s:X("rubyGlobalVariable","","","bold","","")
|
|||
"lua
|
||||
hi! link luaOperator Conditional
|
||||
|
||||
""debugger.vim
|
||||
"call s:X("DbgCurrent","","","","","")
|
||||
"call s:X("DbgBreakPt","","","","","")
|
||||
"syntastic error checking
|
||||
call s:X("SyntasticError","d75f5f","","standout,bold","Red","")
|
||||
call s:X("SyntasticWarning","ffd787","","standout,bold","Yellow","")
|
||||
hi! link SyntasticErrorLine SyntasticError
|
||||
hi! link SyntasticWarningLine SyntasticWarning
|
||||
hi! link SyntasticErrorSign Error
|
||||
hi! link SyntasticWarningSign Statement
|
||||
hi! link qfSeparator Delimiter
|
||||
hi! link qfLineNr SyntasticError
|
||||
|
||||
"vim-indent-guides
|
||||
call s:X("IndentGuidesOdd","","7c7c7c","","","Grey")
|
||||
|
@ -469,11 +475,4 @@ hi! link TagListFileName Directory
|
|||
let s:p.normal.error = [ [ s:red, s:base023 ] ]
|
||||
let s:p.normal.warning = [ [ s:yellow, s:base02 ] ]
|
||||
let g:lightline#colorscheme#darkcloud#palette = lightline#colorscheme#fill(s:p)
|
||||
|
||||
"theme config (powerline fonts)
|
||||
if powerlinefonts == 1
|
||||
let g:lightline = {'colorscheme': 'darkcloud', 'active': {'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'readonly', 'filename', 'modified' ] ]}, 'component': {'readonly': '%{&readonly?"":""}', 'modified': '%{&filetype=="help"?"":&modified?"+":&modifiable?"":"-"}','fugitive': '%{exists("*fugitive#head")?fugitive#head():""}'},'component_visible_condition': {'readonly': '(&filetype!="help"&& &readonly)','modified': '(&filetype!="help"&&(&modified||!&modifiable))', 'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())'}, 'separator': {'left': '', 'right': ''}, 'subseparator': {'left': '', 'right': ''}}
|
||||
else
|
||||
let g:lightline = {'colorscheme': 'darkcloud','active': {'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'readonly', 'filename', 'modified' ] ]},'component': {'readonly': '%{&readonly?"x":""}', 'modified': '%{&filetype=="help"?"":&modified?"+":&modifiable?"":"-"}', 'fugitive': '%{exists("*fugitive#head")?fugitive#head():""}'},'component_visible_condition': {'readonly': '(&filetype!="help"&& &readonly)','modified': '(&filetype!="help"&&(&modified||!&modifiable))', 'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())'},'separator': {'left': '', 'right': ''},'subseparator': {'left': '|', 'right': '|'}}
|
||||
endif
|
||||
"}}}
|
||||
|
|
|
@ -25,28 +25,30 @@
|
|||
" <Ctrl-p> | (A) -> go to the previous open tab
|
||||
"
|
||||
" (toggles)
|
||||
" <Space> | (N) -> toggle folds
|
||||
" <F1> | (A) -> toggle line numbers
|
||||
" <F2> | (A) -> toggle row/column highlighting
|
||||
" <F3> | (A) -> toggle spell check
|
||||
" <F4> | (A) -> toggle line wrapping
|
||||
" <F9> | (A) -> toggle the nerdtree sidebar
|
||||
" <F3> | (A) -> toggle line wrapping
|
||||
" <F4> | (A) -> toggle spell check
|
||||
" <F5> | (A) -> toggle all folds
|
||||
" <F9> | (A) -> toggle the gundo undo history sidebar
|
||||
" <Shift-F9> | (A) -> toggle the tagbar sidebar
|
||||
" <F12> | (A) -> toggle collapsed/folded rows
|
||||
" <Shift-F12> | (A) -> toggle all folds
|
||||
" <Shift-F12> | (A) -> toggle all folds
|
||||
" <Ctrl-F9> | (A) -> toggle the error list
|
||||
" `` | (N) -> toggle the filer explorer sidebar
|
||||
"
|
||||
" (gvim toggles)
|
||||
" <Ctrl-F1> | (A) -> toggle the menu
|
||||
" <Ctrl-F2> | (A) -> toggle the toolbar
|
||||
" <Ctrl-F3> | (A) -> toggle the scrollbar
|
||||
"
|
||||
" (spelling-and-completion)
|
||||
" <Tab><Tab>, | (A) -> enter this following an emme 'word' (ie: html:5)
|
||||
" (completion)
|
||||
" <Leader>,, | (A) -> enter after emme 'word' (ie: html:5)
|
||||
" \\ | (N) -> show spelling suggestions popup for word
|
||||
" \| | (N) -> add word to a local list of correct spellings
|
||||
" <Leader><Backspace> | (N) -> undo the most recent match selection
|
||||
" <Tab> | (I) -> write the part common to all suggestions
|
||||
" <Backspace> | (I) -> cancel the match dialog (during suggestion)
|
||||
" <Tab> | (I) -> (neocomp) autocomplete using common string
|
||||
" <Leader><Tab> | (I) -> (neocomp) autocomplete the common string
|
||||
" <Enter> | (I) -> (neocomp) close the suggestion popup
|
||||
" <Leader><Backspace> | (I) -> (neocomp) undo the most recent completion
|
||||
"
|
||||
" (formatting)
|
||||
" <Backspace> | (V) -> deletes currently selected text
|
||||
|
@ -82,7 +84,7 @@
|
|||
" <Shift-Left> | (N) -> select all non-whitespace to the left
|
||||
"
|
||||
" (vimdiff)
|
||||
" <Leader><Space> | (N) -> update differences
|
||||
" <Leader>> | (N) -> update differences
|
||||
" >> | (N) -> next difference
|
||||
" << | (N) -> previous difference
|
||||
" >< | (N) -> replace diff in current pane with other pane
|
||||
|
@ -129,6 +131,9 @@
|
|||
"}
|
||||
|
||||
"TOGGLES:{
|
||||
"toggle folded code at foldpoints
|
||||
nnoremap <Space> za
|
||||
|
||||
"unmap F1 from help then map it to toggle the display of line numbers
|
||||
nnoremap <silent><expr> <F1> ':set number!<CR>'
|
||||
vnoremap <silent><expr> <F1> '<Esc>:set number!<CR>v'
|
||||
|
@ -139,33 +144,36 @@
|
|||
vnoremap <silent><expr> <F2> '<Esc>:set cursorline! cursorcolumn!<CR>v'
|
||||
inoremap <silent><expr> <F2> '<C-O>:set cursorline! cursorcolumn!<CR>'
|
||||
|
||||
"toggle spellcheck
|
||||
nnoremap <silent><expr> <F3> ':set spell!<CR>'
|
||||
vnoremap <silent><expr> <F3> '<Esc>:set spell!<CR>v'
|
||||
inoremap <silent><expr> <F3> '<C-O>:set spell!<CR>'
|
||||
|
||||
"toggle line wrapping (and bottom bar if using the gui)
|
||||
nnoremap <silent><expr> <F4> ':set wrap! go'.'-+'[&wrap]."=b\r"
|
||||
vnoremap <silent><expr> <F4> '<Esc>:set wrap! go'.'-+'[&wrap]."=b\rv"
|
||||
inoremap <silent><expr> <F4> '<C-O>:set wrap! go'.'-+'[&wrap]."=b\r"
|
||||
nnoremap <silent><expr> <F3> ':set wrap! go'.'-+'[&wrap]."=b\r"
|
||||
vnoremap <silent><expr> <F3> '<Esc>:set wrap! go'.'-+'[&wrap]."=b\rv"
|
||||
inoremap <silent><expr> <F3> '<C-O>:set wrap! go'.'-+'[&wrap]."=b\r"
|
||||
|
||||
"bindings to trigger the nerdtree and tagbar sidebars
|
||||
nnoremap <silent><expr> <F9> ':NERDTreeToggle<CR>'
|
||||
vnoremap <silent><expr> <F9> '<Esc>:NERDTreeToggle<CR>'
|
||||
inoremap <silent><expr> <F9> '<Esc>:NERDTreeToggle<CR>'
|
||||
"toggle spellcheck
|
||||
nnoremap <silent><expr> <F4> ':set spell!<CR>'
|
||||
vnoremap <silent><expr> <F4> '<Esc>:set spell!<CR>v'
|
||||
inoremap <silent><expr> <F4> '<C-O>:set spell!<CR>'
|
||||
|
||||
"toggle all folds
|
||||
nnoremap <F5> zi
|
||||
vnoremap <F5> <Esc>ziv
|
||||
inoremap <F5> <C-O>zi
|
||||
|
||||
"bindings to trigger the gundo undo history
|
||||
nnoremap <silent><expr> <F9> ':GundoToggle<CR>'
|
||||
vnoremap <silent><expr> <F9> '<Esc>:GundoToggle<CR>v'
|
||||
inoremap <silent><expr> <F9> '<C-O>:GundoToggle<CR>'
|
||||
|
||||
"bindings to trigger the tagbar list of tags
|
||||
nnoremap <silent><expr> <S-F9> ':TagbarToggle<CR>'
|
||||
vnoremap <silent><expr> <S-F9> '<Esc>:TagbarToggle<CR>v'
|
||||
inoremap <silent><expr> <S-F9> '<C-O>:TagbarToggle<CR>'
|
||||
|
||||
"toggle folded code at foldpoints
|
||||
nnoremap <F12> za
|
||||
vnoremap <F12> <Esc>zav
|
||||
inoremap <F12> <C-O>za
|
||||
"bindings to trigger the tagbar list of errors
|
||||
nmap <script> <silent> <C-F9> :call ToggleLocationList()<CR>
|
||||
|
||||
"toggle all folds
|
||||
nnoremap <S-F12> zi
|
||||
vnoremap <S-F12> <Esc>ziv
|
||||
inoremap <S-F12> <C-O>zi
|
||||
"bindings to trigger the filer explorer
|
||||
nnoremap <silent><expr> `` ':VimFilerExplorer<CR>'
|
||||
"}
|
||||
|
||||
"GVIM TOGGLES:{
|
||||
|
@ -184,17 +192,21 @@
|
|||
"}
|
||||
|
||||
"SPELLING AND COMPLETION:{
|
||||
"emmet switch triggerkey from <Ctrl-Y> to <Ctrl-Z>
|
||||
let g:user_emmet_leader_key='<Tab><Tab>'
|
||||
"emmet switch triggerkey from <Ctrl-Y>
|
||||
let g:user_emmet_leader_key='<Leader>,'
|
||||
|
||||
"press backslash twice on a mispelled word for suggestions
|
||||
nnoremap \\ hei<C-X><C-S>
|
||||
nnoremap \| zg
|
||||
|
||||
"neocomplcache suggestions: cancel, autocomplete, scroll up and scroll down
|
||||
inoremap <expr><Leader><Backspace> neocomplcache#undo_completion()
|
||||
inoremap <expr><Tab> pumvisible() ? neocomplcache#complete_common_string() : "\<Tab>"
|
||||
inoremap <expr><Backspace> pumvisible() ? neocomplcache#close_popup() : "\<Backspace>"
|
||||
"neocomplcache: scroll through completion list
|
||||
inoremap <expr><Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
||||
"neocomplcache: complete the common part of the string
|
||||
inoremap <expr><Leader><Tab> neocomplcache#complete_common_string()
|
||||
"neocomplcache: close popup and delete backward char
|
||||
inoremap <expr><CR> pumvisible() ? neocomplcache#smart_close_popup() : "\<CR>"
|
||||
"neocomplcache : undo completion
|
||||
inoremap <expr><Leader><Backspace> "<Backspace>" . neocomplcache#undo_completion()
|
||||
"}
|
||||
|
||||
"FORMATTING:{
|
||||
|
@ -244,7 +256,7 @@
|
|||
|
||||
"VIMDIFF:{
|
||||
"map shortcuts for vimdiff
|
||||
nnoremap <silent><expr> <Leader><Space> ':diffu<CR>'
|
||||
nnoremap <silent><expr> <Leader>> ':diffu<CR>'
|
||||
nnoremap >> ]c
|
||||
nnoremap << [c
|
||||
nnoremap <> dp
|
||||
|
@ -259,8 +271,8 @@
|
|||
nnoremap y vy<Esc>
|
||||
|
||||
"alternatives that preserve the paste buffer
|
||||
vnoremap p "_d"0P
|
||||
vnoremap P "_d"0P
|
||||
vnoremap p "_dP
|
||||
vnoremap P "_dP
|
||||
vnoremap <Leader>x "_x
|
||||
nnoremap <Leader>x "_x
|
||||
vnoremap <Leader>X "_X
|
||||
|
|
|
@ -2,42 +2,192 @@
|
|||
" Plugins Configuration: "
|
||||
"=========================="
|
||||
|
||||
"PATHOGEN BUNDLED EXTENSIONS PLUGIN: LOAD BUNDLED PLUGINS {{{"
|
||||
"PATHOGEN BUNDLED EXTENSIONS PLUGIN: LOAD BUNDLED PLUGINS {{{
|
||||
execute pathogen#infect()
|
||||
"}}}
|
||||
|
||||
"EMMET: CONFIGURE WHEN ZENCODING IS ENABLED {{{
|
||||
let g:user_emmet_install_global = 0
|
||||
let g:user_emmet_install_global=0
|
||||
autocmd FileType html,css,php,aspx EmmetInstall
|
||||
"}}}
|
||||
|
||||
"GUNDO: CONFIGURE SIDEBAR SETTINGS {{{
|
||||
let g:gundo_right=1
|
||||
let g:gundo_width=50
|
||||
let g:gundo_preview_height=20
|
||||
"}}}
|
||||
|
||||
"LIGHTLINE: CONFIGURE THE LIGHTLINE STATUS BAR {{{
|
||||
let g:unite_force_overwrite_statusline = 0
|
||||
let g:vimfiler_force_overwrite_statusline = 0
|
||||
|
||||
function! LLModified()
|
||||
return &ft =~ 'help' ? '' : &modified ? '+' : &modifiable ? '' : '-'
|
||||
endfunction
|
||||
|
||||
function! LLReadonly()
|
||||
return &ft !~? 'help' && &readonly ? 'RO' : ''
|
||||
endfunction
|
||||
|
||||
function! LLFilename()
|
||||
let fname = expand('%:t')
|
||||
return
|
||||
\ fname == '__Tagbar__' ? g:lightline.fname :
|
||||
\ fname =~ '__Gundo' ? '' :
|
||||
\ &ft == 'vimfiler' ? vimfiler#get_status_string() :
|
||||
\ &ft == 'unite' ? unite#get_status_string() :
|
||||
\ ('' != LLReadonly() ? LLReadonly() . ' ' : '') .
|
||||
\ ('' != fname ? fname : '[No Name]') .
|
||||
\ ('' != LLModified() ? ' ' . LLModified() : '')
|
||||
endfunction
|
||||
|
||||
function! LLFugitive()
|
||||
try
|
||||
if expand('%:t') !~? 'Tagbar\|Gundo' && &ft !~? 'vimfiler' && exists('*fugitive#head')
|
||||
let mark = '' " edit here for cool mark
|
||||
let _ = fugitive#head()
|
||||
return strlen(_) ? mark._ : ''
|
||||
endif
|
||||
catch
|
||||
endtry
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! LLFileformat()
|
||||
return winwidth(0) > 70 ? &fileformat : ''
|
||||
endfunction
|
||||
|
||||
function! LLFiletype()
|
||||
return winwidth(0) > 70 ? (strlen(&filetype) ? &filetype : 'no ft') : ''
|
||||
endfunction
|
||||
|
||||
function! LLFileencoding()
|
||||
return winwidth(0) > 70 ? (strlen(&fenc) ? &fenc : &enc) : ''
|
||||
endfunction
|
||||
|
||||
function! LLMode()
|
||||
let fname = expand('%:t')
|
||||
return fname == '__Tagbar__' ? 'Tagbar' :
|
||||
\ fname == '__Gundo__' ? 'Gundo' :
|
||||
\ fname == '__Gundo_Preview__' ? 'Gundo Preview' :
|
||||
\ &ft == 'unite' ? 'Unite' :
|
||||
\ &ft == 'vimfiler' ? 'VimFiler' :
|
||||
\ winwidth(0) > 60 ? lightline#mode() : ''
|
||||
endfunction
|
||||
|
||||
let g:tagbar_status_func = 'TagbarStatusFunc'
|
||||
function! TagbarStatusFunc(current, sort, fname, ...) abort
|
||||
let g:lightline.fname = a:fname
|
||||
return lightline#statusline(0)
|
||||
endfunction
|
||||
|
||||
augroup AutoSyntastic
|
||||
autocmd!
|
||||
autocmd BufWritePost * call s:syntastic()
|
||||
augroup END
|
||||
|
||||
function! s:syntastic()
|
||||
SyntasticCheck
|
||||
call lightline#update()
|
||||
endfunction
|
||||
|
||||
"status bar config with and without powerline fonts
|
||||
if powerlinefonts == 1
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'darkcloud',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ] ],
|
||||
\ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'fugitive': 'LLFugitive',
|
||||
\ 'filename': 'LLFilename',
|
||||
\ 'fileformat': 'LLFileformat',
|
||||
\ 'filetype': 'LLFiletype',
|
||||
\ 'fileencoding': 'LLFileencoding',
|
||||
\ 'mode': 'LLMode',
|
||||
\ },
|
||||
\ 'component_expand': {
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ },
|
||||
\ 'component_type': {
|
||||
\ 'syntastic': 'error',
|
||||
\ },
|
||||
\ 'separator': {'left': '', 'right': ''},
|
||||
\ 'subseparator': {'left': '', 'right': ''}
|
||||
\ }
|
||||
else
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'darkcloud',
|
||||
\ 'active': {
|
||||
\ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ] ],
|
||||
\ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
||||
\ },
|
||||
\ 'component_function': {
|
||||
\ 'fugitive': 'LLFugitive',
|
||||
\ 'filename': 'LLFilename',
|
||||
\ 'fileformat': 'LLFileformat',
|
||||
\ 'filetype': 'LLFiletype',
|
||||
\ 'fileencoding': 'LLFileencoding',
|
||||
\ 'mode': 'LLMode',
|
||||
\ },
|
||||
\ 'component_expand': {
|
||||
\ 'syntastic': 'SyntasticStatuslineFlag',
|
||||
\ },
|
||||
\ 'component_type': {
|
||||
\ 'syntastic': 'error',
|
||||
\ },
|
||||
\ 'separator': {'left': '', 'right': ''},
|
||||
\ 'subseparator': {'left': '|', 'right': '|'}
|
||||
\ }
|
||||
endif
|
||||
"}}}
|
||||
|
||||
"MARKDOWN VIM MODE: SETTINGS {{{
|
||||
let g:vim_markdown_folding_disabled=0
|
||||
let g:vim_markdown_initial_foldlevel=2
|
||||
"}}}
|
||||
|
||||
"NEOCOMPLCACHE AUTOCOMPLETION PLUGIN: ENABLE, CONFIG AND SETUP OMNICOMPLETION {{{"
|
||||
"VIM FILER: SETTINGS {{{
|
||||
let g:vimfiler_edit_action='tabopen'
|
||||
let g:vimfiler_as_default_explorer=1
|
||||
let g:vimfiler_enable_auto_cd=1
|
||||
|
||||
let g:vimfiler_tree_closed_icon='▸'
|
||||
let g:vimfiler_tree_opened_icon='▾'
|
||||
let g:vimfiler_file_icon='-'
|
||||
let g:vimfiler_marked_file_icon='+'
|
||||
|
||||
"edit files by double clicking them
|
||||
autocmd FileType vimfiler nmap <buffer> <2-LeftMouse> <Plug>(vimfiler_edit_file)
|
||||
|
||||
"open automatically if vim was run without any files
|
||||
autocmd VimEnter * if !argc() | VimFiler -project | endif
|
||||
|
||||
"file associations
|
||||
if has('unix')
|
||||
call vimfiler#set_execute_file('mp4','xdg-open')
|
||||
call vimfiler#set_execute_file('mp3','xdg-open')
|
||||
endif
|
||||
"}}}
|
||||
|
||||
"NEOCOMPLCACHE AUTOCOMPLETION PLUGIN: ENABLE AND CONFIGURE BEHAVIOUR {{{
|
||||
let g:neocomplcache_enable_at_startup=1
|
||||
let g:neocomplcache_enable_smart_case=1
|
||||
let g:neocomplcache_min_syntax_length=3
|
||||
let g:neocomplcache_enable_insert_char_pre=1
|
||||
let g:neocomplcache_enable_underbar_completion=1
|
||||
let g:neocomplcache_enable_camel_case_completion=1
|
||||
let g:neocomplcache_wildcard_characters={'_': '-'}
|
||||
|
||||
if has("autocmd") && exists("+omnifunc")
|
||||
autocmd Filetype * if &omnifunc == "" | setlocal omnifunc=syntaxcomplete#Complete | endif
|
||||
if !exists('g:neocomplcache_omni_patterns')
|
||||
let g:neocomplcache_omni_patterns = {}
|
||||
endif
|
||||
if !exists('g:neocomplcache_force_omni_patterns')
|
||||
let g:neocomplcache_force_omni_patterns = {}
|
||||
endif
|
||||
|
||||
autocmd FileType c setlocal omnifunc=ccomplete#Complete
|
||||
autocmd FileType cpp setlocal omnifunc=omni#cpp#complete#Main
|
||||
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
|
||||
autocmd FileType ruby set omnifunc=rubycomplete#Complete
|
||||
autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP
|
||||
|
||||
if !exists('g:neocomplcache_omni_patterns') | let g:neocomplcache_omni_patterns={} | endif
|
||||
let g:neocomplcache_omni_patterns.c='[^.[:digit:] *\t]\%(\.\|->\)'
|
||||
let g:neocomplcache_omni_patterns.cpp='[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::'
|
||||
let g:neocomplcache_omni_patterns.c='[^.[:digit:] *\t]\%(\.\|->\)\%(\h\w*\)\?'
|
||||
let g:neocomplcache_omni_patterns.cpp='[^.[:digit:] *\t]\%(\.\|->\)\%(\h\w*\)\?\|\h\w*::\%(\h\w*\)\?'
|
||||
let g:neocomplcache_omni_patterns.xml='<[^>]*'
|
||||
let g:neocomplcache_omni_patterns.html='<[^>]*'
|
||||
let g:neocomplcache_omni_patterns.xhtml='<[^>]*'
|
||||
|
@ -47,7 +197,7 @@
|
|||
let g:neocomplcache_omni_patterns.javascript='[^. \t]\.\%(\h\w*\)\?'
|
||||
let g:neocomplcache_omni_patterns.python='[^. *\t]\.\h\w*\|\h\w*::'
|
||||
let g:neocomplcache_omni_patterns.ruby='[^. *\t]\.\w*\|\h\w*::'
|
||||
let g:neocomplcache_omni_patterns.php='[^. \t]->\h\w*\|\h\w*::'
|
||||
let g:neocomplcache_omni_patterns.php='[^. \t]->\%(\h\w*\)\?\|\h\w*::\%(\h\w*\)\?'
|
||||
let g:neocomplcache_omni_patterns.actionscript='[^. \t][.:]\h\w*'
|
||||
let g:neocomplcache_omni_patterns.python3='[^. *\t]\.\h\w*\|\h\w*::'
|
||||
let g:neocomplcache_omni_patterns.go='\h\w*\%.'
|
||||
|
@ -55,9 +205,11 @@
|
|||
let g:neocomplcache_omni_patterns.java='\%(\h\w*\|)\)\.'
|
||||
let g:neocomplcache_omni_patterns.objc='\h\w\+\|\h\w*\%(\.\|->\)\h\w*'
|
||||
let g:neocomplcache_omni_patterns.objj='[\[ \.]\w\+$\|:\w*$'
|
||||
let g:neocomplcache_omni_patterns.vimshell='\%(\\[^[:alnum:].-]\|[[:alnum:]@/.-_+,#$%~=*]\)\{2,}'
|
||||
"}}}
|
||||
|
||||
"ASPNET ABSHIRE SYNTAX PLUGIN: {{{
|
||||
au BufRead,BufNewFile *.aspx,*.asmx,*.ascx,*.master set syntax=aspnet
|
||||
"SYNTASTIC: CONFIGURE SYNTAX CHECKING {{{
|
||||
let g:syntastic_check_on_open=1
|
||||
let g:syntastic_always_populate_loc_list=1
|
||||
let g:syntastic_auto_loc_list=1
|
||||
let g:syntastic_loc_list_height=5
|
||||
"}}}
|
||||
|
|
|
@ -55,31 +55,35 @@
|
|||
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
|
||||
"}}}
|
||||
|
||||
|
||||
"SYNTAX: INDENTING, HIGHLIGHTING, FOLDING {{{
|
||||
"FILETYPES AND SYNTAX: SETTINGS FOR FILETYPES AND ASSOCIATED SYNTAX {{{
|
||||
filetype plugin indent on
|
||||
syntax on "turn syntax highlighting on
|
||||
|
||||
"set matching filenames to the given file types
|
||||
autocmd BufNewFile,BufRead *.aspx,*.asmx,*.ascx,*.master setf aspnet
|
||||
autocmd BufNewFile,BufRead *tmux.conf,pacman.conf,yaourtrc setf sh
|
||||
autocmd BufNewFile,BufRead cjdroute.conf,ircd.conf setf javascript
|
||||
|
||||
"enable spellcheck by default when using given filetypes and extensions
|
||||
autocmd FileType mail,gitcommit,mkd,text setl spell
|
||||
|
||||
"enable omnicompletion for any filetype without that has syntax highlighting
|
||||
if has("autocmd") && exists("+omnifunc")
|
||||
autocmd VimEnter,Filetype *
|
||||
\ if &omnifunc == "" |
|
||||
\ setlocal omnifunc=syntaxcomplete#Complete |
|
||||
\ endif
|
||||
endif
|
||||
|
||||
set formatoptions=roqnl12 "configure format options
|
||||
set foldmethod=syntax foldcolumn=1 foldlevel=3 "fold layers 3 or more deep
|
||||
|
||||
"disable folding by default in vimdiff
|
||||
if &diff
|
||||
au VimEnter * windo set nofoldenable
|
||||
autocmd VimEnter * windo set nofoldenable
|
||||
endif
|
||||
"}}}
|
||||
|
||||
"FILETYPES: SETTINGS SPECIFIC TO A FILETYPE {{{
|
||||
au FileType mail setl spell "enable spellcheck for e-mail (mutt)
|
||||
au FileType gitcommit setl spell "enable spellcheck in git commits
|
||||
au FileType mkd setl spell "enable spellcheck in markdown (ie: README.md)
|
||||
au BufNewFile,BufRead *.txt setl spell "enable spellcheck for text files (*.txt)
|
||||
au BufNewFile,BufRead *tmux.conf setf sh "set syntax for *tmux.conf to sh (bash)
|
||||
au BufNewFile,BufRead pacman.conf setf sh "set syntax for *tmux.conf to sh (bash)
|
||||
au BufNewFile,BufRead yaourtrc setf sh "set syntax for *tmux.conf to sh (bash)
|
||||
au BufNewFile,BufRead cjdroute.conf setf javascript "set syntax for *cjdroute.conf to javascript
|
||||
au BufNewFile,BufRead ircd.conf setf javascript "set syntax for *ircd.conf to javascript
|
||||
"}}}
|
||||
|
||||
"GVIM: GUI CONFIG OPTIONS {{{
|
||||
set guicursor+=a:blinkon0 "disable the blinking cursor
|
||||
|
||||
|
|
Loading…
Reference in a new issue