Skip to content

Instantly share code, notes, and snippets.

@kickbase
Created November 23, 2021 14:06
Show Gist options
  • Save kickbase/77f6cd7a1654097eebbf7f53fb553518 to your computer and use it in GitHub Desktop.
Save kickbase/77f6cd7a1654097eebbf7f53fb553518 to your computer and use it in GitHub Desktop.
[ Vim ] Kaoriya Vim settings.
"-------Preferences--------"
set ttyfast
set t_Co=256
set hidden
set autoread
set history=2000
set noswapfile
set backspace=start,eol,indent
set ambiwidth=double
set shortmess+=I
set nrformats=
set nobackup
set smartindent
set tabstop=4
set autoindent
set expandtab
set shiftwidth=4
set showmatch
set matchtime=1
set formatoptions-=c
set smarttab
set spelllang=en,cjk
set noundofile
set isk+=-
set clipboard=unnamed,autoselect
set belloff=all
"-------Keymap-----"
set pastetoggle=<f5>
map <f6> :!notepad %<CR>
inoremap <C-c> <ESC>
noremap <C-c><C-c> :nohlsearch<Cr><Esc>
set whichwrap=b,s,h,l,<,>,[,],~
let mapleader = "\<Space>"
nnoremap Y y$
nnoremap + <C-a>
nnoremap - <C-x>
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
nnoremap j gj
nnoremap k gk
nnoremap gj j
nnoremap gk k
nnoremap <silent> <C-l> :<C-u>nohlsearch<CR><C-l>
cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%'
noremap ; :
noremap : ;
"-------Look&Feel-----"
colorscheme distinguished
"colorscheme badwolf
set ruler
set number
syntax on
filetype on
filetype plugin on
filetype indent on
set title
set showcmd
set cmdheight=2
set list
set listchars=tab:>-,trail:-,nbsp:%,extends:>,precedes:<,eol:<
set display=lastline
set pumheight=10
autocmd GUIEnter * set transparency=240
au GUIEnter * simalt ~x
"set guifont=Myrica_M:h20
set guifont=Ricty_Diminished:h14
"-------Syntax-----"
au BufRead,BufNewFile *.md set filetype=markdown
"-------StatusLine-----"
augroup WordCount
autocmd!
autocmd BufWinEnter,InsertLeave,CursorHold * call WordCount('char')
augroup END
let s:WordCountStr = ''
let s:WordCountDict = {'word': 2, 'char': 3, 'byte': 4}
function! WordCount(...)
if a:0 == 0
return s:WordCountStr
endif
let cidx = 3
silent! let cidx = s:WordCountDict[a:1]
let s:WordCountStr = ''
let s:saved_status = v:statusmsg
exec "silent normal! g\<c-g>"
if v:statusmsg !~ '^--'
let str = ''
silent! let str = split(v:statusmsg, ';')[cidx]
let cur = str2nr(matchstr(str, '\d\+'))
let end = str2nr(matchstr(str, '\d\+\s*$'))
if a:1 == 'char'
let cr = &ff == 'dos' ? 2 : 1
let cur -= cr * (line('.') - 1)
let end -= cr * line('$')
endif
let s:WordCountStr = printf('%d/%d', cur, end)
endif
let v:statusmsg = s:saved_status
return s:WordCountStr
endfunction
set showcmd
set laststatus=2
set statusline=[%n]
set statusline+=%{matchstr(hostname(),'\\w\\+')}@
set statusline+=%<%F
set statusline+=%m
set statusline+=%r
set statusline+=%h
set statusline+=%w
set statusline+=[%{&fileformat}]
set statusline+=[%{has('multi_byte')&&\&fileencoding!=''?&fileencoding:&encoding}]
set statusline+=%y
"-------Netrw-----"
"http://blog.tojiru.net/article/234400966.html
let g:netrw_liststyle = 3
let g:netrw_list_hide = 'CVS,\(^\|\s\s\)\zs\.\S\+'
let g:netrw_altv = 1
let g:netrw_alto = 1
"-------Plugins-----"
runtime macros/matchit.vim
"-------Search--------"
set incsearch
set ignorecase
set smartcase
set wrapscan
set hlsearch
nnoremap <Leader>/ /\v
nnoremap <Leader>? ?\v
set grepprg=ack\ --nogroup\ --column\ $*
set grepformat=%f:%l:%c:%m
"-------Command--------"
nnoremap & :&&<CR>
xnoremap & :&&<CR>
xnoremap * :<C-u>call <SID>VSetSearch()<CR>/<C-R>=@/<CR><CR>
xnoremap # :<C-u>call <SID>VSetSearch()<CR>?<C-R>=@/<CR><CR>
function! s:VSetSearch()
let temp = @s
norm! gv"sy
let @/ = '\V' . substitute(escape(@s, '/\'), '\n', '\\n', 'g')
let @s = temp
endfunction
command! -nargs=0 -bar Qargs execute 'args' QuickfixFilenames()
function! QuickfixFilenames()
let buffer_numbers = {}
for quickfix_item in getqflist()
let buffer_numbers[quickfix_item['bufnr']] = bufname(quickfix_item['bufnr'])
endfor
return join(map(values(buffer_numbers), 'fnameescape(v:val)'))
endfunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment