Ivy-mode: 更快執行指令,更快搜尋的次模式
前面提到過,一般在 Emacs 執行指令,除了可以綁住一些組合鍵外,如果有像是在寫程式時的自動補全功能,也就是你不用打完整段指令,用選的來執行,是不是還可以更快些?
在 Emacs 的環境中,有多種選擇來做這種增加生產力的套件,像是最常見的 ivy-mode, helm-mode,這裏我們介紹 ivy-mode
當你用一些片段的句子,例如原先要執行 Meta-x package-list-packages 你可以只打 Meta-x pa list pa,就可以顯示一串符合的字串來讓你選擇,如
前面提到過,一般在 Emacs 執行指令,除了可以綁住一些組合鍵外,如果有像是在寫程式時的自動補全功能,也就是你不用打完整段指令,用選的來執行,是不是還可以更快些?
在 Emacs 的環境中,有多種選擇來做這種增加生產力的套件,像是最常見的 ivy-mode, helm-mode,這裏我們介紹 ivy-mode
當你用一些片段的句子,例如原先要執行 Meta-x package-list-packages 你可以只打 Meta-x pa list pa,就可以顯示一串符合的字串來讓你選擇,如
,又像是 Ctrl-x Ctrl-f 來開啟檔案時,也可以用一部分的關鍵字來開啟,例如
Ivy-mode 其實包含幾個工具
Ivy: 一種客製化的小緩衝區顯示方式,例如前面例子裡的小緩衝區的操作,就是用 Ivy 來客製化
Counsel: 取代原生的一些常用指令,改用 Counsel 透過 ivy 來執行,例如前面的 Ctrl-x Ctlr-f就取代了原生的 Find File 指令
Swiper: 取代原生的搜尋 I-search,改用跟 ivy 介面的更方便的搜尋
安裝
安裝 ivy: 使用前面介紹的 use-package
(use-package ivy
:ensure t
:diminish (ivy-mode . “”)
:config
(ivy-mode 1)
(setq ivy-use-virutal-buffers t)
(setq enable-recursive-minibuffers t)
(setq ivy-height 10)
(setq ivy-initial-inputs-alist nil)
(setq ivy-count-format “%d/%d”)
(setq ivy-re-builders-alist
`((t . ivy–regex-ignore-order)))
)
基本上定義了小緩衝區的高度 ivy-height,設定初始的 list 為空 ivy-initial-input-alist nil,如何顯示總共符合的數目以及目前的位置 ivy-count-format “%d/%d”,當用 regex 可以不管次序 ivy–regex-ignore-order,這些可以看跟個人喜好調整,完整的說明請看ivy
安裝 Counsel
(use-package counsel
:ensure t
:bind ((“M-x” . counsel-M-x)
(“C-x C-f” . counsel-find-file)))
這裏我們只用了兩個,使用 counsel-M-x 來取代原先的 Meta-x,指令執行,以及檔案尋找及開啟的 counsel-find-file,其他還可以選的像是 counsel-describe-function,counsel-describe-variable…詳細可以參考 counsel
安裝 Swiper
(use-package swiper
:ensure t
:bind ((“C-s” . swiper))
)
搜尋畫面例如,在小緩衝區中可以使用 p 跟 n 鍵來上下移動, 移動時上面緩衝區的游標也會跟著移動,要搜尋的字會用特別顏色顯示
Ivy: 一種客製化的小緩衝區顯示方式,例如前面例子裡的小緩衝區的操作,就是用 Ivy 來客製化
Counsel: 取代原生的一些常用指令,改用 Counsel 透過 ivy 來執行,例如前面的 Ctrl-x Ctlr-f就取代了原生的 Find File 指令
Swiper: 取代原生的搜尋 I-search,改用跟 ivy 介面的更方便的搜尋
安裝
安裝 ivy: 使用前面介紹的 use-package
(use-package ivy
:ensure t
:diminish (ivy-mode . “”)
:config
(ivy-mode 1)
(setq ivy-use-virutal-buffers t)
(setq enable-recursive-minibuffers t)
(setq ivy-height 10)
(setq ivy-initial-inputs-alist nil)
(setq ivy-count-format “%d/%d”)
(setq ivy-re-builders-alist
`((t . ivy–regex-ignore-order)))
)
基本上定義了小緩衝區的高度 ivy-height,設定初始的 list 為空 ivy-initial-input-alist nil,如何顯示總共符合的數目以及目前的位置 ivy-count-format “%d/%d”,當用 regex 可以不管次序 ivy–regex-ignore-order,這些可以看跟個人喜好調整,完整的說明請看ivy
安裝 Counsel
(use-package counsel
:ensure t
:bind ((“M-x” . counsel-M-x)
(“C-x C-f” . counsel-find-file)))
這裏我們只用了兩個,使用 counsel-M-x 來取代原先的 Meta-x,指令執行,以及檔案尋找及開啟的 counsel-find-file,其他還可以選的像是 counsel-describe-function,counsel-describe-variable…詳細可以參考 counsel
安裝 Swiper
(use-package swiper
:ensure t
:bind ((“C-s” . swiper))
)
搜尋畫面例如,在小緩衝區中可以使用 p 跟 n 鍵來上下移動, 移動時上面緩衝區的游標也會跟著移動,要搜尋的字會用特別顏色顯示
转载请注明:XAMPP中文组官网 » 讓你更快速執行指令的套件, Ivy-mode