亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1416 | 回復(fù): 0
打印 上一主題 下一主題

[轉(zhuǎn)]Emacs 編輯環(huán)境,第 4 部分: 選項(xiàng)、寄存器和書簽 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-15 13:42 |只看該作者 |倒序?yàn)g覽
在 Emacs 中控制您的編輯會(huì)話,并使用它提高工作效率。本教程是系列文章的第 4
部分,將向您介紹 Emacs
中控制編輯會(huì)話某些方面的三個(gè)領(lǐng)域:各種不同的命令行選項(xiàng)、寄存器,以及用于設(shè)置和保存位置及數(shù)據(jù)的書簽工具。了解如何以及何時(shí)使用這些特性及其使用訣
竅,這些都是完成功能強(qiáng)大的編輯工作中的重要主題。
                    
                       
開始之前
  了解本教程中包含的內(nèi)容以及如何最好地利用本教程。
  關(guān)于本系列
 
 Emacs 編輯環(huán)境深受 UNIX® 開發(fā)人員的喜愛。它是世界公認(rèn)的編輯器之王,但許多用戶發(fā)現(xiàn)它學(xué)起來需要一定的過程。Emacs
環(huán)境初看起來并不是很直觀,而且和其他編輯器和字處理器的工作方式不大一樣。但 Emacs
的學(xué)習(xí)并不困難。一旦您熟悉了它,就會(huì)發(fā)現(xiàn)它有多么直觀,而且越用越順手。這個(gè)系列教程(請(qǐng)參見參考資料)將為您提供指導(dǎo),帶您了解 Emacs
的基礎(chǔ)知識(shí),如它的功能、原理、按鍵命令布局和編輯文本的方法,然后深入它眾多的強(qiáng)大編輯功能。
  在完成本系列文章(請(qǐng)參見參考資料)的學(xué)習(xí)后,您可以通過 Emacs 很方便地進(jìn)行日常編輯工作,能越來越熟練地使用 Emacs,并對(duì) Emacs 的許多高級(jí)功能有一個(gè)良好的認(rèn)識(shí)。
  關(guān)于本教程
 
 這是關(guān)于學(xué)習(xí) Emacs 的系列教程中的第 4 部分(請(qǐng)參見參考資料)。本系列文章主要介紹 Emacs
編輯器的使用,前面的教程向您介紹了一些基礎(chǔ)知識(shí);這一部分將介紹有關(guān)選項(xiàng)、寄存器和書簽的特殊主題,并以此圓滿結(jié)束到目前為止所學(xué)習(xí)的內(nèi)容。與許多應(yīng)用
程序一樣,Emacs
提供了許多命令行選項(xiàng),通過這些選項(xiàng)可以改變它的功能;在本教程中,您將了解如何以及何時(shí)使用它們,并且還將了解寄存器和書簽這兩種特殊的 Emacs
工具,它們是為當(dāng)前和以后編輯會(huì)話存儲(chǔ)位置及其他重要信息的有效方法。
  目標(biāo)
  本教程的主要目標(biāo)是向您介紹如何使用 Emacs 命令行選項(xiàng)、寄存器和書簽工具。假定您已經(jīng)完成了本系列文章中的前三部分教程(請(qǐng)參見參考資料),并對(duì)各種文本編輯技術(shù)有基本的了解。
 
 在完成本教程的學(xué)習(xí)之后,您將掌握許多用于控制您的 Emacs 會(huì)話的技巧:您將了解如何使用各種命令行選項(xiàng)(包括那些用于以非交互的方式運(yùn)行
Emacs 的選項(xiàng))修改和自定義您的 Emacs 編輯環(huán)境,以及如何使用寄存器和書簽為以后的恢復(fù)工作保存位置和數(shù)據(jù)。
  先決條件
 
 本教程建立于本系列文章前三部分教程中所介紹的一些概念的基礎(chǔ)之上,所以您應(yīng)該在完成前三部分教程的學(xué)習(xí)之后再開始本教程(請(qǐng)參見參考資料)的學(xué)習(xí)。本
教程中的示例再次使用了您在第 1 部分教程中生成的、并且在第 3 部分教程中使用過的練習(xí)文件(請(qǐng)參見下載,如果您還沒有該文件的話)。
  在本系列文章第一個(gè)教程(“Emacs 編輯環(huán)境,第 1 部分:學(xué)習(xí) Emacs 的基礎(chǔ)知識(shí)”,請(qǐng)參見”參考資料)的介紹部分中,描述了用于表示鍵盤輸入的特殊 Emacs 符號(hào),在本教程和整個(gè)系列文章之中都將使用到這些特殊的符號(hào)。
  盡管本教程面向所有不同級(jí)別的 UNIX 專業(yè)技術(shù)人員,但如果您至少對(duì) UNIX 文件系統(tǒng)具有基本的了解,將會(huì)很有幫助的:
  文件
  目錄
  權(quán)限
  文件系統(tǒng)層次結(jié)構(gòu)
  系統(tǒng)要求
  本教程需要您在基于 UNIX 的系統(tǒng)中有一個(gè)用戶帳戶,且此系統(tǒng)中安裝有最新版本的 Emacs。
  Emacs 有幾個(gè)版本;最原始,也是最流行的是 GNU Emacs,它是由 GNU 工程在線發(fā)布的(請(qǐng)參閱參考資料)。
  您應(yīng)該擁有較新版本的 GNU Emacs,即版本 20 或更高版本。版本 20 和 21 是最常見的,您也可以獲得版本 22 的開發(fā)快照。本教程可與這些版本的 Emacs 中的任何一種配合使用。如果您的系統(tǒng)運(yùn)行的是較老的版本,您應(yīng)該進(jìn)行升級(jí)。
  為了了解您運(yùn)行的是什么版本的 Emacs,請(qǐng)使用 GNU 風(fēng)格的 --version 標(biāo)志:
