diff options
author | Aaron LI <aly@aaronly.me> | 2018-11-15 23:43:19 +0800 |
---|---|---|
committer | Aaron LI <aly@aaronly.me> | 2018-11-15 23:43:19 +0800 |
commit | 624a7aaa7777ffe5298181c3521484c287ab6ca9 (patch) | |
tree | 9688ffe2e6ec9c50213358814546c2d611db130f /_vimrc | |
parent | dadbc1a2b1a9a218c218ddb816c88c5478ce9197 (diff) | |
download | dotfiles-624a7aaa7777ffe5298181c3521484c287ab6ca9.tar.bz2 |
Move _vimrc to _vim/vimrc
Diffstat (limited to '_vimrc')
-rw-r--r-- | _vimrc | 336 |
1 files changed, 0 insertions, 336 deletions
@@ -1,336 +0,0 @@ -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Credit: -" Amir Salihefendic — @amix3k -" https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => General -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Sets how many lines of history VIM has to remember -set history=500 - -" Enable filetype plugins -filetype plugin on -filetype indent on - -" Set to auto read when a file is changed from the outside -set autoread - -" With a map leader it's possible to do extra key combinations -" like <leader>w saves the current file -let mapleader = "," - -" Fast saving -nmap <leader>w :w!<cr> - -" :W sudo saves the file -" (useful for handling the permission-denied error) -command! W w !sudo tee % >/dev/null - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => VIM user interface -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set mouse=a -set ignorecase -set smartcase -set hlsearch -set incsearch - -" Set 7 lines to the cursor - when moving vertically using j/k -set scrolloff=7 - -" Turn on the Wild menu -set wildmenu - -" Ignore compiled files -set wildignore=*.o,*~,*.pyc -set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store - -" Height of the command bar -set cmdheight=1 - -" A buffer becomes hidden when it is abandoned -set hidden - -" Configure backspace so it acts as it should act -set backspace=eol,start,indent -set whichwrap+=<,>,h,l - -" Don't redraw while executing macros (good performance config) -set lazyredraw - -" For regular expressions turn magic on -set magic - -" Show matching brackets when text indicator is over them -set showmatch -" How many tenths of a second to blink when matching brackets -set matchtime=2 - -" No annoying sound on errors -set noerrorbells -set novisualbell -set t_vb= -set timeoutlen=500 - -" Properly disable sound on errors on MacVim -if has("gui_macvim") - autocmd GUIEnter * set vb t_vb= -endif - -" Add a bit extra margin to the left -set foldcolumn=1 - -" Highlight the current line -set cursorline - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Colors and Fonts -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -syntax enable - -set t_Co=256 -if $COLORTERM == 'truecolor' - set termguicolors -endif -if &term =~# '^screen' - " Set terminal sequences for true colors (:help xterm-true-color) - let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" - let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" -endif - -colorscheme flattened_light - -if has("gui_running") - set guioptions-=T " No toolbar - set guioptions-=e " No GUI tabs - set guioptions-=m " No menu bar - set guioptions-=l " No left scrollbar - set guioptions-=L " No left scrollbar - set guioptions-=r " No right scrollbar - set guioptions-=R " No right scrollbar - set guifont=IBM\ Plex\ Mono\ Medium\ 11 - set guitablabel=%M\ %t - set guicursor+=a:blinkoff0 " Disable cursor blinking -endif - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Files, backups and undo -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set encoding=utf8 -set fileformats=unix,dos,mac - -" Turn backup off -set nobackup -set nowritebackup -set noswapfile - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Text, tab and indent related -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set expandtab -set smarttab -set tabstop=8 -set shiftwidth=4 - -set autoindent -set smartindent -set wrap - -set linebreak -set textwidth=75 -set formatoptions+=m " Break at multi-byte characters (e.g., CJK) - - -"""""""""""""""""""""""""""""" -" => Visual mode related -"""""""""""""""""""""""""""""" -" Visual mode pressing * or # searches for the current selection -" Super useful! From an idea by Michael Naumann -vnoremap <silent> * :<C-u>call VisualSelection('', '')<CR>/<C-R>=@/<CR><CR> -vnoremap <silent> # :<C-u>call VisualSelection('', '')<CR>?<C-R>=@/<CR><CR> - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Moving around, tabs, windows and buffers -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -map <space> / -map <c-space> ? - -" Disable highlight when <leader><cr> is pressed -map <silent> <leader><cr> :noh<cr> - -" Smart way to move between windows -map <C-j> <C-W>j -map <C-k> <C-W>k -map <C-h> <C-W>h -map <C-l> <C-W>l - -" Close the current buffer -map <leader>bd :Bclose<cr>:tabclose<cr>gT - -" Close all the buffers -map <leader>ba :bufdo bd<cr> - -map <leader>l :bnext<cr> -map <leader>h :bprevious<cr> - -" Useful mappings for managing tabs -map <leader>tn :tabnew<cr> -map <leader>to :tabonly<cr> -map <leader>tc :tabclose<cr> -map <leader>tm :tabmove -map <leader>t<leader> :tabnext - -" Let 'tl' toggle between this and the last accessed tab -let g:lasttab = 1 -nmap <leader>tl :exe "tabn ".g:lasttab<CR> -autocmd TabLeave * let g:lasttab = tabpagenr() - -" Opens a new tab with the current buffer's path -" Super useful when editing files in the same directory -map <leader>te :tabedit <C-r>=expand("%:p:h")<cr>/ - -" Switch CWD to the directory of the open buffer -map <leader>cd :cd %:p:h<cr>:pwd<cr> - -" Specify the behavior when switching between buffers -set switchbuf=useopen,usetab,newtab -set showtabline=2 - -" Return to last edit position when opening files (You want this!) -autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif - - -"""""""""""""""""""""""""""""" -" => Status line -"""""""""""""""""""""""""""""" -" Always show the status line -set laststatus=2 - -" Returns true if paste mode is enabled -function! HasPaste() - if &paste - return '[PASTE] ' - endif - return '' -endfunction - -" Format the status line -set statusline=\ %{HasPaste()}%f%m%r%h\ %w\ %= -set statusline+=%{&fileencoding?&fileencoding:&encoding}\ %y\ %l,%c%V\ %P -set statusline+=\ " blank space - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Editing mappings -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Move a line of text using ALT+[jk] or Command+[jk] on mac -nmap <M-j> mz:m+<cr>`z -nmap <M-k> mz:m-2<cr>`z -vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z -vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z - -if has("mac") || has("macunix") - nmap <D-j> <M-j> - nmap <D-k> <M-k> - vmap <D-j> <M-j> - vmap <D-k> <M-k> -endif - -" Delete trailing white space on save, useful for some filetypes ;) -function! CleanExtraSpaces() - let save_cursor = getpos(".") - let old_query = getreg('/') - silent! %s/\s\+$//e - call setpos('.', save_cursor) - call setreg('/', old_query) -endfunction - -autocmd BufWritePre *.txt,*.js,*.py,*.wiki,*.sh,*.coffee :call CleanExtraSpaces() - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Spell checking -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -set spelllang=en_us,cjk - -" Pressing ,ss will toggle and untoggle spell checking -map <leader>ss :setlocal spell!<cr> - -" Shortcuts using <leader> -map <leader>sn ]s -map <leader>sp [s -map <leader>sa zg -map <leader>s? z= - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Misc -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Remove the Windows ^M - when the encodings gets messed up -noremap <leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm - -" Quickly open a buffer for scribble -map <leader>q :e ~/buffer<cr> - -" Quickly open a markdown buffer for scribble -map <leader>x :e ~/buffer.md<cr> - -" Toggle paste mode on and off -map <leader>pp :setlocal paste!<cr> - -" Disable F1 to open the help -map <F1> <Esc> -imap <F1> <Esc> - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Helper functions -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Don't close window, when deleting a buffer -command! Bclose call <SID>BufcloseCloseIt() -function! <SID>BufcloseCloseIt() - let l:currentBufNum = bufnr("%") - let l:alternateBufNum = bufnr("#") - - if buflisted(l:alternateBufNum) - buffer # - else - bnext - endif - - if bufnr("%") == l:currentBufNum - new - endif - - if buflisted(l:currentBufNum) - execute("bdelete! ".l:currentBufNum) - endif -endfunction - -function! CmdLine(str) - call feedkeys(":" . a:str) -endfunction - -function! VisualSelection(direction, extra_filter) range - let l:saved_reg = @" - execute "normal! vgvy" - - let l:pattern = escape(@", "\\/.*'$^~[]") - let l:pattern = substitute(l:pattern, "\n$", "", "") - - if a:direction == 'gv' - call CmdLine("Ack '" . l:pattern . "' " ) - elseif a:direction == 'replace' - call CmdLine("%s" . '/'. l:pattern . '/') - endif - - let @/ = l:pattern - let @" = l:saved_reg -endfunction |