假设我打开了一个源文件并启动了一个shell.我可以按Cx o在两个缓冲区之间切换.但是我怎样才能得到它以便当我移动鼠标时鼠标下的缓冲区获得焦点,就像窗口管理器中常见的"焦点跟随鼠标"选项一样?
当我退出Emacs时,我有一个关于如何"优雅地退出SLIME"的问题.这是我的配置文件的相关部分:
;; SLIME configuration
(setq inferior-lisp-program "/usr/local/bin/sbcl")
(add-to-list 'load-path "~/Scripts/slime/")
(require 'slime)
(slime-setup)
;; configure SLIME to gracefully quit when emacs
;; terminates
(defun slime-smart-quit ()
(interactive)
(when (slime-connected-p)
(if (equal (slime-machine-instance) "Gregory-Gelfonds-MacBook-Pro.local")
(slime-quit-lisp)
(slime-disconnect)))
(slime-kill-all-buffers))
(add-hook 'kill-emacs-hook 'slime-smart-quit)
Run Code Online (Sandbox Code Playgroud)
据我所知,每当我退出Emacs时,这应该会自动杀死SLIME及其关联的进程.但是,每次我退出时,我仍然得到提示:
Proc Status Buffer Command
---- ------ ------ -------
SLIME Lisp open *cl-connection* (network stream connection to 127.0.0.1)
inferior-lisp run *inferior-lisp* /usr/local/bin/sbcl
Active processes exist; kill them and exit anyway? (yes or no)
Run Code Online (Sandbox Code Playgroud)
有人可以从我的配置中找到我缺少的东西吗?
提前致谢.
我一直在寻找如何恢复emacs会话,没有运气.我正在寻找恢复所有以前打开的缓冲区,其中一些可能包含erc,shell,目录列表,文件等.
每次打开emacs,我都会花很多时间来安排我的缓冲区; 将它们分成行和列,打开一个外壳,安排irc通道.上班需要一段时间.
我尝试将以下内容添加到init.el中
(desktop-save-mode 1)
Run Code Online (Sandbox Code Playgroud)
然后使用Mx桌面保存.这似乎只能恢复打开的文件,而不是shell或缓冲区中运行的任何其他内容.
我还检查了以下问题:
阅读:
这是我的emacs会话的屏幕截图示例.
一个简单的答案就是专注于实际工作:P
已经有人问过如何.emacs
在更改文件后重新加载文件.
建议的解决方案是使用M-x load-file
或M-x eval-region RET
改变区域.
这些解决方案都不会影响我的其他开放缓冲区.有没有办法.emacs
为所有打开的缓冲区重新加载文件?
我还应该注意,由于对该答案M-x load-file
的评论中概述的原因,它没有达到预期的效果.
我试过了
(set (make-local-variable 'comment-auto-fill-only-comments) t)
Run Code Online (Sandbox Code Playgroud)
并且
(auto-fill-mode 0)
Run Code Online (Sandbox Code Playgroud)
虽然令人惊讶,但在重新启动emacs之后,这些都不起作用.
我正在使用eschulte的emacs入门套件
使用Mx自动填充模式切换它可以正常工作.
结合使用(感谢Rémi):
(auto-fill-mode 1)
(setq comment-auto-fill-only-comments t)
Run Code Online (Sandbox Code Playgroud)
它在编程文件中完美地工作,其中有注释.但是,在文本模式下,它会自动填充到处.
如何在文本文档中完全关闭自动填充模式?
使用迷你缓冲区(Cx Cf)切换文件时,我经常使用M-Backspace来删除路径中的单词.Emacs会自动将我删除的内容放入kill ring中.这可能很烦人,因为有时我正在移动到另一个文件来粘贴东西,我最终粘贴了部分文件路径.我知道有解决方法,其他代码仍然在kill ring等,但我只是想禁用此功能.
我刚刚问了一个相关的问题(setq问题),但它有明显的不同,所以我决定分开这个问题.
在我的.emacs
文件中,我定义了一个绑定到该replace-string
命令的键:
(define-key global-map "\C-r" 'replace-string)
Run Code Online (Sandbox Code Playgroud)
replace-string
做基本的搜索和替换.假设搜索字符串的第一个字母是小写,如果case-fold-search
是,nil
则进行replace-string
区分大小写的搜索,否则它会进行不区分大小写的搜索.
问题是case-fold-search
控制"搜索"(如search-forward
命令)和"搜索和替换"(如replace-string
命令)的"区分大小写" .
现在的问题是如何让我JUST的replace-string
命令(或任何C-r
必然)区分大小写,留下search-forward
不区分大小写的,因为它是在默认情况下.
也许我需要设置case-fold-search
到nil
只为replace-string
命令,但我不知道该怎么做.
我一直在考虑在我的Mac上使用Carbon Emacs,而我遇到的唯一绊脚石就是当你试图滚过文档末尾时发出令人讨厌的滚动声.我看过网上但我似乎无法找到我应该添加到我的.emacs中的内容,这会阻止它在滚动时发出哔哔声.滚动时我不想完全沉默它.有任何想法吗?
我已经定义了一个.dir-locals.el文件,其中包含以下内容:
((python-mode . ((cr/virtualenv-name . "saas"))))
Run Code Online (Sandbox Code Playgroud)
在我的.emacs中,我有以下函数来检索此值并提供virtualenv路径:
(defun cr/virtualenv ()
(cond (cr/virtualenv-name (format "%s/%s" virtualenv-base cr/virtualenv-name))
((getenv "EMACS_VIRTUAL_ENV") (getenv "EMACS_VIRTUAL_ENV"))
(t "~/.emacs.d/python")))
Run Code Online (Sandbox Code Playgroud)
最后,在我的python-mode-hook列表中,我有这个钩子函数:
(add-hook 'python-mode-hook 'cr/python-mode-shell-setup)
(defun cr/python-mode-shell-setup ()
(message "virtualenv-name is %s" cr/virtualenv-name)
(let ((python-base (cr/virtualenv)))
(cond ((and (fboundp 'ipython-shell-hook) (file-executable-p (concat python-base "/bin/ipython")))
(setq python-python-command (concat python-base "/bin/ipython"))
(setq py-python-command (concat python-base "/bin/ipython"))
(setq py-python-command-args '( "-colors" "NoColor")))
(t
(setq python-python-command (concat python-base "/bin/python"))
(setq py-python-command (concat python-base "/bin/python"))
(setq py-python-command-args nil)))))
Run Code Online (Sandbox Code Playgroud)
当我打开一个新的python文件时,记录的消息cr/python-mode-shell-setup
表明它cr/virtualenv-name
是nil …