$ emacs --version
GNU Emacs 22.0.91.1
Copyright (C) 2006 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
$
  此外,本教程的某些部分(介紹 Emacs 操作的圖形元素)特別涉及到 X Window System。為了完成這些部分的學(xué)習(xí),您應(yīng)該擁有一臺(tái)正常運(yùn)行的 X 服務(wù)器。
  了解 Emacs 運(yùn)行時(shí)和顯示選項(xiàng)
 
 Emacs 提供了許多可以影響其行為的命令行選項(xiàng)。您通常在啟動(dòng) Emacs
時(shí)沒有使用任何選項(xiàng)——或許是一個(gè)或兩個(gè)文件名參數(shù)——但是使用選項(xiàng)您可以執(zhí)行許多高級(jí)操作,包括以批處理模式對(duì)文件運(yùn)行 Emacs Lisp
代碼。在很多時(shí)候,使用這些選項(xiàng)既方便又實(shí)用,它們非常適合許多特定的情況,在這一部分中將對(duì)這些情況進(jìn)行描述。(從帶命令行選項(xiàng)的命令行中調(diào)用
Emacs,這種特定的情況非常有用并且十分常見,特別是在 Shell 腳本或者啟動(dòng)文件中。)
  Emacs 使用 GNU
風(fēng)格的“長(zhǎng)”選項(xiàng),這種選項(xiàng)以兩個(gè)破折號(hào)開頭,可以帶一個(gè)傳統(tǒng)的空格字符,或者在選項(xiàng)及其參數(shù)之間使用一個(gè)等號(hào)。這些長(zhǎng)選項(xiàng)旨在易于理解和記憶,例如,以
反轉(zhuǎn)顯示方式啟動(dòng) Emacs 的長(zhǎng)風(fēng)格的選項(xiàng)是 --inverse-video
,但是作為結(jié)果,與大多數(shù)其他工具和應(yīng)用程序中的選項(xiàng)相比,要鍵入更長(zhǎng)的選項(xiàng)。然而,大多數(shù) Emacs
選項(xiàng)都具有一個(gè)傳統(tǒng)的單連字符等效部分。本教程在稍后的內(nèi)容中將給出一個(gè)完整的選項(xiàng)列表 表 2,其中包括了這兩種類型。
  修改文件操作
  一些最常見且最有用的 Emacs 選項(xiàng)是那些用于修改或者指定文件的選項(xiàng)。您可以使用這些選項(xiàng)執(zhí)行許多非常方便的技巧。
  自動(dòng)地打開某些文件
 
 Emacs 所接受的唯一參數(shù)是一個(gè)文件規(guī)范。當(dāng)您給定一個(gè)文件、一個(gè)文件列表或者另一個(gè)文件規(guī)范作為參數(shù)時(shí),Emacs
