日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)

發布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章記錄的是一些有用的 Emacs 配置,有些是自己原創,有些是借鑒別人(能記起來出處的我放了鏈接)。

規定:C 代表 Ctrl,M 代表 Alt。

1.設置一次跳躍 n 行的快捷鍵

按 C-M-n 可以連續下跳 5 行,按 C-M-p 可以連續上跳 5 行:

1 (global-set-key (kbd "C-M-n")
2     (lambda () (interactive) (next-line 5)))
3 (global-set-key (kbd "C-M-p")
4     (lambda () (interactive) (previous-line 5)))

2. 在一個 emacs 中打開多個 shell buffer

在 emacs 中,使用 M-x(輸入: shell 或 eshel) 來打開 shell 的 buffer,當作 shell 終端使用。但是有時候需要在一個 emacs 中打開多個 shell buffer,需要進行一下設置:

1 ;; set open multi shell
2 (defun wcy-shell-mode-auto-rename-buffer (text)
3   (if (eq major-mode 'shell-mode)
4       (rename-buffer  (concat "shell:" default-directory) t)))
5 (add-hook 'comint-output-filter-functions'wcy-shell-mode-auto-rename-buffer)

3. 窗口操作的撤銷和重做

在 emacs 中,使用 C-x,2 或 C-x,3 來新建窗口,使用 C-x,0 或 C-x,1 來關閉窗口,這些稱為窗口操作。在進行窗口操作時有時候需要撤銷或重做,可以使用以下配置:

C-x,4,u 代表撤銷,C-x,4,r 代表重做。

1 ;;set windows undo and redo
2 (when (fboundp 'winner-mode)
3       (winner-mode 1)
4 (global-set-key (kbd "C-x 4 u") 'winner-undo)
5 (global-set-key (kbd "C-x 4 r") 'winner-redo)
6 )

(感謝redguardtoo)

4. 在行末或行中位置刪除整行

在 emacs 默認設置中,要想刪除整行,需要先 C-a 跳到行首,然后使用 C-k 來刪除整行,有些不方便。通過一下配置,可以使用 C-w 來刪除整行(操作時不用事先選中整行),同時不影響原有的剪切功能。M-w 也可以在不事先選中整行的情況下復制整行。

 1 (defadvice kill-ring-save (before slickcopy activate compile)  
 2   (interactive  
 3    (if mark-active (list (region-beginning) (region-end))  
 4      (list (line-beginning-position)  
 5            (line-beginning-position 2)))))  
 6 (defadvice kill-region (before slickcut activate compile)  
 7   (interactive  
 8    (if mark-active (list (region-beginning) (region-end))  
 9      (list (line-beginning-position)  
10            (line-beginning-position 2))))) 

(感謝瀏忙大爆炸)

5. 在各個窗口之間快速切換

在 emacs 的默認設置中,需要使用 C-x, o 來進行窗口切換,頗為不便,特別是窗口數量比較大的時候。通過以下設置,可以使用 M-1/M-2/M-3/.../M-9 來快速切換到第 1/2/3/.../9 窗口(窗口上有編號)。

事先下載window numbering el,放置到~/.emacs.d/ 目錄下,然后在.emacs 中做以下配置:

1 ;;set windows numbering
2 (require 'window-numbering)
3 (window-numbering-mode 1)

(感謝redguardtoo)

6. 設置 color-theme 主題

下載color-theme,放置到~/.emacs.d/ 目錄下,然后在.emacs 中做以下配置:

1 ;;set color theme
2 (add-to-list 'load-path"~/.emacs.d/")
3 (require ')
4 (color-theme-initialize)  
5 ;; 這個是你選擇的主題,后面的 calm forest 就是它的名字,注意使用小寫。
6 (color-theme-calm-forest)

(7) 設置透明效果

我覺得這個很有用,特別是需要一邊寫代碼一邊看參照其他文檔時。按 F11 鍵可以一鍵切換透明度,非常方便:

 1 ;;set transparent effect
 2 (global-set-key [(f11)] 'loop-alpha)
 3 (setq alpha-list '((100 100) (95 65) (85 55) (75 45) (65 35)))
 4 (defun loop-alpha ()
 5   (interactive)
 6   (let ((h (car alpha-list)))                ;; head value will set to
 7     ((lambda (a ab)
 8        (set-frame-parameter (selected-frame) 'alpha (list a ab))
 9        (add-to-list 'default-frame-alist (cons 'alpha (list a ab)))
10        ) (car h) (car (cdr h)))
11     (setq alpha-list (cdr (append alpha-list (list h))))
12     )
13 )

(感謝ccat)

8. 將光標移動到當前行的中間位置

Emacs 可以將光標跳到行首(C-a)和行尾(C-e),但是沒有跳到行中的快捷鍵。可以通過以下配置來實現:
將 C-z 綁定為將光標移動到當前行的中間位置。

1 (defun middle-of-line ()
2   "Put cursor at the middle point of the line."
3   (interactive)
4   (goto-char (/ (+ (point-at-bol) (point-at-eol)) 2)))
5 (global-set-key (kbd "C-z") 'middle-of-line)

9. 優化注釋功能

Emacs 的默認設置中,M-; 可以起到注釋的作用,但是有不方便的地方:必須在選中一部分區域后才能進行注釋。通過如下配置,可以達到以下效果:當光標位于行尾時,M-; 在行尾進行注釋;當光標位于其他位置時,M-; 起到注釋該行的作用;當選中一部分區域時,M-; 起到注釋該區域的作用。

1 (defun qiang-comment-dwim-line (&optional arg)
2   (interactive "*P")
3   (comment-normalize-vars)
4   (if (and (not (region-active-p)) (not (looking-at "[ 	]*$")))
5       (comment-or-uncomment-region (line-beginning-position) (line-end-position))
6     (comment-dwim arg)))
7 (global-set-key "M-;" 'qiang-comment-dwim-line)

(感謝cmdblock)

附錄:

這部分是一些快捷鍵備忘。

(1) 編輯

M-:刪除光標處的所有空格和 Tab 字符
M-SPC:刪除光標處的所有空格和 Tab 字符,但留下一個。
C-x C-o:刪除光標周圍的空白行,保留當前行。
C-o:插入空行。
M-^:將兩行合為一行,刪除之間的空白和縮進。
C-k:從光標處起刪除該行。
M-z char:刪至字符 char 為止
連續使用 kill 命令(M-w 除外),所 kill 掉的東西會智能的連在一起。還可以使用C-M-w(緊接一個 kill 命令)強制下次刪除加入上一個記錄中。
M-y(我重定義為 M-p):這個命令只能在剛用完 C-y 后使用。它的作用是用 kill 環中再前一個內容替換掉剛用 C-y 粘貼出來的內容。

M-;:注釋。
shift+ 其他操作(比如 C-a,C-e,C-f,C-b 等)可以選中特定內容。注意:按大寫鍵可以輔助該操作。
C-@:mark set,開始選定模式。
C-g:退出選定模式。
C-x h:全選。
C-x C-f:打開文件。
C-x C-v:更換文件。
C-x C-s:保存 buffer。
C-x C-w:另存為 buffer。
C-x k:關閉 buffer。

(2) 瀏覽

M-m:跳過所有空格
M-g g:跳到指定行
C-v:下翻頁。
M-v:上翻頁。
C-l:置中。
M-<:文首。
M->:文末。
M-r:移動到頁面中間行首位置。
C-l:將當前行提到頁面中間。

C-s:向后查找,再按一次則跳到下一個匹配項。
C-r:向前查找,再按一次則跳到下一個匹配項。
M-%:替換。

(3) 窗口操作

C-x 5 b:在另一個窗口選擇 buffer。
C-x 0:關閉本窗口。
C-x 4 0:關閉本窗口及 buffer。
C-x 1:關閉其他窗口。
C-x 2:垂直拆分窗口。
C-x 3:水平拆分窗口。

(4) 其他

C-x C-c:退出 emacs。
C-x z:重復命令。

原文: https://www.cnblogs.com/yjie/p/4059145.html

總結

以上是生活随笔為你收集整理的一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。