



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 emacs配置與擴(kuò)展技術(shù) 鮑彬 武云濤摘 要:emacs是高擴(kuò)展性的編輯器,可通過配置支持多種復(fù)雜編輯模式。不同于其它編輯器的簡單配置腳本,emacs的配置和擴(kuò)展是通過 emacs-lisp語言完成的,emacs配置普遍被認(rèn)為是較為復(fù)雜的和難以掌握的。文章著重探討并分析了emacs配置與擴(kuò)展的相關(guān)技術(shù)。關(guān)鍵詞:emacs;lisp;配置;擴(kuò)展:tp391 文獻(xiàn)標(biāo)志碼:a :2095-2945(2019)16-0134-03abstract: emacs is a highly extensible editor that can
2、 be configured to support a variety of complex editing modes. unlike the simple configuration scripts of other editors, the configuration and extension of emacs is done through the emacs-lisp language. emacs configuration is generally considered to be more complex and difficult to master. this paper
3、 mainly discusses and analyzes the related technologies of emacs configuration and extension.keywords: emacs; lisp; configuration; extension1 emacs簡介emacs是著名的文本編輯器,最初是在上世紀(jì)70年代完成。emacs是“editing macros”的縮寫,意為宏編輯器。不同于一般的編輯器,emacs具有極強(qiáng)的可擴(kuò)展性。在文本編輯之外,emacs通過與其他工具結(jié)合起來能夠支持各種語言程序開發(fā),上網(wǎng)和新聞組,文件和系統(tǒng)管理,撰寫文章等一系列功能,成
4、為一個(gè)具有強(qiáng)大功能且高度集成的生產(chǎn)力工具。2 emacs與常見文本編輯器配置方式比較2.1 emacs和vi比較emacs和vi是深受程序員喜愛的兩大編輯器,各有特點(diǎn)。vi是著名的輕量級文本編輯器,在完成輕量級任務(wù)時(shí)有很大優(yōu)勢,比如簡單調(diào)整系統(tǒng)配置,遠(yuǎn)程終端的簡單訪問和操作。vi的強(qiáng)大之處在于其編輯快捷鍵易用,和終端無縫結(jié)合。相比之下,emacs復(fù)雜度要高很多,但在處理復(fù)雜任務(wù),大量不同類型的文件時(shí),emacs將更有優(yōu)勢。值得注意的是,vi也需要通過一定配置才能發(fā)揮較強(qiáng)的功能,比如大部分程序員為了方便開發(fā),還是結(jié)合多個(gè)較復(fù)雜插件將vi配置為集成開發(fā)環(huán)境。在這個(gè)角度上,vi擴(kuò)展的編寫不如emac
5、s用lisp語言開發(fā)那么方便,雖然理論上vi也是可以用通用語言python去擴(kuò)展的,但畢竟不是原生的擴(kuò)展語言。事實(shí)上通過合理配置,emacs其實(shí)是可以模擬大部分vi的特性的,這也是目前比較流行的模式,不使用原生的vi,而是把vi的特性結(jié)合進(jìn)入emacs中,兩者兼用。這個(gè)思路是目前大多數(shù)流行的emacs配置采用的。2.2 emacs和sublime text,vs code比較近些年也有一些新的可擴(kuò)展文本編輯器,比較有名的有sublime text,微軟寫的vs code,這些工具也都意在提供高可擴(kuò)展性的編輯工具,尤其是多種語言程序的開發(fā)工具。這些編輯器優(yōu)勢在于易于上手,其擴(kuò)展性更多的是通過官方
6、豐富的插件來完成的,對于新手更加友好。用戶也可以通過簡單腳本文件定制編輯器特性,不過其所支持的定制語言不夠強(qiáng)大,定制復(fù)雜配置是不容易的。相比而言,emacs的可擴(kuò)展性更強(qiáng),定制方式更加靈活,所以很多人依然選擇使用emacs而不是轉(zhuǎn)入新的文本編輯工具。對于經(jīng)驗(yàn)豐富的編程人員來講,emacs更容易按照自己的工作習(xí)慣加以配置和擴(kuò)展,在眾多工具中依然是最佳的選擇。emacs的另一個(gè)優(yōu)勢之處是可以和系統(tǒng)結(jié)合,不僅僅限制在集成開發(fā)環(huán)境這樣一個(gè)功能,而是可以擴(kuò)展為可以替代office,圖片瀏覽器,網(wǎng)頁瀏覽器等軟件的多功能集成工具。這是目前任何一款可擴(kuò)展文本工具都是無法做到的,這也是emacs作為一個(gè)古老軟件
7、至今依然保持開發(fā)活躍的原因。當(dāng)然,emacs開源和社區(qū)高度開放的特性也是其優(yōu)勢之處和更容易擴(kuò)展的原因之一。3 emacs配置與擴(kuò)展技術(shù)3.1 emacs-lisp擴(kuò)展編程emacs配置與擴(kuò)展可以通過emacs-lisp語言開發(fā)。emacs-lisp語言是lisp語言的一種方言。lisp是早期的程序設(shè)計(jì)語言之一,其語言設(shè)計(jì)源于lambda計(jì)算理論,語言簡潔并能夠優(yōu)雅的支持目前主流的程序設(shè)計(jì)范式。emacs-lisp包含完整的lisp語言特性,這是由于emacs底層用c語言實(shí)現(xiàn)了lisp的解釋器和基本的內(nèi)置編輯函數(shù)。因此emacs的大部分功能是由emacs-lisp實(shí)現(xiàn)的,同樣也可以用emacs-
8、lisp語言方便的進(jìn)行擴(kuò)展,進(jìn)一步emacs-lisp語言也可直接訪問emacs的內(nèi)置功能函數(shù)接口。這樣的特性使得使用emacs-lisp進(jìn)行程序設(shè)計(jì)和emacs配置開發(fā)非常方便。3.2 emacs配置加載emacs的入口文件可以是/.emacs或者/.emacs.d/init.el。常見的方式是使用后者,因?yàn)楹笳哂欣谀K化配置程序。emacs配置一般是有一定規(guī)模的復(fù)雜程序,模塊化設(shè)計(jì)可以使配置程序易讀易改。emacs-lisp語言的每一個(gè)模塊對應(yīng)一個(gè)文件,在文件尾部使用provide使模塊可被其它程序引用,引用方式是通過require指定,從而加載模塊中的所有變量和函數(shù),使其對當(dāng)前程序可見。為了模塊能被emacs發(fā)現(xiàn)并正確加載,通常需要在init.el文件開始部分使用load-path指定所需所有模塊的路徑,作為加載配置的起始點(diǎn)。emacs加載模塊并非只有這一種方式,事實(shí)上,為了加快emacs的啟動(dòng)速度,不是所有模塊都在init.el初始化時(shí)加載。最好的加載實(shí)踐是在emacs啟動(dòng)時(shí)僅加載基本模塊,其它功能模塊時(shí)在被使用時(shí)動(dòng)態(tài)加載,比如啟動(dòng)時(shí)不加載python開發(fā)相關(guān)模塊,而且在打開python文件進(jìn)行編輯時(shí)才加載。有兩種方式可以實(shí)現(xiàn)動(dòng)態(tài)模塊加載,不使用第三方工具的情況下,可以用autoload設(shè)置動(dòng)態(tài)加載的函數(shù),結(jié)合宏with-eval-after-load指定動(dòng)態(tài)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 縮句 教學(xué)課件
- 叮當(dāng)老師教學(xué)課件
- 教育整頓說課課件
- 教學(xué)課件大學(xué)怎么設(shè)計(jì)
- 【阜新】2025年遼寧阜新市事業(yè)單位招聘工作人員195人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 教育扶貧政策班會(huì)課件
- 【河池】2025年廣西河池羅城仫佬族自治縣醫(yī)療保障局招聘2人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 文藝論壇活動(dòng)方案
- 春季種植活動(dòng)活動(dòng)方案
- 春節(jié)體育活動(dòng)活動(dòng)方案
- 臺(tái)球廳桌球俱樂部創(chuàng)業(yè)計(jì)劃書課件模板
- 人工智能創(chuàng)業(yè)項(xiàng)目計(jì)劃書
- (正式版)JBT 106-2024 閥門的標(biāo)志和涂裝
- 肺結(jié)節(jié)手術(shù)的術(shù)后護(hù)理措施
- 萬豪集團(tuán)員工手冊
- 美育浸潤行動(dòng)總結(jié)匯報(bào)
- 2023年貴州公務(wù)員考試申論試題(A卷)含解析
- 膽道梗阻的護(hù)理查房
- 部編版語文八年級下冊典型作文及例析
- 15D502 等電位聯(lián)結(jié)安裝
- 《企業(yè)信息管理》2023期末試題及答案
評論
0/150
提交評論