Helm 工具包(gif 动画演示)
helm 是个好东西, 也是一种不错交互体验, 形成了一系列的工具, 没接触过的 Emacs 爱好者至少通过本文众多的 gif 演示动画可以感受感受.
本文所有 gif 图片来自 http://tuhdo.github.io/helm-intro.html我的设置 init-helm.el
(require-package 'helm)
(require 'helm)
(require 'helm-config)
;(require 'helm-dash)
(helm-mode 1)
(helm-autoresize-mode 1)
;(setq helm-ff-auto-update-initial-value nil) ; 禁止自动补全
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "M-y") 'helm-show-kill-ring)
(global-set-key (kbd "C-c h") 'helm-command-prefix)
(global-set-key (kbd "C-x b") 'helm-mini)
(global-set-key (kbd "C-x C-f") 'helm-find-files)
(global-set-key (kbd "C-s") 'helm-occur)
(global-set-key (kbd "C-h SPC") 'helm-all-mark-rings)
(setq helm-split-window-in-side-p t
helm-move-to-line-cycle-in-source t
helm-ff-search-library-in-sexp t
helm-M-x-fuzzy-match t ; 模糊搜索
helm-buffers-fuzzy-matching t
helm-locate-fuzzy-match t
helm-recentf-fuzzy-match t
helm-scroll-amount 8
helm-ff-file-name-history-use-recentf t)
(provide 'init-helm)
1 基本使用
C-h f 相当于 describle-function ,列出所有函数
C-h v 相当于 describle-variable ,列出所有变量
C-h w 相当于 where-is ,列出所有键绑定
.....
在 minibuffer 下
C-s 相当于 grep,可模糊/正则搜索,helm-ff-run-grep
C-n/C-p 移动光标
C-v/M-v 快速移动
C-k 回到根目录,清空原先的内容
C-l 返回上一级
C-c C-i 将选中的文件绝对插入缓冲区
C-t Helm.org
C-x @ 用 root 打开文件
C-c h 切换到文件打开历史列表
M-p 切换到其他目录
M-a 选择所有,可与 C-c C-i 配合使用
本来还有 C-SPC 标记一个,但与中文输入法冲突……
M-D 删除选中的文件
M-R 重命名选定文件
M-C 复制选定文件
M-S 选定文件建立软连接
M-H 选定文件建立硬链接
简单演示: 
1.首先键入
main.c
,出现众多候选。我只想要在 x86 目录下的 main.c
,所以再次键入 x86
。完整的过程即键入 main.c x86
, Helm 自动搜索到正确的候选 arch/x86/boot/main.c
。2.模糊搜索。比如路径是
driver/edac/i5100_edac.c
的文件,键入 dedi51
: d表示 driver
, ed表示 edac
, i51表示 i5100_edac.c
。2 命令 Command
2.1 helm-M-x
(global-set-key (kbd "M-x") 'helm-M-x)
(setq helm-M-x-fuzzy-match t)
helm-M-x
代替 M-x
命令,多出一个候选列表,且可以进行模糊搜索演示:

2.2 helm-show-kill-ring
(global-set-key (kbd "M-y") 'helm-show-kill-ring)
helm-show-kill-ring
代替默认的 M-y
,可以在 emacs 剪切和复制的内容列表中选择/搜索演示:

2.3 helm-mini
(global-set-key (kbd "C-x b") 'helm-mini)
(setq helm-buffers-fuzzy-matching t
helm-recentf-fuzzy-match t)
helm-mini
代替默认的 C-x b
,显示缓冲区列表,可搜索,完全可以代替默认的缓冲区列表命令,即 C-x b/C-x C-b演示:

2.4 helm-ff-do-grep
也可以用ack-grep
代替 grep
(when (executable-find "ack-grep")
(setq helm-grep-default-command "ack-grep -Hn --no-group --no-color %e %p %f"
helm-grep-default-recurse-command "ack-grep -H --no-group --no-color %e %p %f"))
在 helm-find-files 的 minibuffer 中,键入 C-s 即可进入演示:

2.5 helm-semantic-or-imenu
(setq helm-semantic-fuzzy-match t
helm-imenu-fuzzy-match t)
键入 C-c h i
进入,列出当前文件章节/节点列表,选择后跳转到指定章节/节点演示:

2.6 helm-man-woman
(add-to-list 'helm-sources-using-default-as-input 'helm-source-man-pages)
快速调整到指定 man 文档,需自己手工设置快捷键演示:

2.7 helm-find
C-c h /
默认情况下只搜索当前目录, C-u C-c h /
可指定要搜索的目录。在
helm-find-files
(即 C-x C-f
)窗口中键入 C-c /
同样可以调用该命令。演示:

2.8 helm-locate
(setq helm-locate-fuzzy-match t) ; 仅供 Linux 平台下设置
C-c h l
启动, C-!
暂停/继续进行实时搜索,大硬盘搜索迟缓时可用。类似 helm-find ,但进行全局搜索。Mac OS 下 需要用到
mdfind
,Windows 下需要安装 Everthing search engine 并添加 es.exe
环境变量。演示:

2.9 helm-occur
(global-set-key (kbd "C-s") 'helm-occur)
文件全文搜索,个人感觉完全可以代替 Emacs 默认搜索命令,按 TAB
显示扩展命令。演示:

2.10 helm-apropos
(setq helm-apropos-fuzzy-match t)
显示 Emacs 指定命令简述(包括可用函数、变量、属性、功能等等),可模糊/正则搜索截图:

2.11 helm-info-*
helm emacs info 帮助系统,提供搜索/补全功能,键入M-x helm-info
可以看到所有可选择的列表截图:

2.12 helm-lisp-completion-at-point
(setq helm-lisp-fuzzy-completion t)
提供 lisp 命令补全/候选,使用该命令之前必须先键入几个 lisp 关键词,哪怕是一个括号截图:

2.13 helm-resume
用于回复以前的缓冲区,且恢复那个缓冲区已有的输入,哪怕你没有保存键入
C-c h b
启动2.14 helm-all-mark-rings
(global-set-key (kbd "C-h SPC") 'helm-all-mark-rings)
在窗口处列出当前文件和全局 mark-rings ,可以使用 C-n/C-p
上下移动,也可以直接输入标记编号,回车跳转到指定行截图:

2.15 helm-regexp
实时显示某个正则表达式效果,测试时可用F1 保存正则表达式作为一个 kill-ring
F2 替换当前正则表达式
F3 保存正则表达式作为当前提示
演示:
2.16 helm-register
(global-set-key (kbd "C-c h x") 'helm-register)
查看并列出所有 Emacs 寄存器(emacs register)演示:

2.17 helm-eval-expression-with-eldoc
在该命令下输入的 Emacs Lisp 表达式其结果可以马上在缓冲区中表现出来。如果你有一个命令希望马上看到效果,该命令会有很大帮助演示:

2.18 helm-top
类似 Linux top 命令Key| 用途
---|---
C-c C-u| 刷新
M-C| 按照 Shell command 排序
M-P| 按照 CPU 使用率排序
M-U| 按照用户名称排序
M-M| 按照内存占用排序
演示:
2.19 helm-surfraw
一个快速搜索命令,包含多个搜索引擎,会跳转到浏览器演示:

2.20 helm-google-suggest
(global-set-key (kbd "C-c h g") 'helm-google-suggest)
交互式输入检索词,并得到 helm 来自 google 的结果,当然可以用于其他服务,诸如:Google Maps、Google News、Youtube、Wikipedia 等等演示:

2.21 helm-color
用于查看/复制颜色的十六进制值Key| 用途
---|---
[f1] or C-c N| 复制名称
[f2] or C-c R| 复制 RGB
[f3] or C-c n| 插入名称
[f4] or C-c r| 插入 RGB
演示:
2.22 helm-calcul-expression
一个相当于计算器(calc)命令,可以使用符号诸如:+、-、*、/、sin、cos、tan、sqrt 等等演示:

2.23 helm-eshell-history
(require 'helm-eshell)
(add-hook 'eshell-mode-hook
#'(lambda ()
(define-key eshell-mode-map (kbd "C-c C-l") 'helm-eshell-history)))
查看 eshell 命令历史演示:

原文出处: mudan
原文地址: http://mudan.github.io/Emacs/Helm/Helm.html
原文时间: 2015-06-16 00:56
本文地址: http://emacsist.com/10295
整理时间: 2015-06-17 01:32
本文由 Hick 整理,转载请保留以上信息;
The articles on this site come from Internet, thanks to all the original authors.
If anything about COPYRIGHT, or LEFT, please contact Emacsist at gmail dot com .
没有评论:
发表评论