[完全用 GNU/Linux 工作] 11. Hacking Vim
Vim 是功能完整且強大的文字編輯器 (Text Editor,以下簡稱 Editor),相信接觸過 GNU/Linux 的伙伴都曾接觸過。相信不少人對於它的印象就如同 COSCUP 2011 的經典名句「第一次用 vi 時進的去出不來」一樣,不過凍仁相信,只要事先做過些功課,便可習得第一成的功力,待大成後,其帶來的便利性是其他的 Editor 難以取代的!
我們除了可以在終端機輸入 vimtutor 取得 Vim 使用手冊,也可於網際網路上取得不少資源。
從土法煉鋼、快速移動、加強技巧、使用套件 (plugin) 到打造屬於自己的 Vim 前後得花了不少的時間及心力,但我們可以在各個平台 (Android, GNU/Linux, iOS, Mac OSX, Windows)、軟體 (Bash, Chrome, Firefox, MySQL, Python, vifm, Visual Studio, w3m) 以及網路服務 (Facebook, Gmail) 中發現它的影子,是個習得一招半式便可打遍天下無敵手的 Editor,對凍仁而言它是個很棒的投資!
部份的發行版本只會預載 Vi 而沒有 Vim,這時請手動安裝它。
如想取得凍仁完整的 vim 環境設定 (vimrc),請參考 凍仁的 GitHub。
下載凍仁的環境設定。
切換目錄。
備份原設定。
安裝。
開啟 Vim。
以下設定可寫入 $HOME/.vimrc,這樣下次啟動 Vim 時設定才會存在。
全文取代。
取代第 5 ~ 10 行。
在 Vim 底下時,請使用 :diffsplit。
在 bash 底下時,請使用 vimdiff。
Vim 是個有門檻的文字編輯器,但凍仁相信只要用對方法,一步一步前進就可以早日駕馭它。建議初學者可以先套前人的 vimrc,並試著修改它,不懂的部份只要 Google 一下相信可以找到不少的解答。
Happy hacking !
我們除了可以在終端機輸入 vimtutor 取得 Vim 使用手冊,也可於網際網路上取得不少資源。
從土法煉鋼、快速移動、加強技巧、使用套件 (plugin) 到打造屬於自己的 Vim 前後得花了不少的時間及心力,但我們可以在各個平台 (Android, GNU/Linux, iOS, Mac OSX, Windows)、軟體 (Bash, Chrome, Firefox, MySQL, Python, vifm, Visual Studio, w3m) 以及網路服務 (Facebook, Gmail) 中發現它的影子,是個習得一招半式便可打遍天下無敵手的 Editor,對凍仁而言它是個很棒的投資!
部份的發行版本只會預載 Vi 而沒有 Vim,這時請手動安裝它。
[ jonny@wheezy ~ ]
# Debian, Ubuntu on Gnome, Unity
$ sudo aptitude install vim-gnome Enter
# Debian, Ubuntu on KDE, Evilwm
$ sudo aptitude install vim-gtk Enter
# CentOS, Fedora
$ sudo yum install vim-X11 Enter
1. 凍仁 vim
如想取得凍仁完整的 vim 環境設定 (vimrc),請參考 凍仁的 GitHub。
下載凍仁的環境設定。
[ jonny@wheezy ~ ]
$ git clone https://github.com/chusiang/vimrc.git Enter
切換目錄。
[ jonny@wheezy ~ ]
$ cd vimrc/ Enter
備份原設定。
[ jonny@wheezy ~ ]
$ make backup Enter
安裝。
[ jonny@wheezy ~ ]
$ make install Enter
開啟 Vim。
[ jonny@wheezy ~ ]
$ vim Enter
......
:NeobundleInstall Enter # 安裝各式的 vim 套件。
以下設定可寫入 $HOME/.vimrc,這樣下次啟動 Vim 時設定才會存在。
1.1. 更換 fu 怖景主題
colorscheme fu
1.2. 使用 F5, F6 開啟當前編輯的網頁
" - local.drx.tw (PHP)
nnoremap <F5> :silent update<Bar>silent !firefox %:p:s?\(.\{-}/\)\{4}?http://local.drx.tw/?<CR>
" - current file (Ex: html, txt)
nnoremap <F6> :silent update<Bar>silent !firefox %:p &<CR>
2. 常用指令
2.1. 內文取代
- s: 取代。
- g: 對該行所有的字元進行處理。
- c: 檢查。
全文取代。
:%s/old_world/new_world/gc Enter
取代第 5 ~ 10 行。
:5,10s/old_world/new_world/gc Enter
2.2. 啟用貼上模式
若有設定自動縮排 (set hls),在貼上程式碼時會有走山的情形,這時可以先切換成貼上模式再貼上。:set paste Enter
2.3. 比對檔案差異
稱職的系統管理者是勤於備份的,在更動設定檔 (conf) 前一定會先複製一份。在眾多版本中的難以使用肉眼查覺出差異,這時可用 diff, Vim 或 Meld 來比對。在 Vim 底下時,請使用 :diffsplit。
[ jonny@wheezy ~ ]
$ vi <file1> Enter
...
:diffsplit <file2>
在 bash 底下時,請使用 vimdiff。
[ jonny@wheezy ~ ]
$ vimdiff <file1> <file2> Enter
2.4. 將內容轉成 HTML
:TOhtml 會產生與 Vim 上一模一樣的 html,對於想用網頁秀出程式碼的人是必備的功能 (範例) 。[ jonny@wheezy ~ ]
$ vi /usr/local/bin/powersave Enter
......
:TOhtml Enter
Vim 是個有門檻的文字編輯器,但凍仁相信只要用對方法,一步一步前進就可以早日駕馭它。建議初學者可以先套前人的 vimrc,並試著修改它,不懂的部份只要 Google 一下相信可以找到不少的解答。
Happy hacking !
本文同步發佈於 iT 邦幫忙。
相關連結:
★Vim Hacks (OSSF) | c9s
★008 vim超基礎入門 | 小 B
★心得:使用 Vim 編輯器的第一年
★給程式設計師的 Vim 入門圖解說明 | vgod's blog
★Vim 功能介紹 | 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
★鳥哥的 Linux 私房菜 -- vim 程式編輯器
★大家來學VIM(一個歷久彌新的編輯器)
留言
張貼留言
喜歡這篇文章嗎?歡迎在底下留言讓凍仁知道。😉