最開始的想法是最簡配置實現最高效的使用。 前幾年基本只用了2個插件NERDTree
,BufferExplorer
。最近以爲是時候給它「升級」一下了,但儘可能精簡,使用頻率不高的功能仍是沒有必要經過插件搞。javascript
主要增長:java
幾個有用的配置git
set list listchars=tab:→\ ,trail:·
顯示空格和tab。set hlsearch incsearch smartcase ignorecase
搜索加強,忽略大小寫匹配,從同事在服務器上的配置學到的。cmap w!! w !sudo tee % > /dev/null
總是忘記sudo vim
又記不住tee怎麼用,保存沒有寫權限的文件,乾脆寫到vim配置得了。github
ctrlp搜索太慢,這樣忽略掉不須要的目錄和權限便可。json
let g:ctrlp_custom_ignore = { \ 'dir': 'vendor/bundle/*\|vendor/cache/*\|public\|spec', \ 'file': '\v\.(exe|so|dll|swp|log|jpg|png|json)$', \ }
autocmd FileType go,c,java,sh set ts=4 sw=4 sts=4 et
c,java 等代碼用4個空格縮進。autocmd BufNewFile,BufRead *.json set filetype=javascript
打開json時,用javascript的語法進行高亮顯示。~/.vim/bundle/vim-airline/autoload/airline/extensions.vim:23
改成'nerdtree': [ '%{exists("b:NERDTreeRoot")?b:NERDTreeRoot.path.str():""}', '' ],
讓NERDTree的status line繼續顯示當前工做目錄,尤爲是有時須要打開多個不一樣項目的vim時,這個提示頗有用。服務器上保持會話、恢復會話很是好用的工具,其實不少人也用來作終端的窗口管理,並且比起tab來講操做更舒服一些。配置也能夠更自由vim
setw -g mode-keys vi
tmux中翻頁複製時,用vim的快捷鍵。
bind s split-window -h -c "#{pane_current_path}" bind v split-window -v -c "#{pane_current_path}" bind-key c new-window -c "#{pane_current_path}"
set -g base-index 1
若是以爲tmux狀態欄的名字從0編號不習慣的話能夠設置從1開始。set -g history-limit 5000
跟終端的歷史行數一個意思,設置大一些方便回查。bind-key a send-prefix
默認狀況終端都是emacs快捷鍵,好比ctrl r
找歷史操做命令、ctrl p
上一條命令、ctrl n
下一條命令、ctrl e
光標到行尾、ctrl a
到行首,可是若是tmux的prefix是C-a
的話,這條配置能夠經過ctrl+a a
移動光標到行首。set -g status-justify centre
狀態欄中間顯示window的名字。