Emacs

使用,扩展或开发Emacs的人员的问答

1
将magit与undo-tree结合使用可轻松进行历史导航
我爱undo-tree(下面的截图)。它提供了一种简单的方法为通过让周围的文件的历史记录树中的用户移动在单独的窗口(窗口底部),用简单的按键,比如通过不同版本的文件(顶部窗口)的航行n,p并C-b和C-f到开关跨相同的后代父母 最值得注意的是,undo-tree根据树视图中的选择,使用相应的版本自动更新保存文件的缓冲区。 当然,magit对于git来说是惊人的,并且如果它具有类似的功能,那将是惊人的,即让用户以交互方式浏览文件的git历史记录,同时自动更新保存文件的缓冲区。 magit今天有可能吗?


2
我如何从Magit中的另一个提交中检出文件
我foo.txt在branch中有一个文件A,我想foo.txt从branch 签出B到索引中。在命令行上,我可以这样做: $ git checkout B -- foo.txt 我希望能够通过登录,查找我感兴趣的提交(例如l o B),查找foo.txt并运行一些命令来在magit中执行此操作,但是我不知道该怎么做。
16 magit 

1
如何调试emacs崩溃?
我正在调试为什么使用软件包1中的函数时emacs崩溃。此调试过程的目的是获得有用的数据以使用提交M-x report-emacs-bug。 为了获得有关如何调试emacs崩溃的帮助,我已经查看了Emacs手册-崩溃和Emacs手册-崩溃后,但是它们没有帮助。 “ 崩溃后的故障”手册指的是,emacs-buffer.gdb但我不知道如何使用它。在向Google寻求帮助时,我遇到了这个emacs.SE问题,并使用-ggdb3标志重新编译了emacs 。 我没有使用gdb过的经验,因此尝试使用该emacs-buffer.gbd文件的尝试很少。 这是我尝试过的: gdb -x /path/to/emacs-buffer.gdb gdb -> file /path/to/emacs-buffer.gdb gdb -> source /path/to/emacs-buffer.gdb source /path/to/emacs-buffer.gdb 附带一提,使用该-ggdb3标志编译的emacs 加载时间大约需要10秒;之前是5-6秒,现在是16-17秒。我知道确切的秒数,因为有代码可以在我的init中进行计算。启动时间会增加吗? 脚注1:undo-tree尝试恢复特定.org文件(我无法公开共享)的撤消历史记录时,emacs始终崩溃。我有(setq undo-tree-auto-save-history t)。此崩溃仅发生在emacs git master上,而不发生在emacs 24.5上。在emacs 24.5上,undo-tree抛出一个错误,指出它无法加载撤消历史记录(即使存在撤消历史记录文件也是如此),但是至少emacs会话不会在该版本上崩溃。
16 debugging  gdb 



3
Elisp正则表达式^和$ vs`和'
本手册介绍了regexp特殊字符^和$。就像我所知道的大多数正则表达式方言一样,它们似乎与字符串的开头或结尾匹配。但是,我也发现有`和'字符可用。根据此处的说明,它们似乎也匹配字符串的开头或结尾。有人可以解释这些特殊字符之间的区别,并举例说明何时使用它们吗? 当我查看的值时auto-mode-alist,它们似乎可以互换使用以匹配字符串的结尾: (... ("\\.scss\\'" . scss-mode) ("\\.ya?ml$" . yaml-mode) ...)

3
如何获取列表中的元素编号?
问:如何获取列表中的元素编号? nth从列表中获取元素编号n: (nth 2 '(a b c d)) ; => c 我想相反:获取给定元素的元素编号: (some-function 'c '(a b c d)) ; => 2 我可能已经错过了,但是是否存在这样的功能?一个人怎么做?
16 elisp 

2
您可以使用本机elisp激活/(启用)emacs吗?(例如,在另一个程序中工作时)
我想强迫emacs激活,在某些情况下被收购,以“窃取”焦点。例如,当我完成org-Pomodoro或重要的约会提醒时。 现在,我正在寻找一种“本机”方式来这样做,只是为了减少外部依赖性。(只要Linux对我来说可以,跨平台会更好)。 从emacs内部技术上可行吗? [编辑]解决方案: 如果使用GUI,则效果很好: (x-focus-frame nil) [出于历史原因...]我尝试过: 框架可见性(无效) (make-frame-visible) 并且: (make-frame-invisible) (make-frame-visible) 但是这些似乎仅在Emacs已被激活时才起作用。 框架抬起(无效) 降低帧似乎实际上隐藏了emacs。 (lower-frame) 但是,从定时器提高帧数却没有。即,什么都没有发生。 (raise-frame) 似乎在提高它之前缺少“ activate-emacs”。 [关于外部解决方案的注意事项] 当前,作为一种(解决方法/解决方案?),我使用了一些elisp: (call-process "activateEmacs") 以及相应的bash脚本:(您可能需要先在系统上安装xdotool) #!/bin/sh sleep 0.5 xdotool search --onlyvisible --class emacs windowactivate
16 frames 

2
带有错误跟踪器吉拉的组织模式
我热衷于将jira与配合使用org-mode。org-jira-mode看起来像是一个潜在的候选人,但是我HTTP REST在大多数情况下都使用它,并且我不想为了soap协议而打断我的头org-jira-mode。 是否还有其他通过rest协议进行对话的jira插件 ?
16 org-mode 

3
如何创建:keywords?
问:如何创建和使用:keywords? 考虑一下(显然是天真的)尝试访问以下玩具列表: (setf alist '((:key-1 "Key no. 1") (:key-2 "Key no. 2"))) (assq :key-1 alist) ; => (:key-1 "Key no. 1") (assq (make-symbol ":key-1") alist) ; => nil 第一个键可以按预期工作,但第二个键则不能。在没有明显make-keyword功能的情况下,如何创建和使用关键字? 原始动机:我需要将字符串转换为查找键,该键是我可以使用的符号put。 在提出这个问题的过程中,我至少得到了一部分答案,我将分别发布。我希望有比我的人更聪明的想法可以改善它。
16 elisp  symbols 


3
如何开始对其中包含git冲突标记的文件进行比较?
在命令行上尝试进行git合并后,我的文件中现在包含标准冲突标记,而emacs已在缓冲区中重新加载(恢复了吗?)。 如何启动某种合并模式来解决冲突?我可以像显示ediff文件一样获得显示左/右/合并文件版本的单独缓冲区吗? (在Mac上为emacs-prelude v24.4)
16 git  ediff  prelude 

3
自动更改编译模式当前目录?
目前,我的编译命令如下: cd ~/somedir && ./somescript.sh 这样可以防止emacs查找发生错误的文件(并打开该文件)。 我当然可以M-x cd手动运行,但是有没有办法告诉缓冲区以编程方式更改其当前目录?

2
如何在magit的文件中检出我们/他们的文件?
假设我有合并冲突。我看到这样的冲突文件: Unstaged changes: Unmerged Foo/bar/wibble/plop/elbow.txt 我可以单击此处的选项卡以打开更改,并可能跳至手动修复的文件中的某个点,但是如果它是一个包含大量冲突的大文件,则可能会非常耗时。 我怎样才能通过git要求git签出文件的版本,以解决冲突?我可以复制路径,然后使用Shift-:它输入自定义git命令,但似乎必须为此使用键盘快捷键。我在magit菜单或?弹出窗口中看不到任何明显的内容。
16 magit 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.