這個世界最強是個怎麼樣的強法呢?一說:Emacs是一種“信仰”。另說:世界上的程序員分三種,一種使用Emacs,一種使用vim,剩餘的是其它。(完全無視其他編輯器的存在……)
- 基本命令:
C-x C-c : 退出Emacs
C-x C-f : 打開一個文件,如果文件不存在,則創建一個文件
C-x d 進入Dired列表模式
C-x C-d 獲取文件列表(簡潔)
C-x C-f 打開文件,輸入路徑爲打開目錄
C-g : 取消未完成的命令 - 編輯:
C-x u :取消上一次操作,如果取消N次操作: C-u N C-_
C-x i : 插入文件內容
C-t : 交換兩個字符
M-t : 交換兩個詞
C-x C-t : 交換兩行
C-x C-u : 轉換成大寫字母
C-x C-l : 轉換成小寫字母
M-c :把光標右邊的單詞的首字母轉換爲大寫,如果光標在一個單詞內,則把光標所在字母轉換爲大寫
M-u :把光標右邊的單詞轉換爲大寫,如果光標在一個單詞內,則把這個單詞右邊的部分轉換爲大寫
M-l : 轉換成小寫字母
C-c C-a : 開啓/關閉自動縮進模式,如同 M-x c-toggle-auto-state - 移動光標:
C-v : 向前翻頁
M-v : 向後翻頁
M-r : 將光標移動到屏幕中間那行
C-a : 移到行首
C-e : 移到行尾
M-a : 移到句首
M-e : 移到句尾
M-{ : 向上移動一段
M-} : 向下移動一段
M-< : 移到整個文本開頭
M-> : 移到整個文本末尾
C-p : 向上移動一行,p 代表 previous
C-n : 向下移動一行,n 代表 next
C-f : 向前移動一個字,f 則代表 forward
C-b : 向後移動一個字,b代表 backward
C-u 數字 命令 : 執行多次(數字表示次數)該命令
C-l : 重繪屏幕,效果就是當前編輯行移動窗口中央,刷新
C-M-/ : 用c-x h 選定整個buffer後, 然後可以對代碼進行重新排版
M-; 對當前行進行註釋
C-x C-x :快速返回移動前的光標位置
C-c C-c :對一塊代碼進行註釋;
uncomment-region :取消註釋用命令 - Buffer 相關
C-x h : 選中整個緩衝區的內容,您會發現狀態欄和編輯器底部之間的區域出現 Mark set 字樣
C-x k : 關閉當前buffer
C-x b : 切換到前一個編輯的buff
C-x C-b : 列出當前所有buffer
C-x C-s : 保存當前buffer
C-x s : 保存所有未保存的buffer,會提示你是否需要保存
C-x C-w : 文件另存爲
C-mouse:按住Ctrl並單擊鼠標左鍵,會彈出一個Buffer Menu,它會按主模式類型列出活動的buffer供你選擇。
M-x kill-some-buffers:刪除一些buffer; - 拷貝與粘貼
C-@ : 設置mark ,或使用 M-x set-mark-command
C-w : 剪切一塊區域;如果沒有設置mark,則是剪切一行
M-w : 拷貝一塊區域;如果沒有設置mark, 則是拷貝一行
M-d : 刪除光標後的詞語
C-d : 刪除一個字符
C-k : 從當前位置剪切到行尾
C-y : 粘貼
M-y : 用C-y拉回最近被除去的文本後,換成 M-y可以拉回以前被除去的文本。鍵入多次的M-y可以拉回更早以前被除去的文本。
C-x r k : 執行矩形區域的剪切
C-x r y : 執行矩形區域的粘貼
C-x h : 全部選中
C-o : 在光標後面插入空行
C-x C-o : 將光標附近的空行去掉,多行的時候,第一次只剩一行,第二次全部刪除 - 窗口操作
C-x 0 : 關閉當前窗口
C-x 1 : 將當前窗口最大化
C-x 2 : 垂直分割窗口
C-x 3 : 水平分割窗口
C-x < : 窗口內容右卷
C-x > : 窗口內容左卷(這兩個命令在垂直分割窗口後比較有用)
(C-u) C-x ^ : 加高當前窗口,如果有C-u,則每次加高4行
(C-u) C-x } : 加寬當前窗口
(C-u) C-x { : 壓窄當前窗口
ESC C-v : 在其它窗口進行卷屏操作
C-M-v:滾動另一個window(C-v是滾動當前window)
C-x 4 b(f):在另一個窗口選擇另一個buffer(查找另一個文件),這樣你可以不用切換到另一個window,就改變其buffer或打開文件;
C-x 5 2:新建一個frame; - 搜索和替換
C-s : 向前搜索(增量式搜索);連續C-s,跳到下一個搜索到的目標
C-s RET : 普通搜索
C-r : 向前搜索
C-s RET C-w : 按單詞查詢
M-% : 查詢替換,也就是替換前會詢問一下
M-x replace-string : 普通替換 - 命令行執行命令
由於Emacs太過強大,內部命令恆河沙數,根本不可能有同樣數量的快捷鍵位來綁定它們!對於沒有綁定的命令,可以使用 命令行 執行!
M-x (Alt+x) 開啓命令行,回顯區顯示爲 M-x
M-x goto-line : 移動到某一行
M-x replace-string : 普通替換
M-x replace-regexp : 正則表達式替換
M-x undo : 撤消
C-g M-x undo : 重做
M-x query-replace : 詢問替換 等同於C-%
M-x calendar : 打開日曆,q退出.C-u,M-x calendar 打開指定的年,月,日
C-f :讓當前日期向前一天
C-b:讓當前日期向後一天
C-n:讓當前日期向前一週
C-p:讓當前日期向後一週
M-}:讓當前日期向前一個月
M-{:讓當前日期向後一個月
C-x ]:讓當前日期向前一年
C-x [:讓當前日期向後一年 C-a:移動到當前周的第一天
C-e:移動到當前周的最後一天
M-a:移動到當前月的第一天
M-e:多動到當前月的最後一天
M-<:移動到當前年的第一天
M->:移動到當前年的最後一天 - ctrl+c-v-j, ctrl+c-v-z, ctrl+c-v-c, ctrl+c-v-. , ctrl+c-v-r, ctrl+j
- Alt+/ 會自動補全80%的機率以上都會找到你想要的,如果不是多按幾次選擇一下