W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Vim有個稱為"abbreviations"的特性,與映射有點類似,但是它用于insert、replace和 command模式。這個特性靈活且強大,不過本節(jié)只會談及最常用的用法。
本書只會講述insert模式下的abbreviations。運行如下命令:
:iabbrev adn and
進(jìn)入insert模式并輸入:
One adn two.
在輸入adn
之后輸入空格鍵,Vim會將其替換為and
。
諸如這樣的輸入糾錯是abbreviations的一個很實用的用法。運行命令:
:iabbrev waht what
:iabbrev tehn then
再次進(jìn)入insert模式并輸入:
Well, I don't know waht we should do tehn.
注意?兩個?abbreviations的替換時機(jī),第二個沒有輸入空格卻也替換了。
緊跟一個abbreviation輸入"non-keyword character"后Vim會替換那個abbreviation。 "non-keyword character"指那些不在iskeyword
選項中的字符。運行命令:
:set iskeyword?
你將看到類似于iskeyword=@,48-57,_,192-255
的結(jié)果。這個格式很復(fù)雜,但本質(zhì)上 "keyword characters"包含一下幾種:
_
).如果你想閱讀這個選項格式的?完整?描述,你可以運行命令:help isfname
,另外 閱讀之前最好準(zhǔn)備點吃的。
你只要記住輸入非字母、數(shù)字、下劃線的字符就會引發(fā)abbreviations替換。
Abbreviations不僅僅只能糾錯筆誤。我們可以加幾個日常編輯中常用的abbreviations。 運行如下命令:
:iabbrev @@ steve@stevelosh.com
:iabbrev ccopy Copyright 2013 Steve Losh, all rights reserved.
隨意更換我的名字和郵箱地址為你的,然后試試這兩個abbreviations吧~
這些abbreviations將你常用的一長串字符壓縮至幾個字符,省的每次都要那么麻煩。
Why Not Use Mappings? 為什么不用Mappings?
不錯,abbreviations和mappings很像,但是他們的定位不同??磦€例子:
運行命令:
:inoremap ssig -- <cr>Steve Losh<cr>steve@stevelosh.com
這個?mapping?用于快速插入你的簽名。進(jìn)入insert模式并輸入ssig
試試看。
看起來一切正常,但是還有個問題。進(jìn)入insert模式并輸入如下文字:
Larry Lessig wrote the book "Remix".
注意到Vim將Larry名字中的ssig
也替換了!mappings不管被映射字符串的前后字符是什么-- 它只在文本中查找指定的字符串并替換他們。
運行下面的命令刪除上面的mappings并用一個abbreviation替換它:
:iunmap ssig
:iabbrev ssig -- <cr>Steve Losh<cr>steve@stevelosh.com
再次試試這個abbreviation。
這次Vim會注意ssig
的前后字符,只會在需要的時候替換它。
在你的~/.vimrc
文件中為經(jīng)常拼寫錯誤的單詞增加abbreviations配置。一定要使用 上一章中你創(chuàng)建的mappings來重新打開讀取~/.vimrc
文件。
為你的郵箱地址、博客網(wǎng)址、簽名添加abbreviations配置。
為你經(jīng)常輸入的文本添加abbreviations配置。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: