首頁 > 軟體

更好的使用 Vim

2020-06-16 17:37:56

改鍵

我之前一直以為改鍵的操作做沒有必要,但是在嘗試了一個月以後我已經沒辦法重新使用別人的鍵盤了 ———— 太慢了。

改建的意義在於將 Ctrl 對映到 Caps Lock 上。原因在於小拇指很容易按到這個大寫鎖定而很難按到原來 ctrl 的位置。

改鍵對於 Emacs 使用者更為重要。

Tmux

我一直把 Ubuntu 作為工作寫程式碼的作業系統,終端對於我來說有僅次於文字編輯器使用頻率。

Tmux 不需要有很牛逼的技巧,我每次只是分割視窗而已,沒有什麼高階操作。

C-b 加上 % 就可以切分視窗,想要切換的時候就 C-b 加上 就是轉到右邊的視窗,同理,左邊也是一樣。

安裝很簡單 sudo apt install tmux 即可。

Plugins

有外掛的 Vim 和沒有外掛的 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 有個神奇的<Leader> 鍵,我將其對映在了;上,因為離右手小拇指比較近,容易按,而且和正常的鍵並沒有很多功能上的衝突。

下面是個人對於外掛的鍵位設定:

我將 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

我覺得深入外掛才能更好的應用它們,才會更加理解這些外掛的強大。要知道寫這些外掛的各個都是大牛,他們可不能忍受自己做出來傻逼產品!

更多Vim相關教學見以下內容

Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

把Vim打造成優秀的C++ IDE  http://www.linuxidc.com/Linux/2016-06/132262.htm

Vim技巧分享:C語言設定 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設定Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-07/133391.htm


IT145.com E-mail:sddin#qq.com