iT邦幫忙

5

[完全用 GNU/Linux 工作] 11. Hacking Vim

Vim 是個可以高度客製化的文字編輯器,相信大家都可以透過 hacking vim 的設定檔讓它變得更美好! (本文同步發佈於 凍仁的筆記)。
Vim 是功能完整且強大的文字編輯器 (Text Editor,以下簡稱 Editor),相信接觸過 GNU/Linux 的伙伴都曾聽過或使用過。但不少人對於它的印象就如同 [COSCUP 2011](http://coscup.org/ 2011/zh-tw/) 的經典名句「第一次用 vi 時進的去出不來」一樣,不過凍仁相信,只要事先做過功課,便可習得第一成的功力!待大成後,其帶來的便利性是其他的 Editor 難以取代的!


▲ 使用 markdown 語法撰寫鐵人賽文章的截圖。視窗切割及 CtrlP 火力展示,其怖景主題為 fu

我們除了可以在終端機輸入 vimtutor 取得 Vim 使用手冊,也可於網際網路上取得不少資源。


▲ Vi 學習曲線圖。


vgod 匯整的 Vim 入門圖解說明

土法煉鋼快速移動加強技巧使用套件 (plugin)打造屬於自己的 Vim,前後得花了不少的時間及心力,但我們可以在各個平台 (Android, GNU/Linux, iOS, Mac OSX, Windows)、軟體 (Bash, Chrome, Firefox, MySQL, Python, vifm, Visual Studio, w3m) 以及網路服務 (Facebook, Gmail) 中發現它的影子,是個習得一招半式便可打遍天下無敵手的 Editor,對凍仁而言它是個很棒的投資!

部份的發行版本只會預載 Vi 而沒有 Vim,這時請手動安裝它。

	# Debian, Ubuntu on Gnome, Unity
	$ sudo aptitude install vim-gnome

	# Debian, Ubuntu on KDE, Evilwm
	$ sudo aptitude install vim-gtk

	# CentOS, Fedora
	$ sudo yum install vim-X11

凍仁 Vim

如想取得凍仁完整的 vim 環境設定,請參考 凍仁的 GitHub

	# 下載凍仁的環境設定。
	$ git clone https://github.com/chusiang/vimrc.git

	# 切換目錄。
	$ cd vimrc/

	# 備份原設定。
	$ make backup

	# 安裝。
	$ make install

	# 開啟 Vim。
	$ vim

	# 安裝各式的 vim 套件。
	:NeobundleInstall

以下設定可寫入 $HOME/.vimrc,這樣下次啟動 Vim 時設定才會存在。

更換 fu 怖景主題

	colorscheme fu

使用 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>

常用指令

內文取代

  • s: 取代。
  • g: 對該行所有的字元進行處理。
  • c: 檢查。

全文取代。

	:%s/old_world/new_world/gc

取代第 5 ~ 10 行。

	:5,10s/old_world/new_world/gc

啟用貼上模式

若有設定自動縮排 (set hls),在貼上程式碼時會有走山的情形,這時可以先切換成「貼上模式」再貼上。

	:set paste

比對檔案差異

稱職的系統管理者是勤於備份的,在更動設定檔 (conf) 前一定會先複製一份!但在眾多版本中,我們難以用肉眼查覺出差異,這時可用 diff, Vim 或 Meld 來比對。

	# 在 Vim 底下時,請使用 :diffsplit。
	$ vi <file1>
	...
	:diffsplit <file2>

	# 在 bash 底下時,請使用 vimdiff。
	$ vimdiff <file1> <file2>

將內容轉成 HTML

:TOhtml 這指令會產生與 Vim 上一模一樣的 html,對於想用網頁秀出程式碼的人是必備的功能 (範例)。

	$ vi /usr/local/bin/powersave
	......
	:TOhtml

Vim 是個有門檻的文字編輯器,但凍仁相信只要用對方法,一步一步前進就可以早日駕馭它。建議初學者可以先套前人的 vimrc,並試著修改它,不懂的部份只要 Google 一下相信可以找到不少的解答。

Happy hacking !

相關連結:

« 回到 [完全用 GNU/Linux 工作]


0
timloo
iT邦研究生 2 級 ‧ 2013-09-30 09:34:24

可以藉著編輯一個檔案(或數個),來看一下你的vimrc,
有那些過人之處,讀者看了之後,可能馬人就想改用vim試試!!

凍仁翔 iT邦新手 4 級 ‧ 2013-09-30 15:49:17 檢舉

收到,再找時間補上截圖。開心

凍仁翔 iT邦新手 4 級 ‧ 2013-09-30 18:00:54 檢舉

先放張圖來墊檔哩 謝謝

0
okuma
iT邦新手 5 級 ‧ 2013-10-04 14:03:09

感謝分享,有一個疑惑請教。
以前我用vim看code的時候,
只要用滑鼠去圈選某個範圍然後按右鍵就可以使用複製功能,
就算離開vim之後,複製的字串依然存在。

現在套用你的範本後,
圈選字串會出現選取字樣,
但是複製功能已經無法使用,
不知道套用之後想複製字串該如何使用?

PS:我不是指用 y 這個功能鍵,我試過他只有在vim當中有用,
跳出後字串還是沒有被複製下來。

凍仁翔 iT邦新手 4 級 ‧ 2013-10-08 00:42:35 檢舉

環境是!? windows, linux or mac? 還是這是 terminal 下的 vim 還是有 GUI 的 Gvim?

okuma iT邦新手 5 級 ‧ 2013-10-11 13:48:23 檢舉

Ubuntu 12.04,直接在terminal下面打vim編輯的環境。

凍仁翔 iT邦新手 4 級 ‧ 2013-10-11 15:09:42 檢舉

在下使用 terminator 時還可以這樣複製貼上,但不常這樣用。您可以使用 v (or Ctrl + v) 來選取文字,之後用 "+y (or C) 來複製文字,之後用 "+p (or \v) ;來貼上。

我要留言

立即登入留言