我使用桌面会话在加载之间保存项目状态。有时我正在研究一些在几个缓冲区之间共享的功能,并且很乐意将快速键盘快捷键(如#)分配给缓冲区。然后我可以通过击中cmd-1,cmd-2,cmd-3等来切换fe缓冲区。想法?
谢谢!
答案 0 :(得分:1)
我为此目的使用此代码:
(require 'bookmark)
(defvar zz-minibuffer-map (copy-keymap minibuffer-local-must-match-map)
"Keymap for `bookmark-do-quick-jump'")
(define-key zz-minibuffer-map
[remap self-insert-command] 'zz-self-insert-complete-and-exit)
(define-key zz-minibuffer-map " " "-")
(defvar zz-display-function nil)
(defun zz-self-insert-complete-and-exit (n)
(interactive "p")
(self-insert-command n)
(ignore-errors
(completion--do-completion nil 'expect-exact))
(let ((candidates (completion-all-sorted-completions)))
(cond
((null candidates)
(backward-delete-char-untabify 1)
(minibuffer-complete))
((eq 1 (safe-length candidates))
(minibuffer-complete-and-exit)))))
;;;###autoload
(defun zz-bookmark-jump (bookmark)
"Jump to specified bookmark with auto-completion and auto-acceptance."
(interactive
(list
(if (window-minibuffer-p)
(error "Already in minibuffer")
(let ((minibuffer-local-must-match-map zz-minibuffer-map))
(completing-read "Jump to bookmark: " bookmark-alist nil t)))))
(ignore-errors
(bookmark-jump bookmark zz-display-function)))
将zz-bookmark-jump
绑定到您想要的位置,例如 M-m 。
现在,如果您将书签命名为1...
,其中...
是您想要的任何内容,而不是其他内容
书签以1
开头, M-m 1 将跳转到该书签。
以下是我的一些书签供参考:
b: .bashrc ~/.bashrc
e: .emacs ~/.conf.d/.emacs
h: hooks.el - no file -
L: main.cc ~/Dropbox/source/c++/lattice/main.cc
m: magit - no file -
q: *scratch* - no file -
s: source ~/Dropbox/source/
当我致电:
时,我想添加bookmark-bmenu-list
以使其看起来更好看。
答案 1 :(得分:0)
如果您使用Bookmark+,则可以使用desktop bookmarks。 “跳转”到这样的书签会恢复保存的桌面 - 每个书签都指向一个特定的桌面文件。 书签是持久的。
书签名称可以使用任何字符 - 可以是1
或9
或312
。您可以将单个键(包括数字键,如果您愿意)绑定到跳转到您输入其名称的书签的命令(完成)。
您还可以轻松定义跳转到给定书签的命令。您可以将这样的命令绑定到您喜欢的任何一个键:1
,2
,...或-1
,-2
,...(尽管可能不会是一个好主意; - ))。
(FWIW,命令 name 必须是符号名称,符号名称必须包含符号字符,并且不能具有数字的语法(2
和{{1}你可以命名命令-2
,a1
,...或a2
,_1
,...或_2
,{{}} 1}},....但无论如何,你不可能通过他们的名字来调用这些命令。)
<强> 更新 强>
如果您只想在项目的文件或缓冲区之间切换/导航,不用关闭其他缓冲区等,那么请查找项目支持Emacs功能和扩展。有很多可用的,包括与香草Emacs一起提供的一些(如Dired)。
例如,使用书签+ ,您可以使用各种类型的书签(包括以下内容)来帮助管理软件项目:
Dired 缓冲区,包含特定的文件和子目录集 标记或省略,并使用特定的列表开关。
-a1
缓冲区,具有特定的书签组
被标记或隐藏。
多个替代书签文件。例如,使用a 每个项目不同的一个。或者使用不同的 子项目并将它们一起用于整个项目。
DeskTops (已提及),包括变量集和访问缓冲区 和文件。
Sequence bookmarks,合并其他书签。
您还可以将delicious意义上的标记与大多数相关联 书签类型。 (这些标签与Emacs无关 使用TAGS文件的源代码标签。)书签可以有任何标签 标签数量和多个书签可以具有相同的标签, 这意味着您可以使用它们来组织目标对象。 标签不仅仅是名称:它们可以是用户定义的 attributes ,将Emacs-Lisp对象作为其值。
这些和其他书签+ 功能为您提供了不同的方法 保存,恢复,过滤,访问和以其他方式组织项目,如 关于源代码组件和信息的集合 相关软件。
Icicles增强了对此类书签+ 功能的访问权限,并提供了额外的project-support features。