改鍵
我之前一直以為改鍵的操作做沒有必要,但是在嘗試了一個月以後我已經沒辦法重新使用別人的鍵盤了 ———— 太慢了。
改建的意義在於將 Ctrl 對映到 Caps Lock 上。原因在於小拇指很容易按到這個大寫鎖定而很難按到原來 ctrl 的位置。
改鍵對於 Emacs 使用者更為重要。
Tmux
我一直把 ubuntu 作為工作寫程式碼的操作系統,終端對於我來説有僅次於文字編輯器使用頻率。
Tmux 不需要有很牛逼的技巧,我每次只是分割視窗而已,沒有什麼高階操作。
C-b 加上 % 就可以切分視窗,想要切換的時候就 C-b 加上 → 就是轉到右邊的視窗,同理,左邊也是一樣。
安裝很簡單 sudo apt install tmux 即可。
Plugins
有插件外掛的 Vim 和沒有插件外掛的 Vim 是兩款編輯器。 vundle.vim
我推薦的做法是安裝 vundle.vim 作為 vim 的包管理器,安裝方法文件裏面有。我只是介紹這麼個東西而已。親手實踐才能印象深刻。
之後推薦一個 vimawesome.com 這裏有 vim 的插件外掛集合,可以看到大部分插件外掛的資訊。
然後給一個我自己的插件外掛列表:
Plugin ‘VundleVim/Vundle.vim’
Plugin ‘bling/vim-airline’
Plugin ‘kien/ctrlp.vim’
Plugin ‘scrooloose/nerdcommenter’
Plugin ‘scrooloose/nerdtree’
Plugin ‘Raimondi/delimitMate’
Plugin ‘lepture/vim-css’
Plugin ‘wavded/vim-stylus’
Plugin ‘fatih/vim-go’
Plugin ‘SirVer/ultisnips’
Plugin ‘gosukiwi/vim-atom-dark’
Plugin ‘pangloss/vim-javascript’
Plugin ‘mattn/emmet-vim’
主題顏色是 atom-dark 我曾試用過 material theme, 但是我覺得太醜了,完全沒有在 sublime 上的美感,所以還是換了。
ctrlp 是快速搜尋檔案用的,説實話真的超級有必要。它給我養了個壞習慣:再也受不了 webstorm 的搜尋功能了。
nerdcommenter 是用來快速註釋和反註釋的,很明顯沒有 sublime 智慧,但是一直沒有找到比較好的替代品。
nerdtree 是檔案樹列表。真神器。自從我讀了一遍 help 以後才發現它上天入地無所不能
airline 純粹是裝飾用的。對我來説沒什麼實質作用。但是我一天九個小時都對著這貨不好看一點兒怎麼受得了。
delimitMate 自動補全” 這些東西。
下面的 css, stylus, go, javascript 都是語言加強的
ultisnips 是快速程式碼片段,像是每個檔案都有的頭註釋,框架的東西都可以放在裏面。大量寫程式碼的時候是神器。
快捷鍵
vim 本身的快捷鍵快得有些不講道理。以至於難以記憶。
一開始看 vim 的快捷鍵會覺得是在看譚浩強的書。到處都是莫名其妙的簡寫。然而所有的鍵位都是有明確意義的。下次再看到某些簡寫的時候試著按照下面的列表理解一下:

d
delete(刪除)

y
yank(貼上)

c
change(改變)

v
view(檢視)

o
open(開啓)

r
replace(更換)

w
word(單詞)

u
undo(撤銷)

其他還有很多,總之在使用的時候多想想為什麼這個操作會對應這個鍵。

當然,有幾個鍵完全是不講道理,為了效率而做的,比如 hjkl 這四個。
還有神奇的. 操作,可以重複上一個操作。非常非常有用的技巧。不過我不準備説太多,我認為這些東西更多的在自己的實踐和領悟。
vim 有個神奇的 鍵,我將其對映在了; 上,因為離右手小拇指比較近,容易按,而且和正常的鍵並沒有很多功能上的衝突。
下面是個人對於插件外掛的鍵位設定:
我將 nerdtree 的 toggle 對映在了;t 上,沒有什麼原因,純粹是手感好。
;cc 是註釋, ;cu 是取消註釋。這個鍵位是跟 jeffway 學來的,一直覺得不是很好按,但是習慣了也還好。
其他的倒沒什麼特別了
常用操作
我雖沒有幾十年的 vim 使用經驗,然而還是有一些自己認為比較常用的操作的。
我平常不太喜歡用 buffer,更多的是用 tab 來做,因為 tab 更容易觀察得到。
所以下面的一些快捷鍵比較常用了:
gt: tab 切換
Ctrl-w-h, 當前視窗切換,我認為這個組合鍵的的意思是 w 代表 window, Ctrl 只是字首。後面的 hjkl 就是上下左右了。
深入插件外掛
對於插件外掛,我有些要説的。
插件外掛的配置在我看來還是挺複雜的。
比如 ctrlp 你需要把 node_modules 這些沒用的東西 ignore 掉,
對於 airline 你需要下載 powerline-fonts 來讓它顯示三角形。
在 nerdtree 中可以按 r 重新整理當前節點,按 m 有更多選項,在 m 中可以新建檔案刪除檔案什麼的操作。
在 ultisnips 中還要自己寫自己的 snippets
我覺得深入插件外掛才能更好的應用它們,才會更加理解這些插件外掛的強大。要知道寫這些插件外掛的各個都是大牛,他們可不能忍受自己做出來傻逼產品!