將啟動(dòng)并打開指定的文件到它們各自的緩沖區(qū)中,就如同您通過調(diào)用一系列 find-file 功能(C-x C-f),并依次指定其中的每一個(gè)文件:
$ emacs /usr/local/share/newdev/inputs/*.txt
  這個(gè)命令啟動(dòng) Emacs,打開 /usr/local/share/newdev/inputs/ 目錄中具有 .txt 文件擴(kuò)展名的所有文件,并將其放入到它們自己的新的緩沖區(qū)中。每個(gè)緩沖區(qū)的名稱都與其相應(yīng)的文件名相同。
 
 如果存在某些始終需要進(jìn)行編輯的文件,如任務(wù)列表、日程安排或者首要任務(wù)文件,可以將它們添加到您的啟動(dòng)文件中所使用的 emacs
命令行中,這樣做是非常有意義的。通過將它們放入到啟動(dòng)文件的命令行中,在 Emacs 啟動(dòng)時(shí),就會(huì)自動(dòng)地打開這些文件,并將其放入到相應(yīng)的緩沖區(qū)中:
emacs plans tasks
 
 Emacs 按照給定的順序打開文件,所以您最后指定的文件總是當(dāng)前緩沖區(qū)。在前面的示例中,當(dāng) Emacs 啟動(dòng)時(shí),名為 tasks
的文件是當(dāng)前緩沖區(qū)。如果您指定了多個(gè)文件,那么 Emacs
將窗口從中間分成兩半,在其頂部顯示一個(gè)文件的緩沖區(qū),在其底部顯示另一個(gè)文件的緩沖區(qū)。鍵入 C-x 1 以刪除第二個(gè)窗口,以便使得整個(gè)
Emacs 窗口只顯示一個(gè)緩沖區(qū)。
  如果您指定三個(gè) 或者更多的文件,那么 Emacs
將在頂部的窗口中顯示最后的文件,并將其作為當(dāng)前緩沖區(qū);它在其下的第二個(gè)窗口中顯示一個(gè)緩沖區(qū)列表,該列表顯示了所有打開的緩沖區(qū)的名稱、它們的大小、
它們的主要模式以及與它們相對(duì)應(yīng)的文件的名稱。同樣,您可以鍵入 C-x 1 以刪除這個(gè)窗口。
  您還可以在文件規(guī)范的前面使用長(zhǎng)的 --visit 和 --file 選項(xiàng)。例如,清單 1 中的命令行是等價(jià)的。
  清單 1. 用于指定 Emacs 文件名的等價(jià)命令行
emacs myfile
emacs --visit myfile
emacs --visit=myfile
emacs --file myfile
emacs --file=myfile
  當(dāng)您在為批處理操作構(gòu)造長(zhǎng)的 Emacs 命令行時(shí)(請(qǐng)參見執(zhí)行批處理操作部分),這些長(zhǎng)選項(xiàng)有時(shí)是非常有用的。
  開始編輯一個(gè)新的文件
 
 如果您所給定的文件在文件系統(tǒng)中并不存在,那么 Emacs
將打開一個(gè)新的緩沖區(qū),并在模式行中指出它是一個(gè)新的文件。例如,如果當(dāng)前目錄是一個(gè)名為 /usr/local/src/projx/inputs/
的空目錄,并且您鍵入 emacs README,那么您將打開一個(gè)名為 README 的新緩沖區(qū)。如果您將該緩沖區(qū)保存到磁盤,則寫入到一個(gè)名為
/usr/local/src/projx/inputs/README 的文件。
  嘗試在您的 home 目錄中生成一個(gè)新的文件:
$ emacs myfile
  請(qǐng)注意,Emacs 如何告訴您(在迷你緩沖區(qū)中)myfile 是一個(gè)新的文件。
  在該緩沖區(qū)中鍵入一些文本:
Enough! or Too much!
 
 現(xiàn)在,將該緩沖區(qū)保存到磁盤:鍵入 C-x C-s C-x C-c,以便將緩沖區(qū)保存到您的新文件,然后退出
Emacs。請(qǐng)注意,您沒有必要給出文件名(如果您訪問一個(gè)新的文件,您通常會(huì)這樣做),正如在前面的教程中所描述的,這是因?yàn)樽鳛槊钚袇?shù)您指定的是
一個(gè)文件 的名稱,而不是一個(gè)緩沖區(qū)。當(dāng)該文件不存在時(shí),Emacs 會(huì)創(chuàng)建它。(如果您退出而不保存該文件,那么 Emacs
將要求您進(jìn)行確認(rèn),盡管該文件將不復(fù)存在,但仍然會(huì)將您所編輯的內(nèi)容寫入到一個(gè)自動(dòng)保存文件。)
  打開文件并定位到某個(gè)位置
 
 如果您在一個(gè)文件名參數(shù)之前使用 +number ,那么 Emacs 將打開該文件,并將光標(biāo)移動(dòng)到 number 相對(duì)應(yīng)的行。當(dāng)您啟動(dòng)
Emacs 并希望對(duì)文件中的某個(gè)特定位置進(jìn)行編輯的時(shí)候,這種方法是非常有用的。例如,假設(shè)您正在調(diào)試一個(gè) C 程序
myprog.c,并且編譯器已經(jīng)向您發(fā)出了警告,告訴您在第 315 行存在一個(gè)錯(cuò)誤;為了在編譯器發(fā)現(xiàn)錯(cuò)誤的準(zhǔn)確行上進(jìn)行編輯,您可以鍵入
emacs +315 myprog.c,以便打開源文件到一個(gè)緩沖區(qū)中。
  如果您已經(jīng)閱讀了本系列文章中的這些教程,并鍵入了所提供的
示例,那么您應(yīng)該擁有一個(gè)名為 practice.b 的示例文件,該文件中包含 William Blake 的“The
Tiger”;如果您沒有保存它,或者在前面教程的文本操作已經(jīng)毀壞了副本,那么在本教程的下載部分中提供了可用的副本。
  嘗試打開 practice.b,并使光標(biāo)定位到第十五行:
$ emacs +15 practice.b
 。ㄊ褂 C-x C-c 退出。)
  對(duì)于在文件的結(jié)尾 處打開一個(gè)緩沖區(qū),這一選項(xiàng)同樣是非常合適的。要完成這項(xiàng)任務(wù),可以給出一個(gè)相對(duì)于該文件的長(zhǎng)度來說非常大的數(shù)字。
  嘗試打開 practice.b,并使光標(biāo)定位于文件的結(jié)尾處,:
$ emacs +999 practice.b
 。ㄊ褂 C-x C-c 退出。)
  您還可以指定在文件中的水平位置。如果您將垂直的行看作是行,那么跨越每行的水平位置就是列,并且通過在行編號(hào)(行位置)后面加上一個(gè)冒號(hào)字符(:)和表示列的數(shù)值,就可以指定水平位置。
  嘗試打開 practice.b,并使光標(biāo)定位于第三行上的第十二個(gè)字符(第十二列):
$ emacs +3:12 practice.b
  當(dāng)您執(zhí)行這個(gè)操作時(shí),光標(biāo)應(yīng)該定位于 immortal 中的 a 字符上。(然后,使用 C-x C-c 退出。)
  如果指定行所擁有的列比您指定的列要少,那么光標(biāo)不會(huì)繞到下一行,而是停留在該行的結(jié)尾處。
  如果您指定了多個(gè)文件,那么您可以在每個(gè)文件的前面加上各自的選項(xiàng),以指定希望光標(biāo)定位到的行和列。對(duì)于每個(gè)文件,缺省的行為是在一個(gè)緩沖區(qū)中打開它,并使光標(biāo)定位于該文件的第一行和第一列,這與在每個(gè)文件名的前面加上 +1:1 是等價(jià)的。
  插入文件
  使用 --insert 選項(xiàng)插入 您作為參數(shù)給出的文件的內(nèi)容。在您希望插入到的文件參數(shù)之后,給出這一選項(xiàng);如果它的前面不使用任何文件參數(shù),那么該選項(xiàng)會(huì)將給定的文件插入到一個(gè)臨時(shí)緩沖區(qū)內(nèi)。
  嘗試下面的操作:
$ emacs --insert myfile
  這個(gè)操作將使用一個(gè)臨時(shí)緩沖區(qū)啟動(dòng) Emacs,該緩沖區(qū)應(yīng)該與圖 1 中所示類似,其中插入了新的文件 myfile,并且光標(biāo)定位于緩沖區(qū)的開頭處。
  圖 1. 從命令行插入一個(gè)文件到 Emacs 緩沖區(qū)中

  (使用 C-x C-c 退出。)
  現(xiàn)在,嘗試將您的新文件插入到 practice.b 中:
$ emacs practice.b --insert myfile
  這個(gè)操作將啟動(dòng) Emacs,同時(shí)在一個(gè)新的緩沖區(qū)中打開 practice.b 文件,并且在其開頭處插入 myfile 的內(nèi)容。
  (使用 C-x C-c 退出,鍵入 n,然后鍵入 yes 以確定執(zhí)行退出操作,而不進(jìn)行保存。)
  您可以將一項(xiàng)插入操作與一個(gè)位置選項(xiàng)組合在一起,并且您可以同時(shí)給出一些附加的參數(shù)。嘗試下面的操作:
$ emacs +10:5 practice.b --insert myfile anotherfile
  這個(gè)操作將啟動(dòng) Emacs,同時(shí)使 practice.b 的內(nèi)容處于一個(gè)新的緩沖區(qū)中,在第十行的第五列插入 myfile,然后在一個(gè)新的緩沖區(qū)中打開名為 anotherfile 的新文件,并將其作為當(dāng)前緩沖區(qū)。
 。ㄊ褂 C-x C-c 退出,鍵入 n,然后鍵入 yes 以確定執(zhí)行退出操作,而不進(jìn)行保存。)
  改變顯示屬性
 
 除了指定文件操作的選項(xiàng)之外,其次最常用的 Emacs 選項(xiàng)可能就是那些與 X Window System 相關(guān)的選項(xiàng)。您可以使用這些選項(xiàng)更改
Emacs 在 X 中的顯示方式。這些選項(xiàng)中的大多數(shù)是標(biāo)準(zhǔn)的 X Window System 選項(xiàng),它們適用于所有的 X 客戶端。
  在 xterm 中運(yùn)行 Emacs
 
 與 X 相關(guān)的最有用的 Emacs 命令行選項(xiàng)之一是 -nw,您在本系列文章的第 1
部分教程(請(qǐng)參見參考資料)中曾看到過該選項(xiàng)的示例。這個(gè)選項(xiàng)在當(dāng)前終端中打開 Emacs,而不是創(chuàng)建一個(gè)它自己的新的 X
客戶端窗口。在許多情況下,該選項(xiàng)是非常有用的,例如,當(dāng)您正通過一個(gè)慢速的連接運(yùn)行遠(yuǎn)程終端窗口,并且不希望啟動(dòng)本地的 X
客戶端窗口時(shí);或者當(dāng)您正在一個(gè)終端中進(jìn)行許多操作,并且希望對(duì)一個(gè)文件進(jìn)行快速編輯,而不啟動(dòng)一個(gè)新的窗口以打開 Emacs 時(shí)。
  如果您的 X 正在運(yùn)行,那么請(qǐng)?jiān)谝粋(gè)終端窗口中嘗試執(zhí)行下面的操作:
$ emacs -nw
  當(dāng)您鍵入這一命令時(shí),Emacs 將以終端模式啟動(dòng),并且出現(xiàn)在該終端中,而不是產(chǎn)生一個(gè)新的 X 客戶端窗口。(鍵入 C-x C-c 以退出。)
  指定服務(wù)器
 
 使用 --display 選項(xiàng),以指定應(yīng)該在什么位置顯示 Emacs X 客戶端窗口。它接受 X
服務(wù)器的主機(jī)名作為一個(gè)參數(shù),后面緊跟著一個(gè)冒號(hào)和顯示編號(hào),這個(gè)顯示編號(hào)表示該主機(jī)上特定的 X 服務(wù)器的編號(hào)(它通常是 0,但根據(jù)運(yùn)行多個(gè) X
服務(wù)器的系統(tǒng)的不同,它的值也有所不同)。
  例如,這一命令在本地主機(jī)的缺省服務(wù)器上顯示客戶端,并且它與不給出任何選項(xiàng)的操作是等價(jià)的:
emacs --display :0
  要在名為 rs6000 的遠(yuǎn)程主機(jī)的缺省服務(wù)器上打開 Emacs 窗口,請(qǐng)鍵入:
emacs --display rs6000:0
  指定窗口大小
  --geometry 選項(xiàng)是另一個(gè)標(biāo)準(zhǔn)的 X 選項(xiàng)。采用以下格式,給出客戶端窗口的寬度、高度以及可選的 X 和 Y 偏移量:
WIDTHxHEIGHT[{+-}XOFFSET{+-}YOFFSET]
  從屏幕的左上角開始計(jì)算偏移量,它既可以是正值,也可以是負(fù)值。
  如果您正在一個(gè) X 服務(wù)器上運(yùn)行本教程,那么現(xiàn)在您可以嘗試它。要在您的桌面的左上角打開一個(gè) 25 個(gè)字符寬和 250 個(gè)字符高的長(zhǎng)窗口,請(qǐng)鍵入:
$ emacs --geometry 25x250+0+0
 。ㄊ褂 C-x C-c 退出。)
  設(shè)置 Emacs 的字體和顏色
  您可以使用其他的標(biāo)準(zhǔn) X 選項(xiàng)以便使用指定的文本字體、顏色(前景),以及其后的空白區(qū)(背景)啟動(dòng) Emacs。
  要指定一種字體,可以給出一種 X 字體名作為 --font 選項(xiàng)的引號(hào)括起來的參數(shù)?梢酝ㄟ^大量的選項(xiàng)(請(qǐng)參見表 1)來指定顏色。
  表 1. 用于指定顏色的 Emacs 命令行選項(xiàng)
選項(xiàng)描述--foreground-color color
  -fg color
設(shè)置前景顏色為 color。--background-color color
  -bg color
設(shè)置背景顏色為 color。--border-color color
  -bd color
設(shè)置邊框顏色為 color。--cursor-color color
  -cr color
設(shè)置光標(biāo)顏色為 color。--mouse-style color
  -ms color
設(shè)置鼠標(biāo)指針顏色為 color。
  您還可以組合使用字體和顏色選項(xiàng)。嘗試一次設(shè)置所有這些選項(xiàng):
$ emacs -fn "-misc-fixed-medium-r-normal-ja-13-120-75-75-c-120-iso10646-1"
-bg "sea green" -fg "white" -cr "brown1" -ms "royalblue1" practice.b
  這一命令在一個(gè) X 客戶端窗口中啟動(dòng) Emacs,它與圖 2 中所示類似。
  圖 2. 指定 Emacs 的顏色和字體

  您可以使用哪些特別的字體和顏色,這取決于您的 X 服務(wù)器及其配置。
  控制啟動(dòng)文件
 
 Emacs 允許您運(yùn)行一個(gè)啟動(dòng)文件,該文件也稱為初始化文件,它可以包含要執(zhí)行的 Emacs Lisp
代碼,并且通常用于設(shè)置各種屬性和變量,您可以使用它來自定義您的編輯環(huán)境。它是一個(gè)名為 .emacs 的隱藏文件,位于您的 home
目錄中。(自定義您的 .emacs 文件是本系列文章中后續(xù)教程的一個(gè)主題。)
  通過給定 -q 選項(xiàng),您可以指定 Emacs
不運(yùn)行任何現(xiàn)有的啟動(dòng)文件。當(dāng)您希望運(yùn)行一個(gè) Emacs 會(huì)話,而不使用任何已有的自定義設(shè)置時(shí);當(dāng)您正在使用一個(gè)新的 Emacs
功能時(shí);當(dāng)某處出現(xiàn)了奇怪的行為時(shí);或者您不確定是否您自己的某個(gè)自定義設(shè)置是導(dǎo)致問題的原因時(shí),對(duì)于調(diào)試新添加到您的啟動(dòng)文件中的內(nèi)容,這個(gè)選項(xiàng)是非常
有用的:
emacs -q
  因?yàn)槊總(gè)人的 .emacs
文件是不同的,所以您可能希望嘗試使用其他人的啟動(dòng)文件,以實(shí)現(xiàn)相應(yīng)的更改,并觀察其他人如何自定義他們的編輯環(huán)境。您可以使用 -u
選項(xiàng)來完成這一任務(wù),給定該用戶的名稱作為這個(gè)選項(xiàng)的參數(shù)。這對(duì)于試驗(yàn)本地 Emacs 向?qū)У淖远x設(shè)置是非常有用的,例如用戶 joe:
emacs -u joe
 
 只要這個(gè) .emacs 啟動(dòng)文件對(duì)您來說是可讀的,那么該命令將使用用戶 joe 的 home 目錄中 .emacs 啟動(dòng)文件來啟動(dòng)
Emacs。如果用戶 joe 并不存在,且沒有這個(gè) .emacs 文件,或者該文件是不可讀的,那么 Emacs 在啟動(dòng)時(shí)將不使用任何初始化文件。
  Emacs 還有一個(gè)全局啟動(dòng)文件 site-start.el,它通常保存在 /etc/emacs/ 目錄樹中。--no-site-file 選項(xiàng)將啟動(dòng) Emacs,而不執(zhí)行該文件中的 Emacs Lisp。
  最后,--debug-init 將啟用 Lisp 調(diào)試器,以便檢查您的啟動(dòng)文件,當(dāng)您正在向它添加某些內(nèi)容并且出現(xiàn)了問題時(shí),這一操作是非常有用的。您甚至可以使用它來調(diào)試另一個(gè)用戶的啟動(dòng)文件:
emacs -u joe --debug-init
  為 Emacs Lisp 的執(zhí)行使用選項(xiàng)
  Emacs 提供了一些用于 Lisp 代碼執(zhí)行的命令行選項(xiàng);當(dāng)您正以批處理模式運(yùn)行 Emacs 時(shí),這些選項(xiàng)特別有用,如下所述。
 
 使用 -l 加載一個(gè) Lisp 文件,給出該文件的名稱作為參數(shù)。Emacs 首先在當(dāng)前目錄中查找該文件,然后在 EMACSLOADPATH
環(huán)境變量(如果設(shè)置了的話)中的任何目錄中查找。要從文件系統(tǒng)的其他地方加載一個(gè) Lisp 文件,可以給出完整的路徑名作為參數(shù)。
  要從命令行運(yùn)行 Emacs Lisp 函數(shù),可以使用 -f 選項(xiàng),并給出 Lisp 函數(shù)的名稱,以將其作為一個(gè)選項(xiàng)來執(zhí)行。如果該函數(shù)帶有任何參數(shù),那么請(qǐng)確保提供這些參數(shù)。
  例如,嘗試啟動(dòng) Emacs,并運(yùn)行 phases-of-moon 函數(shù):
$ emacs -f phases-of-moon
  當(dāng)您在執(zhí)行這一操作時(shí),您的 Emacs 會(huì)話應(yīng)該與圖 3 中所示類似,在 Emacs X 客戶端中有兩個(gè)窗口:一個(gè)臨時(shí)緩沖區(qū)和一個(gè)包含當(dāng)前月相的日期的窗口。(使用 C-x C-c 退出。)
  圖 3. 使用 phases-of-moon 函數(shù)啟動(dòng) Emacs

  要啟動(dòng) Emacs 并執(zhí)行 一個(gè) Lisp 表達(dá)式,可以使用 --eval 選項(xiàng);并在其后緊跟一個(gè)用引號(hào)括起來的 Lisp 表達(dá)式。
  例如,嘗試使用您的新文件啟動(dòng) Emacs,移動(dòng)到緩沖區(qū)的末尾,并執(zhí)行 Lisp 代碼 (insert (current-time-string)),它會(huì)將當(dāng)前時(shí)間和日期插入到當(dāng)前緩沖區(qū)中:
$ emacs +999 myfile --eval "(insert (current-time-string))"
 。ㄊ褂 C-x C-c 退出,鍵入 n,然后鍵入 yes 以確定執(zhí)行退出操作,而不進(jìn)行保存。)
  執(zhí)行批處理操作
  您可以采用批處理模式運(yùn)行 Emacs,以實(shí)現(xiàn)非交互處理。當(dāng)您給出 --batch 選項(xiàng)時(shí),Emacs 將不對(duì)標(biāo)準(zhǔn)輸出進(jìn)行寫操作,并且它將從標(biāo)準(zhǔn)輸入(而不是迷你緩沖區(qū))中獲得輸入。(它仍然會(huì)對(duì)標(biāo)準(zhǔn)錯(cuò)誤進(jìn)行寫操作。)
  通常,您可以使用 -l 或者 -f 選項(xiàng),正如剛才所介紹的,使用 --batch 以執(zhí)行 Lisp 代碼或者以非交互方式運(yùn)行相應(yīng)的函數(shù)。如果您使用 --batch 調(diào)用 Emacs,并且沒有使用任何其他選項(xiàng),那么 Emacs 將立刻退出。
  否則,Emacs 將執(zhí)行給定的命令,直到一個(gè)導(dǎo)致退出的命令、或者直到它碰到一個(gè) --kill 選項(xiàng),該選項(xiàng)將立刻退出 Emacs,可以將它放在命令行的結(jié)尾,以便在完成批處理操作時(shí)退出 Emacs。
  嘗試采用批處理模式運(yùn)行 Emacs,以便將 myfile 的內(nèi)容插入到 practice.b的第三十五行,使用 save-buffer 函數(shù)保存它,然后退出:
$ emacs --batch +35 practice.b --insert myfile -f save-buffer --kill
  現(xiàn)在,查看您的 practice.b 文件,它應(yīng)該包含額外的一行內(nèi)容。
  您可以簡(jiǎn)單地使用另一個(gè) Emacs 單行程序刪除該行。嘗試下面的操作:
$ emacs --batch +35 practice.b -f kill-line -f save-buffer --kill
  不要忘記查看 practice.b,并確保已經(jīng)刪除額外的行。
  命令行選項(xiàng)表
  表 2 總結(jié)了到目前為止所介紹的眾多 Emacs 命令行選項(xiàng),給出了它們的長(zhǎng)、短選項(xiàng)名(如果適用的話),并描述了它們的功能。
  表 2. Emacs 命令行選項(xiàng)
選項(xiàng)描述--visit=filespec
  --file=filespec
  filespec
打開 filespec 到各自的緩沖區(qū),以進(jìn)行編輯。+row[:column] 將光標(biāo)移動(dòng)到該文件中的 row 行和(可選的)水平位置 column 列(缺省值是 +1:1)。--insert file將文件 file 插入到緩沖區(qū)的開頭。--debug-init 對(duì) .emacs 啟動(dòng)文件使用 Lisp 調(diào)試器。--no-init-file
  -q
不運(yùn)行任何 .emacs 啟動(dòng)文件。--no-site-file 不運(yùn)行全局 site-start.el 文件。-u user
  --user user
使用用戶 user 的 .emacs 啟動(dòng)文件。--funcall function
  -f function
執(zhí)行 Emacs Lisp 函數(shù)。--eval expression
  --execute expression
執(zhí)行 Emacs Lisp 表達(dá)式 expression。--load file
  -l file
執(zhí)行文件 file 中的 Emacs Lisp 指令。-batch
  --batch
使用批處理(非交互)模式。-kill
  --kill
當(dāng)處于批處理模式時(shí),退出 Emacs。--name name 使用 name 作為 Emacs X 客戶端窗口的名稱(缺省值是“emacs”)。-T title
  --title title
使用 title 作為 Emacs X 客戶端窗口的標(biāo)題(缺省值是 name@FQDN,其中 FQDN 是該主機(jī)的完全限定域名)。--reverse-video
  -r
使用反向顯示方式,交換前景和背景的顏色。--iconic
  -iconic
啟動(dòng) Emacs,并將其作為一個(gè)圖標(biāo),而不是一個(gè)活動(dòng)窗口。--icon-type
  -i
當(dāng)圖標(biāo)化 Emacs 窗口時(shí),使用 Emacs 圖標(biāo)(通常是 /usr/share/emacs/version/etc/gnu.xpm),而不是窗口管理器的任何缺省值。-fn name
  -font name
使用 name 作為 Emacs 窗口字體。--border-width width
  -bw width
將窗口邊框設(shè)置為 width 像素。--internal-border width
  -ib width
將窗口內(nèi)部邊框設(shè)置為 width 像素。--g dimensions
  --geometry dimensions
根據(jù)給定的 X 窗口尺寸 dimensions(生成窗口的缺省值是 80x40 個(gè)字符)設(shè)置窗口的寬度、高度和位置。--foreground-color color
  -fg color
將前景色設(shè)置為 color。--background-color color
  -bg color
將背景色設(shè)置為 color。--border-color color
  -bd color
將邊框顏色設(shè)置為 color。--cursor-color color
  -cr color
將光標(biāo)顏色設(shè)置為 color。--mouse-color color
  -ms color
將鼠標(biāo)指針顏色設(shè)置為 color。-d name
  --display name
在與 name 相對(duì)應(yīng)的 X 顯示器上打開 Emacs 窗口。-nw
  --no-windows
在 X 中,不使用 X 客戶端窗口,而是在當(dāng)前終端窗口中打開。這一選項(xiàng)不影響控制臺(tái)會(huì)話。-t file
  --terminal file
將標(biāo)準(zhǔn) I/O 重定向到文件 file,而不是終端。
  使用 Emacs 寄存器
  您已經(jīng)知道,使用您在本系列文章的上一個(gè)教程中所學(xué)的技術(shù)(請(qǐng)參見參考資料),您可以返回到標(biāo)記處,并且您可以返回到標(biāo)記環(huán)中的任何位置。但是除此以外,您還可以通過另一種 Emacs 工具,在緩沖區(qū)中設(shè)置任意多個(gè)位置,并在任何時(shí)候移動(dòng)到這些位置:寄存器。
 
 Emacs 寄存器
是通用的存儲(chǔ)機(jī)制,它可以存儲(chǔ)很多內(nèi)容中的一項(xiàng),包括文本、矩形區(qū)塊、緩沖區(qū)中的位置,或者某些其他值或設(shè)置。每個(gè)寄存器都有一個(gè)標(biāo)簽,您可以使用單個(gè)字
符來引用寄存器?梢灾囟x寄存器,但是它一次只能包含一項(xiàng)內(nèi)容。一旦您退出 Emacs,將清空所有的寄存器。
  您可以插入保存在寄存器中的文本。當(dāng)您重新獲得寄存器的設(shè)置或者配置時(shí),我們稱其為恢復(fù) 該寄存器;如果寄存器包含一個(gè)您希望返回的緩沖區(qū)中的位置,我們稱其為跳轉(zhuǎn) 至該寄存器中保存的位置。
  所有的 Emacs 寄存器命令都是以 C-x r 開頭的。
  本文接下來的部分將向您介紹用于設(shè)置、查看、恢復(fù)和跳轉(zhuǎn)至寄存器的命令。
  保存一個(gè)寄存器
  要在一個(gè)寄存器中保存當(dāng)前光標(biāo),可以運(yùn)行 point-to-register 功能,它與 C-x r space 進(jìn)行了綁定,同時(shí)給出寄存器的名稱,它可以是任何字母數(shù)字字符。寄存器的名稱是區(qū)分大小寫的,x 和 X 指的是兩個(gè)不同的寄存器。
  要將一個(gè)區(qū)域 復(fù)制到寄存器,可以使用 copy-to-register 功能,它與 C-x r s 進(jìn)行了綁定。
  要將一個(gè)矩形區(qū)塊復(fù)制到寄存器,使用 copy-rectangle-to-register 功能,它與 C-x r r 進(jìn)行了綁定。
  嘗試將當(dāng)前光標(biāo)保存到寄存器 X 中:
  啟動(dòng) Emacs,并使光標(biāo)定位于練習(xí)文件的第二行的第九個(gè)字符,即單詞 forests 中的字符 o 處:
$ emacs +2:9 practice.b
  鍵入 C-x r space X 以便在寄存器 X 中保存光標(biāo)位置。
  查看一個(gè)寄存器
  使用 view-register 功能查看寄存器中的內(nèi)容。
  嘗試查看寄存器 X 中的內(nèi)容:
  鍵入 M-x view-register 并按 Enter。
  當(dāng)在迷你緩沖區(qū)中提示您時(shí),鍵入 X 作為要進(jìn)行查看的寄存器。寄存器的名稱始終是單個(gè)字符,所以您無需按 Enter。
  當(dāng)您運(yùn)行這一功能時(shí),將打開一個(gè)新的窗口,以顯示寄存器 X 中所包含的內(nèi)容,在這個(gè)示例中,是您的 practice.b 緩沖區(qū)中的一個(gè)光標(biāo)位置。鍵入 C-x 1 以關(guān)閉該窗口。
  跳轉(zhuǎn)至一個(gè)寄存器
  要跳轉(zhuǎn)至您保存在一個(gè)寄存器中的光標(biāo),或者要恢復(fù)一個(gè)窗口或框架配置,可以使用 jump-to-register 功能,它與 C-x r j 進(jìn)行了綁定。
  嘗試跳轉(zhuǎn)至您已保存在寄存器 X 中的光標(biāo)位置:
  鍵入 M->,以移動(dòng)到緩沖區(qū)的末尾,遠(yuǎn)離您已經(jīng)保存的光標(biāo)位置。
  鍵入 C-x r j X 以跳轉(zhuǎn)至保存的光標(biāo)位置,F(xiàn)在,您返回到了 forests 中。
  恢復(fù)一個(gè)寄存器
 
 從一個(gè)寄存器恢復(fù)文本,無論是區(qū)域還是矩形區(qū)塊,其操作方式是不同的。要從寄存器插入一個(gè)文本區(qū)域或者矩形區(qū)塊,可以使用
insert-register 功能,它與 C-x r i
進(jìn)行了綁定。它在光標(biāo)處插入寄存器中的文本,并保持光標(biāo)位于插入的內(nèi)容之前。如果您給出的寄存器是一個(gè)光標(biāo)位置,那么將在光標(biāo)處插入該位置編號(hào)(緩沖區(qū)中
字符的數(shù)目)。
  嘗試下面的操作:
  單擊并拖曳鼠標(biāo)左鍵,選中 and what art,以便將這三個(gè)單詞標(biāo)記為一個(gè)文本區(qū)域。
  將該區(qū)域保存到寄存器 q:鍵入 C-x r s q。
  移動(dòng)到緩沖區(qū)尾,并插入一個(gè)空白行:鍵入 M-> 并按 Enter。
  插入您剛剛保存的寄存器的內(nèi)容:鍵入 C-x r i q。請(qǐng)注意,光標(biāo)設(shè)置到您所插入的文本的開頭,而不是該文本的結(jié)尾。
  插入早些時(shí)候保存的寄存器 X 中的內(nèi)容,其中包含光標(biāo)的位置:鍵入 C-x r i X。
  如果您已經(jīng)執(zhí)行了本教程中的所有示例,那么您的 Emacs 會(huì)話應(yīng)該與圖 4 中所示類似。
  圖 4. 恢復(fù)文本內(nèi)容和位置寄存器

  所恢復(fù)的編號(hào) 38 表示 forests 中的 o(寄存器 X 的光標(biāo)位置)是緩沖區(qū)中的第三十八個(gè)字符。通過在該文件中從第一個(gè)位置開始將光標(biāo)向前移動(dòng) 37 個(gè)字符,您可以驗(yàn)證它:
M-
  Emacs 寄存器命令表
  表 3 列出了使用 Emacs 寄存器的各種命令和鍵,給出了它們的功能名,并描述了它們的含義。
  表 3. 使用寄存器的 Emacs 命令
鍵盤輸入功能描述C-x r space X point-to-register 將光標(biāo)保存到寄存器 X。C-x r s X copy-to-register 將區(qū)域保存到寄存器 X。C-x r r X copy-rectangle-to-register 將選定的矩形區(qū)塊保存到寄存器 X。未定義 view-register 查看一個(gè)給定的寄存器的內(nèi)容。C-x r j X jump-to-register 將光標(biāo)移動(dòng)到寄存器 X 中給定的位置。C-x r i X insert-register 在光標(biāo)處插入寄存器 X 的內(nèi)容。
  使用 Emacs 書簽
 
 Emacs 提供了保存緩沖區(qū)中位置的另一種工具。這些 Emacs 書簽
的工作方式與寄存器相同,但是它們的標(biāo)簽可以超過一個(gè)字符長(zhǎng),而且它們比寄存器更為持久:如果保存了書簽,那么您可以在兩個(gè)不同的會(huì)話之間使用它們。它們
將一直保留下來,直到您刪除它們。正如它們的名稱所表示的,對(duì)于保存您在緩沖區(qū)中的位置,以便您稍后可以返回到該位置(通常是在以后的 Emacs
會(huì)話期間),使用書簽是非常方便的。
  這個(gè)部分將向您介紹使用、設(shè)置、列出、保存和刪除 Emacs 書簽。
  設(shè)置一個(gè)書簽
  對(duì)于保存光標(biāo)位置,書簽與寄存器是很相似的,不同之處在于書簽?zāi)軌虮3值疆?dāng)前會(huì)話之外。對(duì)于標(biāo)記您在文件中的位置,并在稍后返回到該位置,書簽是非常方便的,您可以為很多文件設(shè)置書簽,并且您可以在單個(gè)文件中設(shè)置很多書簽。
  要在當(dāng)前緩沖區(qū)中,為您正在訪問的文件的當(dāng)前光標(biāo)設(shè)置一個(gè)書簽,可以運(yùn)行 bookmark-set 功能,它與 C-x r m 進(jìn)行了綁定。
  這一命令后面緊跟您的書簽的名稱;在缺省情況下,它就是當(dāng)前緩沖區(qū)的名稱。
  現(xiàn)在,嘗試保存一些書簽:
  啟動(dòng) Emacs,并使光標(biāo)定位于您的練習(xí)文件中的第 20 行:
$ emacs +20 practice.b
  鍵入 C-x r m 以便將這個(gè)光標(biāo)作為書簽保存。
  當(dāng) Emacs 請(qǐng)求為這一書簽提供相應(yīng)的名稱時(shí),可以按 Enter 以使用該緩沖區(qū)的名稱 (practice.b)。
  鍵入 M-鍵盤輸入功能描述C-x r m Bookmark bookmark-set 設(shè)置一個(gè)名為 Bookmark 的書簽。C-x r l bookmarks-bmenu-list 列出所有已保存的書簽。
bookmark-delete 刪除一個(gè)書簽。C-x r b Bookmark bookmark-jump 跳轉(zhuǎn)至名為 Bookmark 的書簽中所設(shè)置的位置。未定義 bookmark-save 將所有的書簽保存到書簽文件 ~/.emac.bmk 中。
  總結(jié)
 
 本教程是關(guān)于使用 Emacs 編輯環(huán)境的系列文章的第 4 部分,在本教程中您了解了如何使用 Emacs 控制編輯會(huì)話某些方面的三個(gè)部分:?jiǎn)?dòng)
Emacs 時(shí)許多可用的命令行選項(xiàng)、功能強(qiáng)大的 Emacs
寄存器、用于設(shè)置和保存位置以及數(shù)據(jù)的書簽工具。您還了解了許多功能強(qiáng)大的編輯技術(shù),這些技術(shù)將使您成為一名工作效率更高的 Emacs 用戶。
  本系列文章的后續(xù)教程建立于您在本教程中所學(xué)到的知識(shí)的基礎(chǔ)之上,并且將引導(dǎo)您更深入地掌握這一功能全面的編輯應(yīng)用程序。
         
         
               
               
               

本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/16015/showart_2149856.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP