Vimscript Abbreviations

2018-02-24 16:02 更新

Vim有個(gè)稱(chēng)為"abbreviations"的特性,與映射有點(diǎn)類(lèi)似,但是它用于insert、replace和 command模式。這個(gè)特性靈活且強(qiáng)大,不過(guò)本節(jié)只會(huì)談及最常用的用法。

本書(shū)只會(huì)講述insert模式下的abbreviations。運(yùn)行如下命令:

:iabbrev adn and

進(jìn)入insert模式并輸入:

One adn two.

在輸入adn之后輸入空格鍵,Vim會(huì)將其替換為and。

諸如這樣的輸入糾錯(cuò)是abbreviations的一個(gè)很實(shí)用的用法。運(yùn)行命令:

:iabbrev waht what
:iabbrev tehn then

再次進(jìn)入insert模式并輸入:

Well, I don't know waht we should do tehn.

注意?兩個(gè)?abbreviations的替換時(shí)機(jī),第二個(gè)沒(méi)有輸入空格卻也替換了。

Keyword Characters

緊跟一個(gè)abbreviation輸入"non-keyword character"后Vim會(huì)替換那個(gè)abbreviation。 "non-keyword character"指那些不在iskeyword選項(xiàng)中的字符。運(yùn)行命令:

:set iskeyword?

你將看到類(lèi)似于iskeyword=@,48-57,_,192-255的結(jié)果。這個(gè)格式很復(fù)雜,但本質(zhì)上 "keyword characters"包含一下幾種:

  • 下劃線(xiàn)字符 (_).
  • 所有字母字符,包括大小寫(xiě)。
  • ASCII值在48到57之間的字符(數(shù)字0-9)。
  • ASCII值在192到255之間的字符(一些特殊ASCII字符)。

如果你想閱讀這個(gè)選項(xiàng)格式的?完整?描述,你可以運(yùn)行命令:help isfname,另外 閱讀之前最好準(zhǔn)備點(diǎn)吃的。

你只要記住輸入非字母、數(shù)字、下劃線(xiàn)的字符就會(huì)引發(fā)abbreviations替換。

更多關(guān)于abbreviations

Abbreviations不僅僅只能糾錯(cuò)筆誤。我們可以加幾個(gè)日常編輯中常用的abbreviations。 運(yùn)行如下命令:

:iabbrev @@    steve@stevelosh.com
:iabbrev ccopy Copyright 2013 Steve Losh, all rights reserved.

隨意更換我的名字和郵箱地址為你的,然后試試這兩個(gè)abbreviations吧~

這些abbreviations將你常用的一長(zhǎng)串字符壓縮至幾個(gè)字符,省的每次都要那么麻煩。

Why Not Use Mappings? 為什么不用Mappings?


不錯(cuò),abbreviations和mappings很像,但是他們的定位不同。看個(gè)例子:

運(yùn)行命令:

:inoremap ssig -- <cr>Steve Losh<cr>steve@stevelosh.com

這個(gè)?mapping?用于快速插入你的簽名。進(jìn)入insert模式并輸入ssig試試看。

看起來(lái)一切正常,但是還有個(gè)問(wèn)題。進(jìn)入insert模式并輸入如下文字:

Larry Lessig wrote the book "Remix".

注意到Vim將Larry名字中的ssig也替換了!mappings不管被映射字符串的前后字符是什么-- 它只在文本中查找指定的字符串并替換他們。

運(yùn)行下面的命令刪除上面的mappings并用一個(gè)abbreviation替換它:

:iunmap ssig
:iabbrev ssig -- <cr>Steve Losh<cr>steve@stevelosh.com

再次試試這個(gè)abbreviation。

這次Vim會(huì)注意ssig的前后字符,只會(huì)在需要的時(shí)候替換它。

Exercises

在你的~/.vimrc文件中為經(jīng)常拼寫(xiě)錯(cuò)誤的單詞增加abbreviations配置。一定要使用 上一章中你創(chuàng)建的mappings來(lái)重新打開(kāi)讀取~/.vimrc文件。

為你的郵箱地址、博客網(wǎng)址、簽名添加abbreviations配置。

為你經(jīng)常輸入的文本添加abbreviations配置。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)