GNU/Linux 使用Hacking Vim

2023-05-11 10:51 更新

Vim 是功能完整且強(qiáng)大的文字編輯器 (Text Editor,以下簡(jiǎn)稱(chēng) Editor),相信接觸過(guò) GNU/Linux 的伙伴都曾接觸過(guò)。相信不少人對(duì)于它的印象就如同 COSCUP 2011 的經(jīng)典名句「 第一次用 vi 時(shí)進(jìn)的去出不來(lái)」一樣,不過(guò)凍仁相信,只要事先做過(guò)些功課,便可習(xí)得第一成的功力,待大成后,其帶來(lái)的便利性是其他的 Editor 難以取代的!

write 11.hacking-vim.md with Vim.

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

我們除了可以在終端機(jī)輸入 vimtutor 取得 Vim 使用手冊(cè),也可于網(wǎng)際網(wǎng)絡(luò)上取得不少資源。

2013-09-28-vim-learning-curve.png

▲ Vi 學(xué)習(xí)曲線圖。

Vim 命令圖解

▲ vgod 匯整的 Vim 入門(mén)圖解說(shuō)明

土法煉鋼快速移動(dòng)、加強(qiáng)技巧、使用套件 (plugin) 到打造屬于自己的 Vim 前后得花了不少的時(shí)間及心力,但我們可以在各個(gè)平臺(tái) (Android, GNU/Linux, iOS, Mac OSX, Windows)、軟件 (Bash, Chrome, Firefox, MySQL, Python, vifm,  Visual Studio, w3m) 以及網(wǎng)絡(luò)服務(wù) (Facebook, Gmail) 中發(fā)現(xiàn)它的影子,是個(gè)習(xí)得一招半式便可打遍天下無(wú)敵手的 Editor,對(duì)凍仁而言它是個(gè)很棒的投資!

部份的發(fā)行版本只會(huì)預(yù)載 Vi 而沒(méi)有 Vim,這時(shí)請(qǐng)手動(dòng)安裝它。

# 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 環(huán)境設(shè)定 (vimrc),請(qǐng)參考 凍仁的 GitHub。

# 下載凍仁的環(huán)境設(shè)定。  
$ git clone https://github.com/chusiang/vimrc.git  

# 切換目錄。  
$ cd vimrc/  

# 備份原設(shè)定。  
$ make backup  

# 安裝。  
$ make install  

# 開(kāi)啟 Vim。  
$ vim  

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

以下設(shè)定可寫(xiě)入 $HOME/.vimrc,這樣下次啟啟動(dòng) Vim 時(shí)設(shè)定才會(huì)存在。

更換 fu 布景主題

colorscheme fu  

使用 F5, F6 開(kāi)啟當(dāng)前編輯的網(wǎng)頁(yè)

" - 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>  

常用指令

內(nèi)文取代

  • s: 取代。
  • g: 對(duì)該行所有的字元進(jìn)行處理。
  • c: 檢查。

全文取代。

:%s/old_world/new_world/gc

取代第 5 ~ 10 行。

:5,10s/old_world/new_world/gc

啟用貼上模式

若有設(shè)定自動(dòng)縮排 (set hls),在貼上程式碼時(shí)會(huì)有走山的情形,這時(shí)可以先切換成貼上模式再貼上。

:set paste

比對(duì)檔案差異

稱(chēng)職的系統(tǒng)管理者是勤于備份的,在更動(dòng)設(shè)定檔 (conf) 前一定會(huì)先復(fù)制一份。在眾多版本中的難以使用肉眼查覺(jué)出差異,這時(shí)可用 diff, Vim 或 Meld 來(lái)比對(duì)。

# 在 Vim 底下時(shí),請(qǐng)使用 :diffsplit。
$ vi <file1>
...
:diffsplit <file2>

# 在 bash 底下時(shí),請(qǐng)使用 vimdiff。
$ vimdiff <file1> <file2>

將內(nèi)容轉(zhuǎn)成 HTML

:TOhtml 會(huì)產(chǎn)生與 Vim 上一模一樣的 html,對(duì)于想用網(wǎng)頁(yè)秀出程式碼的人是必備的功能 (范例) 。

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

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

努力學(xué)習(xí) Vim,成為一位好的 Vimmer 吧!

資料來(lái)源


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)