From fcaf13a267b7bacd26ad8b2e952a793645e42bba Mon Sep 17 00:00:00 2001 From: Akshay Date: Mon, 15 Feb 2021 14:22:32 +0530 Subject: init --- plugin/help.vim | 16 ++++++ plugin/ignores.vim | 11 ++++ plugin/maps.vim | 46 +++++++++++++++++ plugin/statusline.vim | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 212 insertions(+) create mode 100644 plugin/help.vim create mode 100644 plugin/ignores.vim create mode 100644 plugin/maps.vim create mode 100644 plugin/statusline.vim (limited to 'plugin') diff --git a/plugin/help.vim b/plugin/help.vim new file mode 100644 index 0000000..9e1c998 --- /dev/null +++ b/plugin/help.vim @@ -0,0 +1,16 @@ +" Only apply to .txt files... +augroup HelpInTabs + autocmd! + autocmd BufEnter *.txt call HelpInNewTab() +augroup END + +" Only apply to help files... +function! HelpInNewTab () + if &buftype == 'help' && g:help_in_tabs + "Convert the help window to a tab... + execute "normal \T" + endif +endfunction + +let g:help_in_tabs = 1 + diff --git a/plugin/ignores.vim b/plugin/ignores.vim new file mode 100644 index 0000000..3ab37f0 --- /dev/null +++ b/plugin/ignores.vim @@ -0,0 +1,11 @@ +set wildignore+=.git,.hg,.svn +set wildignore+=*.aux,*.out,*.toc +set wildignore+=*.o,*.obj,*.exe,*.dll,*.manifest,*.rbc,*.class +set wildignore+=*.ai,*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png,*.psd,*.webp +set wildignore+=*.avi,*.divx,*.mp4,*.webm,*.mov,*.m2ts,*.mkv,*.vob,*.mpg,*.mpeg +set wildignore+=*.mp3,*.oga,*.ogg,*.wav,*.flac +set wildignore+=*.eot,*.otf,*.ttf,*.woff +set wildignore+=*.doc,*.pdf,*.cbr,*.cbz +set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.kgb +set wildignore+=*.swp,.lock,.DS_Store,._* + diff --git a/plugin/maps.vim b/plugin/maps.vim new file mode 100644 index 0000000..188cb69 --- /dev/null +++ b/plugin/maps.vim @@ -0,0 +1,46 @@ +mapclear + +let mapleader=' ' + +" clipboard +map cc :w !xclip -sel c + +" normal +nnoremap o : only +" nnoremap l : Lines +nnoremap b : Buffers +nnoremap n : bnext +nnoremap p : bprev +nnoremap z : FZF +nnoremap l : Lines +nnoremap w : MtaJumpToOtherTag +nnoremap t : call GetTabber() +nnoremap : nohlsearch +nnoremap :nohlsearch:diffupdate:syntax sync fromstart +nnoremap H H:exec 'norm! '. &scrolloff . 'k' +nnoremap L L:exec 'norm! '. &scrolloff . 'j' +nnoremap gb '`[' . strpart(getregtype(), 0, 1) . '`]' + + +nnoremap :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' + \ . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" + \ . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">" + +cmap w!! %!sudo -S tee > /dev/null % + +" visual +vnoremap > >gv +vnoremap < +xnoremap - g + +" completions +inoremap compe#complete() +inoremap compe#confirm('') +inoremap compe#close('') diff --git a/plugin/statusline.vim b/plugin/statusline.vim new file mode 100644 index 0000000..5465d40 --- /dev/null +++ b/plugin/statusline.vim @@ -0,0 +1,139 @@ +scriptencoding utf-8 + +" statusline + +let g:currentmode={ + \ 'n' : 'NORMAL ', + \ 'no' : 'N·OPERATOR PENDING ', + \ 'v' : 'VISUAL ', + \ 'V' : 'V·LINE ', + \ '' : 'V·BLOCK ', + \ 's' : 'SELECT ', + \ 'S' : 'S·LINE ', + \ '' : 'S·BLOCK ', + \ 'i' : 'INSERT ', + \ 'R' : 'REPLACE ', + \ 'Rv' : 'V·REPLACE ', + \ 'c' : 'COMMAND ', + \ 'cv' : 'VIM EX ', + \ 'ce' : 'EX ', + \ 'r' : 'PROMPT ', + \ 'rm' : 'MORE ', + \ 'r?' : 'CONFIRM ', + \ '!' : 'SHELL ', + \ 't' : 'TERMINAL '} + +hi PrimaryBlock ctermfg=00 ctermbg=6 +hi SecondaryBlock ctermfg=07 ctermbg=10 +hi Blanks ctermfg=08 ctermbg=0 + +hi User1 ctermfg=01 ctermbg=0 +hi User2 ctermfg=02 ctermbg=0 +hi User3 ctermfg=03 ctermbg=0 +hi User4 ctermfg=12 ctermbg=0 +hi User5 ctermfg=05 ctermbg=0 +hi User6 ctermfg=06 ctermbg=0 +hi User7 ctermfg=07 ctermbg=0 +hi User8 ctermfg=08 ctermbg=0 +hi User9 ctermfg=00 ctermbg=0 + +highlight EndOfBuffer ctermfg=black ctermbg=black + +function! GitBranch() + return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") +endfunction + +function! StatuslineGit() + let l:branchname = GitBranch() + return strlen(l:branchname) > 0?l:branchname.' ':'' +endfunction + +function! ReadOnly() abort + if !&modifiable && &readonly + return ' RO' + elseif &modifiable && &readonly + return 'RO' + elseif !&modifiable && !&readonly + return '' + else + return '' + endif +endfunction + +function! Filepath() abort + let l:basename = expand('%:h') + let l:filename = expand('%:t') + let l:extension = expand('%:e') + let l:prefix = (l:basename ==# '' || l:basename ==# '.') ? + \ '' : substitute(l:basename . '/', '\C^' . $HOME, '~', '') + + if empty(l:prefix) && empty(l:filename) + return printf('%%4*%%f%%*%s %%m%%*', '%4*') + elseif empty(l:prefix) + return printf('%%4*%%f%%*%s %%m%%*', '%6*') + else + return printf('%%4*%s%%*%s%s%%*', l:prefix, &modified ? '%6*' : '%4*', l:filename) + endif +endfunction + +function! LinterStatus() abort + let sl = '' + let msgs = [] + if luaeval('not vim.tbl_isempty(vim.lsp.buf_get_clients(0))') + let errs = luaeval("vim.lsp.diagnostic.get_count(0, [[Error]])") + let warns = luaeval("vim.lsp.diagnostic.get_count(0, [[Warning]])") + if errs != 0 + call add(msgs, printf('%%5*%s×%%* ', errs)) + endif + if warns != 0 + call add(msgs, printf('%%3*%s!%%* ', warns)) + endif + return join(msgs, '') + else + return '' + endif +endfunction + +function! StatusLine(mode) abort + let l:line='' + + " help or man pages + if &filetype ==# 'help' || &filetype ==# 'man' + let l:line.=' %#StatusLineNC# ['. &filetype .'] %f ' + return l:line + endif + + " active + if a:mode ==# 'active' + let l:line.='%6*·%*' . ' ' + let l:line.='%7*%{StatuslineGit()}' + let l:line.='%<' + let l:line.=Filepath() + + let l:line.='%5*' + let l:line.=' %{ReadOnly()} %w%*' + let l:line.='%9* %=%*' + + let l:line.=' ' . '%7*%l,%c%*' . ' ' + let l:line.=LinterStatus() + let l:line.='%4*'. &filetype + + else + " inactive + let l:line.='%5*·%*' . ' ' + let l:line.='%#Blanks#' + let l:line.='%f %5*%m%*' + let l:line.='%#Blanks# %=%*' + endif + + let l:line.='%*' + + return l:line +endfunction + +set statusline=%!StatusLine('active') +augroup MyStatusLine + autocmd! + autocmd WinEnter * setl statusline=%!StatusLine('active') + autocmd WinLeave * setl statusline=%!StatusLine('inactive') +augroup END -- cgit v1.2.3