emacs列模式和cua-mode

首先介紹,標記,區域:

  1. 點:即光標所在位置
  2. 標記:用C-Space或者C-@(即C-Shift-2)來做標記。
  3. 區域:標記之間的內容即爲區域

1. 原始列模式

emacs以C-x r開頭的命令來進行舉行矩形操作。首先用C-Space進行標記,然後移動光標到矩形的對角位置作爲當前的點。 C-x <SPACE> 切換矩形標記模式,矩形塊高亮顯示。

  • C-x r k 剪切一個矩形塊,作爲最新保存的矩形塊
  • C-x r d 刪除一個矩形塊,不保存矩形塊
  • C-x r M-w 保存矩形塊,作爲最新保存的矩形塊
  • C-x r y 粘貼最新保存的矩形塊
  • C-x r o 插入同等寬度的空格矩形塊(相當於右移矩形塊的距離)
  • C-x r c 清除一個矩形塊(使其變成空格)
  • C-x r t string <RET> 在選定矩形塊的所有列前插入string
  • C-x r N 在選定矩形塊的所有列前面插入序號(從1開始),如果選定矩形塊有空格,會自動取帶空格,如果選定矩形塊無空格,矩形塊會整體右移。
  • C-x <SPACE> 切換矩形標記模式,矩形塊高亮顯示,同時還可以隨時調整矩形塊的大小。
  • M-x delete-whitespace-rectangle 刪除矩形第一個字符左側的所有空格。
  • M-x string-insert-rectangle <RET> string <RET> 在矩形塊前面插入string

2. cua-mode (Common User Access mode)

我感覺cua-mode的列編輯模式更加符合操作習慣和人性化。在cua-mode下還有cua-rect和普通模式的區別。網上很多關於cua-mode的文章都是互相抄,有錯誤,而且還從來不提怎麼進入和退出cua-mode。SimonLiu在這裏重新整理補充並糾正了一些錯誤。

特別的,在cua-mode下,C-c,C-v, C-x, C-z對應操作系統系統裏的複製、粘貼、剪切和恢復操作。cua-rect模式的全部操作(除了輸入和切換),都是M-開頭的組合鍵。

cua-mode下,按C-<RET>會進入cua-rect模式,並以鼠標位置作爲起點,也可以鼠標重新點擊新位置作爲起點,然後通過移動光標(比如C-n, C-f, M-f等操作)來選中一個rect範圍,這個rect會用另外的顏色顯示出來。之後我們 就可以很方便地對這個rect進行操作。比如[M-up],[M-down],[M-left],[M-right]可以移動這個rect範圍(字符不動),此時按<RET>確定範圍(這樣可以移動鼠標到rect左側或者右側),或者再按一次C-<RET>可以取消這個矩形,C-<Space>可以退出cua-rect模式並激活普通模式下的選擇。

  • 進入和退出cua-mode: M-x cua-mode
  • 進入cua-rect模式:C-<RET>
  • 退出cua-rect模式: C-<Space>

cua-mode下可以用以下命令進行列操作:

  • 插入字符: 直接輸入字符即可。會在每行前(或後)都插入這個字符。取決於鼠標在前還是在後。如果需要在前面輸入,可以從右下往左上選取區域,或者按回車確認矩形範圍以後再移動鼠標。
  • M-b: 用空格(tabs或者spaces)替換所有rect中的字符
  • M-c: 去掉所有行左側的空格
  • M-f: (fill)用單個字符填充rect(提示輸入一個字符)
  • M-i: 對每行中第一個找到的數字進行加1操作(自動把0x開頭的當作十六進制數字)
  • M-k: 剪切rect
  • M-m: 拷貝rect
  • M-n: 用一串自增的數字替換rect中的每一行(這個功能可以用來給每行編號)
  • M-o: rect的內容右移,選中的rect用空格填充
  • M-r: 用字符串替換符滿足正則表達式的字符串
  • M-R: 上下反轉
  • M-s: 把rect中的每一行替換爲一個字符串(提示輸入)
  • M-t: 把rect整個替換爲一個字符串(提示輸入)
  • M-l: 把rect中的內容全部轉換爲小寫
  • M-u: 把rect中的內容全部轉換爲大寫
  • C-c: 複製rect
  • C-v: 粘貼rect
  • C-x: 剪切rect
  • C-z: undo
  • M-|: 對rect執行一個shell命令
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章