在emacs下復制粘貼是這樣的。
1、在任一行中按下ctrl+space鍵,最底行會顯示 Mark set 表示已經開始標記了。
2、移動鼠標或者選中文字然后,可以有兩種方式:Alt+w (復制) 或者 Ctrl+w (剪切)。如果您選擇復制,Emacs 會先回到標記的位置,讓您查看選中的區域。
3、最后,移動到您想要這段文本結束的地方並按下 Ctrl+y。
但是,ctrl+space鍵和輸入法會有沖突,我是這樣解決的,我用ctrl+回車來解決
在~/.emacs文件中添加代碼即可。
;; C-SPACE 被輸入法占用,C-@ 又太難按,於是把 set mark 綁定到 C-return
(define-key global-map [C-return] 'set-mark-command)
要查找文本,移動到相應的緩沖區並按 Ctrl+s
要查找並替換,請按 Alt+%。Emacs 會詢問查找哪個字符串,用什么來替換它,以及在每個匹配點要求確認替換。
按下 Ctrl+x u 將撤消上一步操作。想撤消多少步都可以。
退出 Emacs 的快捷鍵是 Ctrl+x Ctrl+c。如果您還未保存您的更改,Emacs 會詢問您是否想要保存您的緩沖區。
查看目前的$HOME可在EMACS下c-x c-f,輸入~表示到默認$HOME目錄,即可看到.emacs文件
轉自http://blog.chinaunix.net/uid-24948934-id-59824.html
更多細節:
http://blog.chinaunix.net/uid-9525959-id-2001558.html、
這里是對Emacs中的簡易教程的翻譯和總結。
Emacs簡易教程閱讀:
命令:
$emacs
進入之后,輸入:
C-h t
這里,C-h表示按住[Ctrl]鍵的同時按h
#######
20090620
*退出:
輸入“C-x C-c”
*撤銷:
輸入"C-x u"
或輸入"C-_"
這里,"C-_"比較好輸入一些(好像C--也行),但是有的鍵盤上面沒有"_"就只能輸入“C-x u”了,撤銷動作能進行20次。
*向上翻頁:
輸入"M-v"
這里,右手的M好像不好使?
*向下翻頁:
輸入"C-v"
*刷新屏幕:
輸入"C-l"
這里,l不是1,執行之后光標和相應文字都跑到屏幕中間。
*基本移動光標:
C-f 向前移動一個字符。
C-b 向后移動一個字符。
M-f 向前移動一個單詞。
M-b 向后移動一個單詞。
C-n 移動到下一行。
C-p 移動到上一行。
C-a 移動到行首。
C-e 移動到行尾。
M-a 向前移動到句子的開頭,可能跨多行或一行都不到。
M-e 向后移動到句子的末尾,可能跨多行或一行都不到。
從以上幾個命令可知,M是和語言相關的控制鍵,C之后基本單元有關。Emacs有個特點,就是你移動光標的時候,如果光標超出了屏幕范圍(向上或者向下),則立刻將光標及附近文字居屏幕中央。
*重復一定次數的操作:
輸入"C-u <數字> <你想要重復操作的命令或輸入的字符>"
這里,
C-u <數字>是一個“前綴”,數字是要執行后面的命令的次數;例如"C-u 8 C-p"表示向前8行。
多數命令把這個“前綴”做為重復,但是有些特殊命令不是這樣,以后會遇到的。
C-v和M-v加上這個數字表示的是把屏幕移動多少行而不是翻多少頁。
*終止現在正在執行的命令:
輸入"C-g"
*關掉其它窗口,只顯示光標所在窗口:
輸入"C-x 1"
在多窗口的時候,這樣就會把所有窗口關掉,只顯示一個窗口了。
*讓光標所在行跑到屏幕頂部:
輸入"C-u 0 C-l"
*查看C-f的文檔解釋:
輸入"C-h k C-f"
這樣,將新開一個窗口顯示該命令(C-f)的解釋,其它命令解釋類似。
*基本刪除操作:
<Delback> 刪除光標前面的字符,不可再粘貼
M-<Delback> 除去光標前面的單詞
C-d 刪除光標后面的字符,
M-d 除去光標后面的單詞
C-k 除去從光標位置到行尾的內容,可再粘貼
M-k 除去到當前句子的末尾
####閱讀至386行
###########
20090621
*kill一個塊的內容:
1)在塊的一端輸入"C-<SPC>"或"C-@".
這樣將設定一個標記。
2)在塊的另一端輸入"C-w".
至此,這個塊(在兩端之間的部分)將被刪除。
kill和delete的區別是,kill掉的部分可以被粘貼上去,類似剪切。
*kill當前行的光標和光標之后的部分:
輸入“C-k”
這樣,會刪除相應包括光標所在內容,再按"C-k"刪除換行符號。
*粘貼最近kill方式刪除的文本:
輸入"C-y"
*粘貼前幾次某次kill刪除的文本:
1)先輸入"C-y"
這樣會把最近的kill刪除的文本粘貼回來。
2)多次輸入"M-y"
這樣,會不斷用之前的kill刪除的文本來替換當前剛剛粘貼上去的文本(循環的),這樣一直進行下去,直到粘貼上之前某次刪除的文本。
*打開一個文件yourfilename:
命令行下:$emacs yourfilename
或者emacs下輸入:"C-x C-f <yourfilename>"
這樣,如果文件名不存在則新建一個,第二個命令"C-x C-f"后有提示讓你輸入待打開的文件的路徑,當前的文件沒有保存也不會提示但是退出時候會提示你剛才載入新文件之前沒有保存的文件是否保存,沒新打開一個文件emacs會新建立一個buffer存放該文件。
*保存一個文件:
輸入“C-x C-s”.
這樣會保存文件,如果沒有保存則提示。如果你沒有保存文件,底部的提示行會用*表示未保存。
*查看emacs所有的buffer列表:
輸入"C-x C-b"
這樣,會顯示一個buffer列表,每項顯示打開的一個文件的名字。
*切換到相應buffer列表:
輸入"C-x b <buffer列表名>"
這里,"C-x b"之后直接輸入buffer列表名字,比"C-x C-f"的方式切換簡單多了。
*保存buffer內容:
輸入"C-x s"
這樣,輸入"C-x s"之后,會依次詢問你那些被改變的沒有保存的buffer文件是否保存,你只需要回答就行了。
##########閱讀至650行
#######
*替換字符串:
1)輸入"M-x "
這樣,提示你輸入替換命令,可以用<TAB>自動補全。
2)輸入"repl s<TAB>"
這里就是利用<TAB>來自動補全命令的,如果不補全回車的話,命令唯一則也行。
3)輸入“<Return>”
回車<Return>之后,提示要你輸入要替換的字符。
4)輸入"要替換的字符"
5)輸入"<Return>"
回車<Return>之后,提示要你輸入要替換成的字符。
6)輸入"要替換成的字符"
7)輸入"<Return>"
*自動保存功能:
emacs提供自動保存功能,例如當你修改“hello.c”文件的時候,它會生成一個“#hello.c#”文件(稱做自動保存文件),並且周期的向這個文件寫入最新數據,當你保存文件的時候,emacs才會刪掉這個文件。當你機器掛掉的時候,你可以利用這個文件進行恢復。
*利用自動保存文件恢復文件:
假設文件hello.c的自動保存文件是#hello.c#恢復步驟如下:
1)輸入"M-x"
這樣,提示你輸入恢復命令,可以用<TAB>自動補全。
2)輸入"recover<TAB>"
這樣會自動補全為recover-file
3)輸入"<Return>"
4)輸入"hello.c"
這里輸入的就是要恢復的文件名,而不是#hello.c#
5)輸入"yes"
這里根據提示輸入"yes"表示確認恢復。
*轉換主要顯示模式:
假設轉換為fundamental模式,步驟如下:
1)輸入“M-x”
2)輸入“fundamental<TAB>”
這里輸入的是模式的名稱,利用<TAB>自動補全。
3)輸入“<Return>”
這樣就把模式轉換成為fundatmental模式了。emacs中有幾種不同的主要模式,它們用來編輯的不同類型的文本,當前所處的主要模式的名稱顯示在底部的狀態欄上面,不同的主要模式中的命令行為稍微不同。例如:text模式在M-f和M-b的時候,把頓號也視為單詞的一部分,而fundatmental模式把頓號視為分隔符號等等,不過命令大體行為是一樣的。
*查看你當前主要模式下的幫助文檔:
輸入"C-h m"
*打開關閉次要模式:
假設打開關閉的是Auto Fill mode,步驟如下:
1)輸入"M-x"
2)輸入"auto-fill-mode"
3)輸入"<Return>"
回車之后,就會打開或者關閉auto-fill-mode模式(切換),這個模式在human-language text編輯中非常有用,該模式為on的時候,當一行單詞數目過多的時候,它會在最后一個單詞尾(注意就是必須要整個單詞接空格的那種)自動插入換行而不是續行符號。
既然有主要模式,當然也有次要模式,次要模式並不能替代主要模式,它們只是一些類似“選項”的東西來稍微改變主模式的行為,能夠獨立於主模式或者其它次要模式來打開和關閉。
*改變一行的填充(不明白?):
假設改變為20,輸入如下:
1)輸入"C-u 2 0 C-x f"
2)輸入"M-q"
這樣設置后auto-fill-mode不管用了,想要重新re-fill,要在當前段內輸入M-q。 會發現該段變成了每行20個字符。
##########閱讀至850行
#######
*搜索:
假設搜索“cursor”,步驟如下:
1)輸入 “C-s”
這時候,底部會出現一個提示,提示你輸入要搜索的字符串
2)輸入“<你要搜索的字符串>”
這時候,你會發現,隨着你的輸入,emacs會高亮相應的匹配並且光標向后跳到最近匹配,當你搜索的時候刪除一個字符,emacs會跳到上次光標搜索的單詞處(少一個字符的),當刪成了空的時候,應該光標就跳回到最開始你搜索之前的位置了。
3)輸入"C-s"
這樣會把光標跳到下一個匹配的字符串。
4)輸入"<Return>"
回車之后,會結束搜索(下次連續兩個"C-s"會繼續搜索上次的搜索字符串)。
注意,有的系統會把"C-s"解釋為鎖屏,而不等把命令傳給emacs,這時你可以按C-q停止鎖屏,然后查看文檔的“Spontaneous Entry to Incremental Search”部分。
*反向搜索:
方法同“搜索”的方法,不過把"C-s"改成了"C-r"
*把當前光標及所在行設置為屏幕中第一行:
輸入"C-u 0 C-l"
這里是小寫L不是1。
*分割窗口:
輸入“C-x 2”
這樣會水平把當前窗口分割成為兩個,可以兩個窗口顯示不同的文件。
*光標在當前窗口,給底部的窗口翻頁:
輸入“C-M-v”
或者輸入“<Esc> C-v”
這里,emacs處於水平分割為兩個窗口的狀態,當前光標在上面的窗口中,然后這個命令會給下面的窗口翻頁;如果光標在下面的窗口中會給上面的窗口翻頁;注意如果你沒有M控制鍵(就是Alt)那么你要實現這個功能就用第二個方法,先輸入<Esc>再C-v。
*在分割的上下兩個窗口間切換:
輸入“C-x o”
這樣,光標會在上下兩個窗口之間切換。
*分割一個窗口載入另外一個文件:
輸入“C-x 4 C-f <你的文件名>”
*當你處於recursive edit level的時候,你不能夠利用C-g來取消命令了,那么你需要利用<Esc><Esc><Esc>(或者更多次)來取消,據說這個模式下會用方括號把模式括起來,例如用[(Fundamental..)]替代(Fundamental)但是實際上我看似乎不是這樣啊?
##########閱讀至995行
#######
*如何獲得更多的幫助:
輸入“C-h ?”
或輸入“M-x help <Return>”
一般用第一個,如果第一個不好用,就用第二個,<Return>表示回車。
*查看某個命令按鍵或者命令次序簡單的幫助:
假設查看C-p的信息:
輸入:"C-h c C-p"
這里,會顯示一條描述該命令(C-p)的簡短信息。關鍵是先輸入"C-h c",再輸入命令。
*查看某個命令按鍵或者命令次序詳細的幫助:
假設查看C-p的信息:
輸入:"C-h k C-p"
這里會顯示該命令(C-p)的詳細信息。關鍵是輸入“C-h k”,再輸入命令。
##########閱讀至1050行
#######
20090808
*查找一個函數的功能:
輸入“C-h f”
然后輸入一個特定的emacs函數。
*列出部分匹配:
輸入"C-h a"
之后,輸入一個詞,會列出包含這個詞的所有命令(meta鍵激起的)
*在線info手冊:
輸入"C-h i"
這樣,會打開info如果查看emacs輸入“m emacs”,如果不知道作甚么,那么輸入'?'可以顯示一些info基本的操作。
