17 Commits

5 changed files with 346 additions and 194 deletions

View File

@@ -1,12 +1,8 @@
setlocal ts=2 sw=2 expandtab omnifunc=necoghc#omnifunc
setlocal ts=2 sw=2 expandtab
"set background=light
"set guifont=Neep\ Medium\ Semi-Condensed\ 18
let g:haskell_classic_highlighting = 1
let g:ghcmod_hlint_options = ['--ignore=Eta reduce $']
syntax on
filetype plugin indent on
@@ -14,50 +10,14 @@ filetype plugin indent on
call CmdAlias('hasktags', '!/home/jule/.cabal/bin/hasktags -c .<CR>')
let g:necoghc_enable_detailed_browse = 1
" ALE
let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools'], 'c':['clang']}
" let g:ale_fixers = {
" \ 'go': ['gofmt', 'goimports'],
" \}
let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'"
" neco-ghc
let g:haskellmode_completion_ghc = 0
let g:necoghc_enable_detailed_browse = 1
autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc
let g:ycm_semantic_triggers = {'haskell' : ['.']}
function! HaskellDocCurrentWord()
let word = expand("<cword>")
exe "IDoc " . word
endfunction
" clear search
nmap <F2> :noh<CR>:GhcModTypeClear<CR>
imap <F2> <C-O>:noh<CR>:GhcModTypeClear<CR>
" unmap <F3>
" unmap <F4>
nmap <F6> :GhcModType<CR>
nmap <F8> :call HaskellDocCurrentWord()<CR><CR>
nmap <silent> <F3> :silent update <bar> HsimportModule<CR>
nmap <silent> <F4> :silent update <bar> HsimportSymbol<CR>
" haskell-vim
let g:haskell_classic_highlighting = 1
let g:haskell_indent_disable = 1
" let g:haskell_enable_quantification = 1
" let g:haskell_enable_recursivedo = 1
" let g:haskell_enable_arrowsyntax = 1
" let g:haskell_enable_pattern_synonyms = 1
" let g:haskell_enable_typeroles = 1
" let g:haskell_indent_if = 3
" let g:haskell_indent_case = 5
" let g:haskell_indent_let = 4
@@ -66,6 +26,19 @@ nmap <silent> <F4> :silent update <bar> HsimportSymbol<CR>
" let g:haskell_indent_in = 1
" haskellmode-vim
function! HaskellDocCurrentWord()
let word = expand("<cword>")
exe "IDoc " . word
endfunction
" done by LSP now
nmap <F7> :call HaskellDocCurrentWord()<CR><CR>
nmap <silent> <F3> :silent update <bar> HsimportModule<CR>
nmap <silent> <F4> :silent update <bar> HsimportSymbol<CR>
" liquid-types
let g:vim_annotations_offset = '/.liquid/'
@@ -83,16 +56,84 @@ let g:vim_annotations_offset = '/.liquid/'
" endfunction
" let g:deoplete#enable_at_startup = 1
" set hidden
" LSP
let g:LanguageClient_autoStart = 1
let g:LanguageClient_serverCommands = {
\ 'haskell': ['hie', '--lsp', '-d', '-l', $HOME.'/lang-server.log'],
\ }
" we use ALE instead
let g:LanguageClient_diagnosticsEnable = 0
" let g:LanguageClient_serverCommands = {
" \ 'haskell': ['hie', '--lsp', '-d', '-l', '/home/hasufell/lang-server.log'],
" \ }
nnoremap <leader>lc :call LanguageClient_contextMenu()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <C-F6> :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> <F8> :call LanguageClient#textDocument_rename()<CR>
" nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
" nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
" nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
" deoplete
call deoplete#custom#option('sources',{
\ '_': ['buffer'],
\ 'haskell': ['neosnippet', 'buffer', 'file', 'LanguageClient']
\ })
" inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
call deoplete#enable()
" autocmd VimEnter * LanguageClientStart
let g:ghcmod_hlint_options = ['--ignore=Eta reduce $']
" ALE
let g:ale_enabled = 1
let g:ale_linters = {'haskell':['ghc-mod', 'hdevtools'], 'c':['clang']}
" let g:ale_fixers = {
" \ 'go': ['gofmt', 'goimports'],
" \}
let g:ale_haskell_hdevtools_options = "-g '-Wall' -g '-Wno-orphans'"
" completion
"
" neco-ghc
" let g:necoghc_enable_detailed_browse = 1
" let g:haskellmode_completion_ghc = 0
" let g:necoghc_enable_detailed_browse = 1
" autocmd FileType haskell setlocal omnifunc=necoghc#omnifunc
" let g:ycm_semantic_triggers = {'haskell' : ['.']}
" clear search
nmap <F2> :noh<CR>:GhcModTypeClear<CR>
imap <F2> <C-O>:noh<CR>:GhcModTypeClear<CR>
" unmap <F3>
" unmap <F4>
nmap <F6> :GhcModType<CR>
" for intero
" if has("nvim")
" let g:ale_enabled = 0
" " let g:intero_backend = {
" " \ 'command': 'cabal new-repl',
" " \ 'options': '',
" " \ 'cwd': expand('%:p:h'),
" " \}
" " Intero starts automatically. Set this if you'd like to prevent that.
" let g:intero_start_immediately = 1
" " Enable type information on hover (when holding cursor at point for ~1 second).
" let g:intero_type_on_hover = 1
" " Change the intero window size; default is 10.
" let g:intero_window_size = 15
" " Sets the intero window to split vertically; default is horizontal
" let g:intero_vertical_split = 1
" " OPTIONAL: Make the update time shorter, so the type info will trigger faster.
" set updatetime=1000
" map <silent> <leader>t <Plug>InteroGenericType
" endif

View File

@@ -1,5 +1,3 @@
let g:rustfmt_autosave = 0
let g:tagbar_ctags_bin = '/usr/bin/universal-ctags'
let g:rust_doc#define_map_K = 0
@@ -15,13 +13,13 @@ function! s:search_under_cursor(query) range
endfunction
" keys
nnoremap <buffer><silent><F6> :<C-u>call <SID>search_under_cursor(expand('<cword>'))<CR>
vnoremap <buffer><silent><F6> "gy:call <SID>search_under_cursor(getreg('g'))<CR>
nnoremap <buffer><silent><F7> :<C-u>call <SID>search_under_cursor(expand('<cword>'))<CR>
vnoremap <buffer><silent><F7> "gy:call <SID>search_under_cursor(getreg('g'))<CR>
nnoremap <F3> :call LanguageClient_contextMenu()<CR>
nnoremap <silent> <F4> :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <F7> :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> <F6> :call LanguageClient#textDocument_rename()<CR>
nnoremap <silent> <F6> :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> <F8> :call LanguageClient#textDocument_rename()<CR>
let g:LanguageClient_autoStart = 1
@@ -29,7 +27,18 @@ let g:LanguageClient_autoStart = 1
let g:LanguageClient_serverCommands = {
\ 'rust': ['rustup', 'run', 'nightly', 'rls'] }
let g:LanguageClient_diagnosticsEnable = 0
let g:ale_linters = {'rust': ['rls']}
let g:ale_fixers = { 'rust': ['rustfmt'] }
let g:ale_fix_on_save = 0
let g:autofmt_autosave = 0
" deoplete
call deoplete#custom#option('sources',{
\ '_': ['buffer'],
\ 'rust': ['ultisnips', 'buffer', 'file', 'LanguageClient']
\ })
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
call deoplete#enable()

View File

@@ -706,6 +706,11 @@ let s:FUF_BUF_NAME = '[fuf]'
"
function s:activateFufBuffer()
" Save the last window number so we can switch back to it later (otherwise,
" at least with more recent versions of Vim, we end up with the top left
" window focused)
let s:fuf_buffer_last_winnr = winnr()
" lcd . : To avoid the strange behavior that unnamed buffer changes its cwd
" if 'autochdir' was set on.
lcd .
@@ -733,6 +738,7 @@ function s:deactivateFufBuffer()
AutoComplPopUnlock
endif
call l9#tempbuffer#close(s:FUF_BUF_NAME)
exec s:fuf_buffer_last_winnr . "wincmd w"
endfunction
" }}}1

View File

@@ -0,0 +1,36 @@
From fd41e8d68b6774324b58c02692b896a6a36a0397 Mon Sep 17 00:00:00 2001
From: David Wolever <david@wolever.net>
Date: Thu, 1 Jun 2017 10:11:43 -0400
Subject: [PATCH] Fix focus top left window bug
With newer versions of Vim, the top left window will be focused after
opening the fuf menu. This patch restores the window focus after the
menu is closed.
---
autoload/fuf.vim | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/autoload/fuf.vim b/autoload/fuf.vim
index fe9e6eb..78be490 100644
--- a/autoload/fuf.vim
+++ b/autoload/fuf.vim
@@ -706,6 +706,11 @@ let s:FUF_BUF_NAME = '[fuf]'
"
function s:activateFufBuffer()
+ " Save the last window number so we can switch back to it later (otherwise,
+ " at least with more recent versions of Vim, we end up with the top left
+ " window focused)
+ let s:fuf_buffer_last_winnr = winnr()
+
" lcd . : To avoid the strange behavior that unnamed buffer changes its cwd
" if 'autochdir' was set on.
lcd .
@@ -733,6 +738,7 @@ function s:deactivateFufBuffer()
AutoComplPopUnlock
endif
call l9#tempbuffer#close(s:FUF_BUF_NAME)
+ exec s:fuf_buffer_last_winnr . "wincmd w"
endfunction
" }}}1

