From d834d6da82ba20e32699380d335a65936bad16f9 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Mon, 8 Jul 2024 22:49:59 +0800 Subject: Update --- vim/init/basic.vim | 195 +++++++++++++++++------------------------------------ 1 file changed, 61 insertions(+), 134 deletions(-) (limited to 'vim/init/basic.vim') diff --git a/vim/init/basic.vim b/vim/init/basic.vim index 2867f69..b268c6b 100644 --- a/vim/init/basic.vim +++ b/vim/init/basic.vim @@ -1,36 +1,24 @@ "====================================================================== -" " init-basic.vim - Need vim tiny compatible " " Used for general usecases. No keymap and personal preference -" -" Use '*' to search for: -" VIM_BEHAVIOR -" VISUAL -" EDIT -" JUMP -" SEARCH -" BUFFERS -" TABSIZE -" ENCODING_PREFERENCE -" FOLDING -" BACKUP -" MISC "====================================================================== +" Vimscript file settings ---------------------- {{{ -"---------------------------------------------------------------------- -" VIM_BEHAVIOR -"---------------------------------------------------------------------- - +" Usage: type --- for foldmark +augroup filetype_vim + autocmd! + execute "autocmd FileType vim :inoreabbrev --- ----------------{".."{{" + autocmd FileType vim setlocal foldmethod=marker foldlevel=0 +augroup END +" }}} +" VIM_BEHAVIOR ----------------{{{ let mapleader = "," " Always use comma as leader key set nocompatible " Disable vi compatible, today is 20XX set path=.,** " Allow :find with completion set mouse= " Disable mouse selection set winaltkeys=no " Allow alt key for mapping -set cursorline -set whichwrap=b,s -" set autochdir " Automatically cd to current file " Turn persistent undo on " means that you can undo even when you close a buffer/VIM @@ -41,28 +29,44 @@ set conceallevel=1 " Apply plugin and indent by filetype filetype plugin indent on - -"---------------------------------------------------------------------- -" VISUAL -"---------------------------------------------------------------------- +" Set to auto read when a file is changed from the outside +" Unnamed buffer like CmdWindows should prevent this +set autoread +autocmd FocusGained,BufEnter .* checktime +" }}} +" VISUAL ----------------{{{ " colorscheme desert " I like desert! -" In most of the cases, it is overrides by lightline.vim -set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ \ Column:\ %c -set showmatch " Show pairing brackets - +" Editing Area set number relativenumber " Use relativenumber -set wrap " Disable wrap by default +set wrap " enable wrap by default set scrolloff=3 " Leave some buffer when scrolling down -set ruler " Show cursor position -set laststatus=2 " Always show the status line +set showmatch " Show pairing brackets +set display=lastline +set lazyredraw +set formatoptions+=m " 遇到Unicode值大於255的文本,不必等到空格再折行 +set formatoptions+=B " 合併兩行中文時,不在中間加空格 +set whichwrap=b,s + +" Cursor +set cursorline set guicursor=n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20 +set matchtime=2 + +" In most of the cases, it is overrides by lightline.vim +set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ \ Column:\ %c +set laststatus=2 " Always show the status line +set ruler " Show cursor position +set wildmenu wildoptions=pum,fuzzy +" Format of error message +set errorformat+=[%f:%l]\ ->\ %m,[%f:%l]:%m -"---------------------------------------------------------------------- -" EDIT -"---------------------------------------------------------------------- +" 顯示分隔符號 +set listchars=tab:\|\ ,trail:.,extends:>,precedes:< +" }}} +" EDIT ----------------{{{ set backspace=eol,start,indent " Set Backspace behaviors set autoindent " If current line has indent, automatically set indent for next line @@ -76,32 +80,21 @@ imap l " Change IM to US when exit to Normal mode autocmd InsertLeave * :silent !fcitx-remote -c &>/dev/null || true - -"---------------------------------------------------------------------- -" JUMP -"---------------------------------------------------------------------- +" }}} +" JUMP to anoterh file ----------------{{{ set isfname=@,48-57,/,.,-,_,+,,,#,$,%,~ " This affects filename recognition for gf (go to file) set suffixesadd=.md " Enable reference markdown file without extension - -"---------------------------------------------------------------------- -" SEARCH -"---------------------------------------------------------------------- -set ignorecase " Search case without case sensation +" }}} +" SEARCH ----------------{{{ +set ignorecase " Search case without case sensation set smartcase set hlsearch " Hilight all matched texts set incsearch " Show matched strings when typing - -"---------------------------------------------------------------------- -" BUFFERS -"---------------------------------------------------------------------- - -" Set to auto read when a file is changed from the outside -" Unnamed buffer like CmdWindows should prevent this -set autoread -autocmd FocusGained,BufEnter .* checktime - +" }}} +" BUFFERS ----------------{{{ +" Use to quit the last buffer ----------------{{{ let g:quitVimWhenPressingCtrlC = 1 function! ToggleQuit() let g:quitVimWhenPressingCtrlC = g:quitVimWhenPressingCtrlC ? 0 : 1 @@ -111,8 +104,6 @@ endfunction nnoremap gl :call ToggleQuit() -" Simply exit when closing the last buffer - function! Bye() if len(getbufinfo({'buflisted': 1})) == 1 && len(getwininfo()) == 1 if g:quitVimWhenPressingCtrlC @@ -128,16 +119,15 @@ endfunction " Ctrl-C rules!!! nnoremap :call Bye() +" }}} + " Don't unload a buffer when no longer shown in a window " This allows you open a new buffer and leaves current buffer modified set hidden - -" Put these in an autocmd group, so that you can revert them with: " ":augroup vimStartup | au! | augroup END" augroup vimStartup au! - " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid, when inside an event handler " (happens when dropping a file on gvim) and for a commit message @@ -148,38 +138,9 @@ augroup vimStartup \ | endif augroup END -" Set filetype for beancount -autocmd BufRead,BufNewFile *.bean call PrepareBean() -function PrepareBean() - set filetype=beancount - silent !setsid fava ~/bean/main.bean &>/dev/null - autocmd VimLeave * silent !killall fava -endfunction - -" Set filetype for index.html -autocmd BufWrite *.html,*.js,*.css call ReloadServer() -function ReloadServer() - silent !browser-sync reload &>/dev/null -endfunction - -" Hide the first line of a file if editing password file -" TODO a better way to determine a file is related to password-store, now use -" files under /dev/shm as filter -autocmd BufRead /dev/shm/*.txt call SetPasswordFile() -function SetPasswordFile() - setlocal foldminlines=0 - setlocal foldmethod=manual - function s:custom() - return "Password" - endfunction - setlocal foldtext=s:custom() - norm! ggzfl -endfunction +" }}} +" TABSIZE ----------------{{{ - -"---------------------------------------------------------------------- -" TABSIZE -"---------------------------------------------------------------------- set expandtab set shiftwidth=2 set autoindent @@ -187,10 +148,9 @@ set tabstop=4 set softtabstop=0 set smartindent +" }}} +" ENCODING_PREFERENCE ----------------{{{ -"---------------------------------------------------------------------- -" ENCODING_PREFERENCE -"---------------------------------------------------------------------- if has('multi_byte') set encoding=utf-8 set fileencoding=utf-8 @@ -198,18 +158,13 @@ if has('multi_byte') set fileencodings=utf-8,big5,ucs-bom,gbk,gb18030,euc-jp,latin1 endif - -"---------------------------------------------------------------------- -" FOLDING -"---------------------------------------------------------------------- +" }}} +" FOLDING ----------------{{{ set foldenable " Allow fold set foldmethod=indent " Fold contents by indent -set foldlevel=2 " Expand all by default - - -"---------------------------------------------------------------------- -" BACKUP -"---------------------------------------------------------------------- +set foldlevel=2 +" }}} +" BACKUP ----------------{{{ " Allow backup set backup @@ -222,42 +177,13 @@ set backupdir=~/.vim/tmp " backup when write file set writebackup - -"---------------------------------------------------------------------- -" MISC -"---------------------------------------------------------------------- - -" 顯示括號匹配的時間 -set matchtime=2 - -" 顯示最後一行 -set display=lastline - -" 允許下方顯示目錄 -set wildmenu wildoptions=pum,fuzzy - -" Improve performance -set lazyredraw - -" Format of error message -set errorformat+=[%f:%l]\ ->\ %m,[%f:%l]:%m - -" 顯示分隔符號 -set listchars=tab:\|\ ,trail:.,extends:>,precedes:< - -" 遇到Unicode值大於255的文本,不必等到空格再折行 -set formatoptions+=m - -" 合併兩行中文時,不在中間加空格 -set formatoptions+=B +" }}} +" MISC ----------------{{{ " Use Unix way to add newline set ffs=unix,dos,mac - -"---------------------------------------------------------------------- " Ignore these suffixes when find/complete -"---------------------------------------------------------------------- set suffixes=.bak,~,.o,.h,.info,.swp,.obj,.pyc,.pyo,.egg-info,.class set wildignore=*.o,*.obj,*~,*.exe,*.a,*.pdb,*.lib "stuff to ignore when tab completing @@ -276,3 +202,4 @@ set wildignore+=*.ppt,*.pptx,*.docx,*.xlt,*.xls,*.xlsx,*.odt,*.wps set wildignore+=*.msi,*.crx,*.deb,*.vfd,*.apk,*.ipa,*.bin,*.msu set wildignore+=*.gba,*.sfc,*.078,*.nds,*.smd,*.smc set wildignore+=*.linux2,*.win32,*.darwin,*.freebsd,*.linux,*.android +" }}} -- cgit v1.2.3-70-g09d2