我需要获取我正在使用emacs编辑的文件的完整路径.
我正在使用Mac OS X和Aqumacs.
(setq filepath (get-fullpath-current-file)) ???
(copy-to-clipboard 'filepath) ???
Run Code Online (Sandbox Code Playgroud)
(defun show-file-name () "Show the full path file name in the minibuffer." (interactive) (message (buffer-file-name)) (kill-new (file-truename buffer-file-name)) ) (global-set-key "\C-cz" 'show-file-name)
结合我得到的两个答案,我可以得到我想要的.谢谢你的回答.还有一些问题.
通常,当我在git中切换分支时,如果文件在emacs中打开,那么emacs会询问我是否要还原它们(因为它认为它们已在磁盘上更改),即使内容相同.
首先,如果磁盘上的内容与缓冲区中的内容相同,我想找到一种让emacs根本不问我的方法.
其次,我想要一个命令恢复(没有查询)我没有未保存更改的所有打开缓冲区,并向我查询那些确实有未保存更改的命令.
或者,我会接受有关其他解决方案,工作方式等方面的建议,我可以尝试.如果人们可以给我指点从哪里开始,我很高兴写emacs-lisp.
PS如果重要的话,我在OSX上使用Aquamacs.
编辑:
好吧,我发现revbuffs包几乎是我需要的.当然足以阻止我想尝试自己写任何新东西.(我将revbuff映射到Cmd-R,效果非常好.类似于其他Mac应用程序中的Cmd-R).
全局自动恢复模式将是一个非常好的解决方案,我希望我可以选择两个答案.我更喜欢revbuffs,仅仅是因为想要控制所发生的事情,可能是非理性的感觉.
我有点猜测,如果我从emacs中访问git,那么它可能会更容易处理,但我目前更喜欢通过命令行访问git.(我还没有使用emacs足够长的时间来使它成为我的操作系统).我会更彻底地调查magit.
EDIT2:
我已经使用magit一年了,并且强烈推荐它来处理emacs中的git.但是,每当我在emacs之外进行rebase时,我仍然会使用revbuff.
我已经尝试过几次移植到Emacs进行Clojure开发,遵循各种博客文章,截屏和教程,但是在某些地方总是出现问题 - 无效的键绑定,不兼容的版本等等,我发现自己争先恐后地回到Vim.但我知道我想要Paredit和SLIME.
所以,我将再次尝试,这次由功能强大的StackOverflow™社区支持.
我希望这个问题的答案将保持最新,并可以作为像我这样的试探性转变的参考.
我想要的是: - Clojure的最新稳定版本 - Aquamacs(如果它对Rich Hickey来说足够好,对我来说已经足够好了),最新版本 - Clojure模式 - SLIME/SWANK - Paredit - 还有什么是不可或缺的吗?
安装上述内容的分步说明非常好 - 最好采用shell脚本格式.我还想了解如何开始使用最常见的Clojure相关操作(包括键绑定),包括文档和备忘单的链接.
在flyspell模式的Aquamacs中,当flyspell将单词标记为拼写错误时,我可以右键单击将该单词添加到我的字典中,如果它实际上是拼写正确的.
在OSX上的GNU Emacs中,当flyspell-mode突出显示它认为拼写错误的单词时,如何将单词添加到字典中?查看文档,我没有看到像flyspell-learn-word
或的函数ispell-add-word-to-personal-dictionary
.
工作区,我的意思是 - 我需要保存我的开放缓冲区的状态(可能在用户指定的工作区文件中)并快速切换到另一组打开缓冲区,例如继续处理与另一个项目相关的文件.
是否有允许这样的Emacs插件?你会推荐哪一个?
到目前为止我使用了Aquamacs,我需要使用SLIME安装和运行Clojure.我用谷歌搜索了一些方法在Aquamacs的SLIME上使用Clojure,但没有成功.
我尝试使用Mac OS X Emacs,并按照我可以使其工作的步骤.我的意思是,我可以用SLIME运行Clojure.
步骤1)安装ESK.
.emacs.d
目录中.emacs
并重新启动(when (load (expand-file-name "~/.emacs.d/package.el")) (package-initialize))
步骤2)使用ELPA安装
.emacs
并重新启动;; clojure mode (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/clojure-mode-1.7.1") (require 'clojure-mode-autoloads) (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/clojure-test-mode-1.4") (require 'clojure-test-mode-autoloads) ;; slime ;(setq inferior-lisp-program "/Users/smcho/bin/clojure") (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/slime-20100404") (require 'slime-autoloads) (add-to-list 'load-path "/Users/smcho/.emacs.d/elpa/slime-repl-20100404") (require 'slime-repl-autoloads) ;; swank-clojure …
我正在尝试将其他代码编辑器中的功能添加到我的Emacs配置中,其中#if 0 ... #endif块中的C/C++代码会自动设置为注释面/字体.根据我的测试,cpp-highlight-mode可以实现我想要的功能,但需要用户操作.似乎绑定字体锁功能是使行为自动化的正确选项.
我已成功地遵循GNU文档中的示例来更改单行正则表达式的表面.例如:
(add-hook 'c-mode-common-hook
(lambda ()
(font-lock-add-keywords nil
'(("\\<\\(FIXME\\|TODO\\|HACK\\|fixme\\|todo\\|hack\\)" 1
font-lock-warning-face t)))))
Run Code Online (Sandbox Code Playgroud)
可以在文件中的任何位置突出显示调试相关的关键字.但是,我在将#if 0 ...#endif作为多行正则表达式进行匹配时遇到问题.我在这篇文章中找到了一些有用的信息(如何编写区域,如"<?php foo; bar;?>"),这表明Emacs必须专门告知允许多行匹配.但是这段代码:
(add-hook 'c-mode-common-hook
(lambda ()
'(progn
(setq font-lock-multiline t)
(font-lock-add-keywords nil
'(("#if 0\\(.\\|\n\\)*?#endif" 1
font-lock-comment-face t))))))
Run Code Online (Sandbox Code Playgroud)
仍然不适合我.也许我的正则表达式是错误的(尽管它似乎使用Mx重构器),我搞砸了我的语法,或者我完全遵循错误的方法.我在OS X 10.6.5上使用Aquamacs 2.1(基于GNU Emacs 23.2.50.1),如果这有所不同.
任何援助将不胜感激!
在GNU Emacs for OSX中,如何将kill ring和OSX剪贴板分开?(这样我基本上有两个独立的杀戮戒指.)
通过所需的行为,这将起作用:
1.⌘C将文本从Web复制到OSX剪贴板.
2. controlk在Emacs中杀死一条线.
3. controly将Emacs kill ring中的文本从当前的Emacs缓冲区中删除.
4. ⌘v将原始Web文本从OSX剪贴板粘贴到当前的Emacs缓冲区.
这在Aquamacs开箱即用.如何在GNU Emacs中工作?
这里讨论的问题与Windows有关: Emacs:如何将kill ring与系统剪贴板分开?
在这里:http: //lists.gnu.org/archive/html/help-emacs-windows/2010-02/msg00001.HTML
...但此解决方案在OSX中不起作用.我想要一个适用于Mac OSX的解决方案.
我在OSX Mavericks中使用GNU Emacs,我试图让我的背景透明而不是文本.
有一种简单的方法可以使整个框架透明:
(set-frame-parameter (selected-frame) 'alpha '(85 85))
(add-to-list 'default-frame-alist '(alpha 85 85))
Run Code Online (Sandbox Code Playgroud)
但这使得整个框架透明/半透明,包括文本.我只希望框架背景是透明的,文本是纯黑色.Emacs Wiki上有人说这样的实现必须是特定于操作系统的.那么,有没有人知道如何为OSX做这个?
使用所需的设置,Emacs将如下所示:
.
同样,我希望窗口100%透明,前景文本100%不透明,它应该在Emacs的全屏模式下工作.
我正在运行一个交互式程序,输出大约10 MB [编辑:实际上可能接近100 MB]的ASCII文本.emacs shell-mode(Aquamacs)中的性能慢得令人无法接受,需要数小时才能完成.我确实执行了buffer-disable-undo,这可以加快速度,但速度仍然太慢.
我尝试在隐藏缓冲区窗口的情况下运行程序,但是程序完成了,当我重新选择缓冲区时,我仍然需要等待数小时才能将输出设置为假脱机.
是否有一些命令我可以给emacs以使性能可以接受?我不明白shell模式怎么可能这么慢:这是一台带有64位现代多核CPU和SSD的32 GB多核机器.