332
vimrc
View File

@@ -5,10 +5,6 @@
filetype plugin on
filetype indent on
" Section pathogen
" let g:pathogen_disabled = []
" call add(g:pathogen_disabled, 'syntastic')
" call pathogen#infect()
" vim-plug settings (Plugin declaration)
@@ -25,16 +21,10 @@ Plug 'vim-scripts/genindent.vim'
Plug 'sjl/gundo.vim'
Plug 'idris-hackers/idris-vim'
Plug 'wimstefan/Lightning'
Plug 'vim-scripts/LustyJuggler'
Plug 'yegappan/mru'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'NLKNguyen/papercolor-theme'
Plug 'powerline/powerline', {
\ 'branch': 'develop',
\ 'do': 'python setup.py install --user',
\ 'rtp': 'powerline/bindings/vim',
\ }
Plug 'vim-scripts/promela.vim'
Plug 'AndrewRadev/simple_bookmarks.vim'
Plug 'Keithbsmiley/swift.vim'
@@ -51,11 +41,35 @@ Plug 'nathanaelkane/vim-indent-guides'
Plug 'xolox/vim-misc'
Plug 'Shougo/vimproc.vim', {'do' : 'make'}
Plug 'tpope/vim-rhubarb'
Plug 'sjbach/lusty'
if has("nvim")
Plug 'iCyMind/NeoSolarized'
endif
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" local_vimrc
Plug 'LucHermitte/lh-vim-lib'
Plug 'LucHermitte/local_vimrc'
" completion
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang',
\ 'for': ['c', 'python', 'sh', 'go', 'clojure'],
\ }
" deoplete for haskell
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins',
\ }
else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
endif
" snippets
Plug 'Shougo/neosnippet.vim'
Plug 'honza/vim-snippets'
" LSP
" setting this per-language breaks "let g:LanguageClient_autoStart = 1",
Plug 'autozimu/LanguageClient-neovim', {
@@ -63,25 +77,20 @@ Plug 'autozimu/LanguageClient-neovim', {
\ 'do': 'bash install.sh',
\ }
" (Optional) Multi-entry selection UI.
" Plug 'junegunn/fzf', { 'for': 'haskell' }
" autocomplet
" Plug 'Shougo/deoplete.nvim', { 'for': 'haskell' }
" Plug 'roxma/nvim-yarp', { 'for': 'haskell' }
" Plug 'roxma/vim-hug-neovim-rpc', { 'for': 'haskell' }
Plug 'junegunn/fzf', { 'for': 'haskell' }
" linting/compilation
Plug 'w0rp/ale'
" completion
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang',
\ 'for': ['haskell', 'c', 'python', 'sh', 'go', 'clojure', 'rust'],
\ }
" haskell
" if has("nvim")
" Plug 'parsonsmatt/intero-neovim'
" endif
Plug 'eagletmt/ghcmod-vim', { 'for': 'haskell' }
Plug 'eagletmt/neco-ghc', { 'for': 'haskell' }
" completion based on ghc-mod, not LSP
" Plug 'eagletmt/neco-ghc', { 'for': 'haskell' }
Plug 'lukerandall/haskellmode-vim', { 'for': 'haskell' }
Plug 'raichoo/haskell-vim', { 'for': 'haskell' }
Plug 'neovimhaskell/haskell-vim', { 'for': 'haskell' }
Plug 'ucsd-progsys/liquid-types.vim', { 'for': 'haskell' }
Plug 'bitc/lushtags', {
\ 'do': 'bash -c \"cabal clean && cabal sandbox delete && cabal sandbox init && cabal install && cp .cabal-sandbox/bin/lushtags ~/.cabal/bin/lushtags\"',
@@ -127,29 +136,133 @@ Plug 'derekwyatt/vim-scala', { 'for': 'scala' }
" unmanaged
Plug '~/.vim/unmanaged-vim-plug/bufonly'
Plug '~/.vim/unmanaged-vim-plug/colorschemedegrade'
Plug '~/.vim/unmanaged-vim-plug/fontzoom'
Plug '~/.vim/unmanaged-vim-plug/fuzzyfinder'
Plug '~/.vim/unmanaged-vim-plug/L9'
Plug '~/.vim/unmanaged-vim-plug/log'
Plug '~/.vim/unmanaged-vim-plug/ScrollColor'
Plug '~/.vim/unmanaged-vim-plug/txtfmt'
if !has("nvim")
Plug '~/.vim/unmanaged-vim-plug/fontzoom'
endif
" Initialize plugin system
call plug#end()
" ===== further plugin initialization =====
" ===== further plugin initialization and default config =====
so ~/.vim/plugged/cmdalias.vim/plugin/cmdalias.vim
"powerline
python from powerline.vim import setup as powerline_setup
python powerline_setup()
python del powerline_setup
set laststatus=2
" lj
let g:LustyJugglerSuppressRubyWarning = 1
if !has("nvim")
"powerline
python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup
set laststatus=2
" lj
let g:LustyJugglerSuppressRubyWarning = 1
endif
" lustyexplorer
set hidden
" neosnippet
" Plugin key-mappings.
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
xmap <C-k> <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
imap <expr><tab> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<c-n>" : "\<tab>"
smap <expr><tab> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<tab>"
" For conceal markers.
if has('conceal')
set conceallevel=2 concealcursor=niv
endif
" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1
" vim airline
" let g:airline#extensions#tabline#enabled = 1
" LSP
let g:LanguageClient_autoStart = 0
" deoplete
let g:deoplete#enable_at_startup = 0
" ==== delimitMate ====
let g:delimitMate_matchpairs = "(:),[:],{:}"
let g:delimitMate_expand_cr = 1
let g:delimitMate_expand_space = 1
let g:delimitMate_autoclose = 1
" Solarized stuff
" let g:solarized_termtrans=0
" let g:solarized_degrade=0
" let g:solarized_bold=1
" let g:solarized_underline=1
" let g:solarized_italic=1
" let g:solarized_termcolors=16
" let g:solarized_contrast="normal"
let g:solarized_visibility="high"
" let g:solarized_diffmode="normal"
" let g:solarized_hitrail=0
let g:solarized_menu=1
" youcompleteme
let g:ycm_filetype_blacklist = {
\ 'notes' : 1,
\ 'markdown' : 1,
\ 'text' : 1,
\ 'java' : 1,
\}
let g:ycm_confirm_extra_conf = 0
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_seed_identifiers_with_syntax = 0
" let g:ycm_always_populate_location_list = 1
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_key_invoke_completion = '<C-Space>'
let g:ycm_key_list_select_completion = ['<TAB>']
let g:ycm_key_list_previous_completion = ['<S-TAB>']
" nnoremap <F4> :YcmCompleter GoToDefinition<CR>
let g:ycm_server_log_level = 'error'
let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']}
let g:ycm_goto_buffer_command = 'horizontal-split'
" commenting
let NERDSpaceDelims=1
let NERDCreateDefaultMappings=0
" haskellmode, needs to load early
let g:haddock_browser='/usr/bin/firefox'
let g:haddock_browser_callformat='%s file://%s >/dev/null 2>&1 &'
" ==== conque ====
" command aliases
call CmdAlias('t','tabnew')
" call CmdAlias('cmd','ConqueTermSplit')
" call CmdAlias('bash','ConqueTermSplit bash<CR>')
call CmdAlias('openall','tab sball')
call CmdAlias('stripw','call StripTrailingWhitespaces()<CR>')
call CmdAlias('hotkeys', 'tabnew ~/.vim/hotkeys')
call CmdAlias('TC', 'call ToggleComment()<CR>')
call CmdAlias('TF', 'call ToggleFoldText()<CR>')
call CmdAlias('ctags', '!/usr/bin/ctags -R --langmap=c:.c.h --c++-kinds=+p --c-kinds=+p+x --fields=+i+a+S+t+l+m+n --extra=+q .<CR>')
" global settings
@@ -172,30 +285,63 @@ set modelines=1
let g:nickID = "hasufell"
" don't yank to buffer on deletion
" vnoremap d "_d
" nnoremap d "_d
vnoremap x "_x
nnoremap x "_x
" haskellmode, needs to load early
let g:haddock_browser='/usr/bin/firefox'
let g:haddock_browser_callformat='%s file://%s >/dev/null 2>&1 &'
" Syntax
syntax enable
" pane navigation
" Use ctrl-[hjkl] to select the active split!
let g:C_Ctrl_j = 'off'
let g:BASH_Ctrl_j = 'off'
try
lang en_US
catch
endtry
" ==========colors===========
"set t_Co=256
"let g:solarized_termcolors=256
if has('gui_running')
set background=dark
colorscheme solarized
else
set background=dark
colorscheme solarized
endif
if has("nvim")
if exists('g:GtkGuiLoaded')
let g:neosolarized_contrast = "normal"
let g:neosolarized_visibility = "normal"
let g:neosolarized_vertSplitBgTrans = 0
let g:neosolarized_bold = 1
let g:neosolarized_underline = 1
let g:neosolarized_italic = 1
set background=dark
colorscheme NeoSolarized
else
let g:neosolarized_contrast = "normal"
let g:neosolarized_visibility = "normal"
let g:neosolarized_vertSplitBgTrans = 0
let g:neosolarized_bold = 1
let g:neosolarized_underline = 1
let g:neosolarized_italic = 1
set background=dark
colorscheme NeoSolarized
endif
endif
" ===========================
" ==== conque ====
" command aliases
call CmdAlias('t','tabnew')
" call CmdAlias('cmd','ConqueTermSplit')
" call CmdAlias('bash','ConqueTermSplit bash<CR>')
call CmdAlias('openall','tab sball')
call CmdAlias('stripw','call StripTrailingWhitespaces()<CR>')
call CmdAlias('hotkeys', 'tabnew ~/.vim/hotkeys')
call CmdAlias('TC', 'call ToggleComment()<CR>')
call CmdAlias('TF', 'call ToggleFoldText()<CR>')
call CmdAlias('ctags', '!/usr/bin/ctags -R --langmap=c:.c.h --c++-kinds=+p --c-kinds=+p+x --fields=+i+a+S+t+l+m+n --extra=+q .<CR>')
" cabbrev git Git
" Disable annoying auto line break
fu! DisableBr()
@@ -235,61 +381,6 @@ endfunction
" =======================
" don't yank to buffer on deletion
" vnoremap d "_d
" nnoremap d "_d
vnoremap x "_x
nnoremap x "_x
" Syntax
syntax enable
" ==== delimitMate ====
let g:delimitMate_matchpairs = "(:),[:],{:}"
let g:delimitMate_expand_cr = 1
let g:delimitMate_expand_space = 1
let g:delimitMate_autoclose = 1
" pane navigation
" Use ctrl-[hjkl] to select the active split!
let g:C_Ctrl_j = 'off'
let g:BASH_Ctrl_j = 'off'
" ==========colors===========
"set t_Co=256
"let g:solarized_termcolors=256
if has('gui_running')
set background=dark
colorscheme solarized
else
set background=dark
colorscheme solarized
" colorscheme dante
endif
" ===========================
" Solarized stuff
" let g:solarized_termtrans=0
" let g:solarized_degrade=0
" let g:solarized_bold=1
" let g:solarized_underline=1
" let g:solarized_italic=1
" let g:solarized_termcolors=16
" let g:solarized_contrast="normal"
let g:solarized_visibility="high"
" let g:solarized_diffmode="normal"
" let g:solarized_hitrail=0
let g:solarized_menu=1
try
lang en_US
catch
endtry
" ====== traling whitespace =====
fun! ShowTrailingWhitespace(pattern)
@@ -332,37 +423,6 @@ endfun
" ===========================
" LSP
let g:LanguageClient_autoStart = 0
" youcompleteme
let g:ycm_filetype_blacklist = {
\ 'notes' : 1,
\ 'markdown' : 1,
\ 'text' : 1,
\ 'java' : 1,
\}
let g:ycm_confirm_extra_conf = 0
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_seed_identifiers_with_syntax = 0
" let g:ycm_always_populate_location_list = 1
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_key_invoke_completion = '<C-Space>'
let g:ycm_key_list_select_completion = ['<TAB>']
let g:ycm_key_list_previous_completion = ['<S-TAB>']
" nnoremap <F4> :YcmCompleter GoToDefinition<CR>
let g:ycm_server_log_level = 'error'
let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']}
let g:ycm_goto_buffer_command = 'horizontal-split'
" commenting
let NERDSpaceDelims=1
let NERDCreateDefaultMappings=0
" comment hiding
func! IsComment( lnum )
return synIDattr(synID(a:lnum, match(getline(a:lnum),'\S')+1, 1),"name") =~? 'comment'