中文編輯怎么快起來。五筆,雙拼??No?No?我們要用vim谤祖!
但是vim作為一個(gè)小眾純文本編輯器婿滓,如何能應(yīng)用到廣泛的中文編輯場(chǎng)景中呢?
我們首先需要解釋為什么vim能加快編輯粥喜】栈茫可以這樣解釋,vim的核心就是懶:懶得移動(dòng)右手去握住鼠標(biāo)(當(dāng)然用鼠標(biāo)沒什么問題的)容客,懶得移動(dòng)右到小鍵盤區(qū)的方向鍵秕铛。為了滿足這些懶人愿望,人們發(fā)明了模式編輯:在插入模式(記事本里輸入)之外缩挑,增加了一個(gè)模式來專門移動(dòng)光標(biāo)和進(jìn)行編輯操作但两,這個(gè)時(shí)候的普通按鍵事件被翻譯成編輯指令,或者移動(dòng)光標(biāo)供置,或者復(fù)制剪切谨湘;我們稱這個(gè)模式為常規(guī)模式。而模式切換異常簡(jiǎn)單:插入模式->常規(guī)模式用esc芥丧,普通模式->插入模式則用i/a/o/s等命令紧阔。如此簡(jiǎn)單的改變,卻帶來了非常不一樣的體驗(yàn)续担,最后吸引粉無數(shù)擅耽。
而要把vim用到我們中文世界,需要面對(duì)兩個(gè)問題: 首先物遇,中文輸入場(chǎng)景多元化乖仇;其次,vim命令和中文輸入法的沖突询兴。
極客的世界在于折騰乃沙,高效的工作在于專注工作內(nèi)容。那有沒有簡(jiǎn)單易行易懂的方式诗舰,應(yīng)用vim模式編輯到我們繁雜的中文編輯場(chǎng)景中呢警儒?
當(dāng)然有的,GlobalVim( 一個(gè)讓W(xué)indows變成 vim-Windows的輔助輸入軟件)眶根。使用GlobalVim后蜀铲,不管寫文章,寫郵件汛闸,還是寫報(bào)告蝙茶,隨時(shí)隨地都能用vim方式輸入!
GlobalVim微軟商店鏈接
讀者可從上面鏈接直接下載最新版本诸老,然后對(duì)照下面說明進(jìn)一步了解和嘗試隆夯。
vim號(hào)稱編輯器之神
在不編程的情形下钳恕,要應(yīng)用vim到我們的工作中,只需要花10分鐘了解基礎(chǔ)即可蹄衷。
概念篇
vim的與眾不同編輯方式是所謂的模式編輯忧额。上文已經(jīng)提及,vim模式編輯除了正常直觀的插入模式愧口,可以理解為僅僅多出了一個(gè)常規(guī)模式睦番。而我們只要使用i(insert)命令就可以從常規(guī)模式進(jìn)入插入模式。插入模式下耍属,使用esc就可以回到常規(guī)模式托嚣。區(qū)分了常規(guī)模式和插入模式之后,我們就可以上手vim厚骗;因?yàn)椴迦肽J骄褪瞧胀ǖ妮斎氕h(huán)境示启,因此無論如何也不會(huì)比使輸入變慢。讀者可大膽嘗試领舰。
實(shí)操篇-基礎(chǔ)
如果讀者已經(jīng)安裝好了GlobalVim夫嗓,把以下幾段復(fù)制到記事本或者word中,然后按下 CapsLock+v 啟動(dòng) vim 模式冲秽。然后花幾分鐘練習(xí)即可上手舍咖。
插入模式就是大家非常熟悉常規(guī)環(huán)境,所以以下主要介紹常規(guī)模式(不能直接輸入的模式)
光標(biāo)移動(dòng):
h(左)? j(下) k(上)?l(右)
為什么是 h j k l 呢锉桑?很簡(jiǎn)單排霉,因?yàn)?h j k l 就在右手手指默認(rèn)位置,手指頭可以用最小的動(dòng)作來完成光標(biāo)移動(dòng)刨仑。h 和 l郑诺,一個(gè)在最左,一個(gè)最右杉武,所以分別代表左和右;而通常按下很多辙售,而食指又最靈活轻抱,所以 j 往‘下’,那剩下的 k 表示‘上’就是很自然的了旦部。只要記住hjkl布局原因祈搜,稍做練習(xí),就不會(huì)忘掉啦士八。
0? ? ? ? ? ? ? ? ? ? ? 移動(dòng)到行首容燕,0表示開始,所以移動(dòng)到行首的含義不言自明
$(shift+4)? ? $是正則匹配中的表示行尾的標(biāo)記婚度,但4(死)也可以容易聯(lián)想到終了蘸秘、行尾
w? ? ? ? ? ? ? ? ? ? ? 單詞word的首字母,表示向后移動(dòng)一個(gè)詞,中文的分詞組沒有英文實(shí)用醋虏,但是聊勝于無寻咒,而且跳過大段空白很有用
b? ? ? ? ? ? ? ? ? ? ? ?單詞back的首字母,表示向前移動(dòng)一個(gè)詞
移動(dòng)到編輯位置后颈嚼,自然要進(jìn)入開始輸入(進(jìn)入插入模式)毛秘。
進(jìn)入插入模式:
i? ? ? ? ? ? ? ? ? ? ? ?單詞insert首字母,最常用的命令阻课,當(dāng)前位置進(jìn)入插入模式叫挟。
s? ? ? ? ? ? ? ? ? ? ? 刪除當(dāng)前字,并進(jìn)入插入模式
以上就是vim最常用和基礎(chǔ)的東西了限煞。如果熟練以上操作抹恳,編輯效率應(yīng)該可以有所提升了。
實(shí)操-深入
除了基礎(chǔ)的光標(biāo)移動(dòng)晰骑,但是我們還會(huì)經(jīng)常碰到需要復(fù)制粘貼适秩,調(diào)整字詞順序的操作,
常用編輯命令:
x? ? ? ? ? ? ? ? ? ? ? 刪除當(dāng)前單字硕舆,并存入剪切板
p? ? ? ? ? ? ? ? ? ? ? 當(dāng)前位置秽荞,粘貼剪切版內(nèi)容
/? ? ? ? ? ? ? ? ? ? ? ?打開搜索框(調(diào)用當(dāng)前環(huán)境搜索框),然后進(jìn)入插入模式抚官,輸入關(guān)鍵詞扬跋,使用Enter導(dǎo)航關(guān)鍵詞,最后點(diǎn)擊兩下esc定位到關(guān)鍵詞
*? ? ? ? ? ? ? ? ? ? ? ?搜索光標(biāo)所在處的詞語
o? ? ? ? ? ? ? ? ? ? ? 從下一行開始插入
O? ? ? ? ? ? ? ? ? ? ? 從上一行開始插入
J? ? ? ? ? ? ? ? ? ? ? ?將下一行和當(dāng)前行連接起來
中文情形下凌节,以筆者經(jīng)驗(yàn)钦听,最好用的當(dāng)屬高亮選中,然后復(fù)制(剪切)倍奢,然后找到位置粘貼了
高亮模式(visual?mode):
也可叫選擇模式朴上,按下v鍵,然后可以移動(dòng)光標(biāo)選中文本卒煞,若放棄操作痪宰,可以再次按下v鍵退出高亮模式。也可以使用y命令或者x命令復(fù)制或者剪切選中文本到系統(tǒng)剪切板畔裕。高亮模式下可用的命令:
y? ? ? ? ? ? ? ? ? ? ? ?選中高亮文本衣撬,并返回常規(guī)模式
x、d扮饶、c? ? ? ? ? ? 切高亮文本具练,并返回常規(guī)模式
批量操作
vim可以通過很簡(jiǎn)單直接的方式,完成批量操作:在操作之前甜无,先輸入一個(gè)非零數(shù)字N扛点,這時(shí)狀態(tài)欄會(huì)顯示已經(jīng)輸入的數(shù)字N哥遮。
隨后,緊鄰數(shù)字的命令會(huì)被重復(fù)N次占键。
vim寄存器昔善,宏錄制:
GlobalVim同樣支持寄存器機(jī)制,簡(jiǎn)單來說畔乙,我們會(huì)有a-z君仆,0-9 等等寄存器,寄存器相當(dāng)于windows系統(tǒng)的剪切版牲距,這意味著vim下我們有有數(shù)量相當(dāng)多的剪切板返咱。
上述復(fù)制,剪切牍鞠,粘貼操作匹配寄存器機(jī)制咖摹。用戶可以享受到強(qiáng)大的無與倫比的與寄存功能。
寄存器操作可以看成一個(gè)前導(dǎo)操作:“{register}? 作為前導(dǎo)难述,其后續(xù)的復(fù)制萤晴,剪切和粘貼操作是在這個(gè)寄存器的基礎(chǔ)上進(jìn)行操作。
與vim不同的是胁后,由于GlobalVim并非獨(dú)立編輯器店读,而是利用系統(tǒng)剪切板來實(shí)現(xiàn)功能,所以系統(tǒng)剪切板總會(huì)被當(dāng)前寄存操作覆蓋攀芯。
宏錄制屯断,可以把操作序列錄制到寄存器中,然后錄制好的宏可以稍后被調(diào)用侣诺。
例子殖演,錄制宏到寄存器a:
首先?按下 q a,?vim狀態(tài)欄會(huì)顯示”錄制a”年鸳,然后進(jìn)行操作趴久,?
最后在常規(guī)模式下,按q結(jié)束錄制
常規(guī)模式下按下 @?a?即可調(diào)用寄存器a中所錄制的宏
需要注意的是搔确,GlobalVim宏的內(nèi)容的格式與原生vim并不相同朋鞍,GlobalVim的宏內(nèi)容為鍵盤事件記錄。
計(jì)算python表達(dá)式
GlobalVim的表達(dá)式寄存器 "=?支持簡(jiǎn)單python表達(dá)式求值妥箕。
在常規(guī)模式下,按下 "=?后更舞,用戶即可開始輸入表達(dá)式畦幢,按enter對(duì)表達(dá)式求值,結(jié)果會(huì)顯示在狀態(tài)欄并存入 "= 寄存器缆蝉,用戶可以按p粘貼計(jì)算結(jié)果宇葱。
結(jié)語
vim習(xí)慣和平常的輸入確實(shí)不一樣瘦真,但只要我們將其應(yīng)用到日常工作中,相信很快就會(huì)有收獲黍瞧。