亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Emacs配置與擴(kuò)展技術(shù)

        2019-06-28 08:36:28鮑彬武云濤
        科技創(chuàng)新與應(yīng)用 2019年16期
        關(guān)鍵詞:擴(kuò)展配置

        鮑彬 武云濤

        摘? 要:Emacs是高擴(kuò)展性的編輯器,可通過配置支持多種復(fù)雜編輯模式。不同于其它編輯器的簡(jiǎn)單配置腳本,Emacs的配置和擴(kuò)展是通過 Emacs-lisp語言完成的,Emacs配置普遍被認(rèn)為是較為復(fù)雜的和難以掌握的。文章著重探討并分析了Emacs配置與擴(kuò)展的相關(guān)技術(shù)。

        關(guān)鍵詞:Emacs;Lisp;配置;擴(kuò)展

        中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2019)16-0134-03

        Abstract: Emacs is a highly extensible editor that can 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 mainly discusses and analyzes the related technologies of Emacs configuration and extension.

        Keywords: Emacs; Lisp; configuration; extension

        1 Emacs簡(jiǎn)介

        Emacs是著名的文本編輯器,最初是在上世紀(jì)70年代完成。Emacs是“Editing MACros”的縮寫,意為宏編輯器。不同于一般的編輯器,Emacs具有極強(qiáng)的可擴(kuò)展性。在文本編輯之外,Emacs通過與其他工具結(jié)合起來能夠支持各種語言程序開發(fā),上網(wǎng)和新聞組,文件和系統(tǒng)管理,撰寫文章等一系列功能,成為一個(gè)具有強(qiáng)大功能且高度集成的生產(chǎn)力工具。

        2 Emacs與常見文本編輯器配置方式比較

        2.1 Emacs和Vi比較

        Emacs和Vi是深受程序員喜愛的兩大編輯器,各有特點(diǎn)。Vi是著名的輕量級(jí)文本編輯器,在完成輕量級(jí)任務(wù)時(shí)有很大優(yōu)勢(shì),比如簡(jiǎn)單調(diào)整系統(tǒng)配置,遠(yuǎn)程終端的簡(jiǎn)單訪問和操作。Vi的強(qiáng)大之處在于其編輯快捷鍵易用,和終端無縫結(jié)合。相比之下,Emacs復(fù)雜度要高很多,但在處理復(fù)雜任務(wù),大量不同類型的文件時(shí),Emacs將更有優(yōu)勢(shì)。值得注意的是,Vi也需要通過一定配置才能發(fā)揮較強(qiáng)的功能,比如大部分程序員為了方便開發(fā),還是結(jié)合多個(gè)較復(fù)雜插件將Vi配置為集成開發(fā)環(huán)境。在這個(gè)角度上,Vi擴(kuò)展的編寫不如Emacs用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)勢(shì)在于易于上手,其擴(kuò)展性更多的是通過官方豐富的插件來完成的,對(duì)于新手更加友好。用戶也可以通過簡(jiǎn)單腳本文件定制編輯器特性,不過其所支持的定制語言不夠強(qiáng)大,定制復(fù)雜配置是不容易的。相比而言,Emacs的可擴(kuò)展性更強(qiáng),定制方式更加靈活,所以很多人依然選擇使用Emacs而不是轉(zhuǎn)入新的文本編輯工具。對(duì)于經(jīng)驗(yàn)豐富的編程人員來講,Emacs更容易按照自己的工作習(xí)慣加以配置和擴(kuò)展,在眾多工具中依然是最佳的選擇。Emacs的另一個(gè)優(yōu)勢(shì)之處是可以和系統(tǒng)結(jié)合,不僅僅限制在集成開發(fā)環(huán)境這樣一個(gè)功能,而是可以擴(kuò)展為可以替代Office,圖片瀏覽器,網(wǎng)頁瀏覽器等軟件的多功能集成工具。這是目前任何一款可擴(kuò)展文本工具都是無法做到的,這也是Emacs作為一個(gè)古老軟件至今依然保持開發(fā)活躍的原因。當(dāng)然,Emacs開源和社區(qū)高度開放的特性也是其優(yōu)勢(shì)之處和更容易擴(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ì)算理論,語言簡(jiǎn)潔并能夠優(yōu)雅的支持目前主流的程序設(shè)計(jì)范式。Emacs-lisp包含完整的Lisp語言特性,這是由于Emacs底層用C語言實(shí)現(xiàn)了Lisp的解釋器和基本的內(nèi)置編輯函數(shù)。因此Emacs的大部分功能是由Emacs-lisp實(shí)現(xiàn)的,同樣也可以用Emacs-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è)模塊對(duì)應(yīng)一個(gè)文件,在文件尾部使用provide使模塊可被其它程序引用,引用方式是通過require指定,從而加載模塊中的所有變量和函數(shù),使其對(duì)當(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)加載配置代碼,實(shí)現(xiàn)模塊函數(shù)當(dāng)調(diào)用時(shí)才加載,相關(guān)函數(shù)在模塊加載后才執(zhí)行。目前比較流行的方式是使用第三方工具use-package,該工具包定義了use-package宏,能夠以簡(jiǎn)潔的方式指定模塊中需要?jiǎng)討B(tài)加載的函數(shù)和變量,以及指定配置代碼與模塊加載的相對(duì)順序。

        猜你喜歡
        擴(kuò)展配置
        淺談數(shù)據(jù)挖掘和自適應(yīng)算法的應(yīng)用
        多維傳播語境下的播音主持功能與拓展研究
        簡(jiǎn)析電力系統(tǒng)繼電保護(hù)技術(shù)及配置應(yīng)用
        一種智能家居系統(tǒng)自學(xué)習(xí)免配置方法
        世界主要國(guó)家軍民融合式發(fā)展財(cái)力資源配置的啟示
        商情(2016年39期)2016-11-21 10:03:22
        論高校網(wǎng)絡(luò)防火墻的配置與管理
        計(jì)算機(jī)Linux網(wǎng)絡(luò)操作系統(tǒng)特點(diǎn)及服務(wù)器配置研究
        恒溫晶體振蕩器調(diào)頻范圍擴(kuò)展思考
        試論人力資源配置及其作用與模式
        財(cái)務(wù)管理內(nèi)容擴(kuò)展的路徑與方法
        欧美xxxxx在线观看| 国产午夜av一区二区三区| 亚洲色偷拍区另类无码专区| 老熟妇Av| 国产成人高清亚洲一区二区| 蜜桃尤物在线视频免费看| 99在线精品免费视频| 纯爱无遮挡h肉动漫在线播放| 久久无码高潮喷水免费看| 日本视频一区二区三区三州| 久久777国产线看观看精品| 欧美成人免费全部| 亚洲欧洲精品国产二码| 成人av在线免费播放| 亚洲av无码乱码国产麻豆| 色一情一乱一伦一区二区三区日本| 国产91吞精一区二区三区| 国产大片在线观看91| 久久99亚洲精品久久久久 | 日本一区二区在线免费视频| 护士人妻hd中文字幕| 国产精品国产三级国av| 亚洲色欲色欲www成人网| 亚洲第一区二区精品三区在线 | 99精品国产闺蜜国产在线闺蜜| 成人自拍三级在线观看| 浪货趴办公桌~h揉秘书电影| 人人妻人人爽人人做夜欢视频九色| 国产人妖xxxx做受视频| 风韵人妻丰满熟妇老熟| 97在线观看视频| 少妇人妻在线视频| 亚洲一区二区自拍偷拍| 不卡av一区二区在线| 亚洲熟妇色自偷自拍另类| 亚洲精品自产拍在线观看| 手机免费日韩中文字幕| 蜜桃视频在线观看免费亚洲| 真人无码作爱免费视频禁hnn| 98色花堂国产精品首页| 人妻av不卡一区二区三区|