elisp

如何在 emacs 中的 (custom-theme-set-faces) 中使用预定义变量或常量
elisp

如何在 emacs 中的 (custom-theme-set-faces) 中使用预定义变量或常量

我想在中使用预定义的变量或字符串类型的常量 (custom-theme-set-faces),因此它会像 (setq Blue128 "#000080") (custom-theme-set-faces 'thename '(default ((t ( :background Blue128)))) ) 如果我尝试按上述方法表述,则会得到类型不匹配的情况: Wrong type argument: stringp, Blue128 还尝试了defvar、defconst、let。在“Emacs 手册”...

Admin

Emacs 配置 lisp 代码,在从剪贴板粘贴之前和之后更改 electric-indent-mode
elisp

Emacs 配置 lisp 代码,在从剪贴板粘贴之前和之后更改 electric-indent-mode

从 Emacs 24.4(我认为)开始,cj 和 ret 已被交换,因此 indent 现在在 ret 之后调用。并且文本模式下的那些缩进是相对于缩进的,因此,当您粘贴缩进的代码时,代码将以对角线粘贴,而不是对齐: # copied code line1 line2 line3 # pasted line1 line2 line3 我可以解决这个问题electric-indent-mode(flip/flop 命令),但我喜欢在文本模式下书写时的缩进相对行为。我只想在粘贴文本时将其关闭。 是否有人有代码可以用来设...

Admin

如何配置 Emacs 以在启动时适应屏幕尺寸?
elisp

如何配置 Emacs 以在启动时适应屏幕尺寸?

我Emacs经常延伸到可见范围启动时屏幕的显示,例如在虚拟机上,如下所示。这会成为一个问题,因为状态行无形的(而且每次都要求用户调整 Emacs 的大小很繁琐)。 有没有办法配置 Emacs(例如init.el)以自动检测屏幕尺寸并使 Emacs 窗口适合可见视口? ...

Admin

emacs 删除页面边缘的空格
elisp

emacs 删除页面边缘的空格

在使用 emacs 工作时,我经常发现需要删除页面边缘的大量空白。 如何快速删除它?我环顾四周“删除空格” emacs lisp wiki 页面,但没有找到我需要的东西。 以下是一个例子: 按照我的粗略表示,下划线( _ )是光标,我想要跳到的位置是竖线( | )。 somecode...{ indending if(...) { | _ } } 如果我只是反复按退格键,我的小指就会很累,而且要花一段时间。我怎样才能通过快速击键将其删除,或者至少使用可以绑定的内部功能? ...

Admin

Emacs 主模式键映射定义失败
elisp

Emacs 主模式键映射定义失败

因此,我尝试编写一个简单的主要模式(报告模式)使用作为示例。似乎一切都正常,只是键盘映射似乎没有真正映射。 如果我这样做了,C-h f report-mode我就会正确地看到我所添加的关键地图列表,即: ESC n kill-dupe 但是,当我使用 USE Mn 或 ESC n 时,什么都没有发生。我可以通过手动调用该函数,M-x kill-dupe所以这似乎不是问题。 遗憾的是,由于机器位于不同的网络上,我无法复制粘贴实际的 elisp 代码。 我可以复制我使用的确切示例(并进行替换): (defvar report-mode-ma...

Admin

如何仅在 term-line-mode 中启用制表符完成
elisp

如何仅在 term-line-mode 中启用制表符完成

我安装了 company-mode。当我在 term-mode 中按 tab 时,它总是调用 company-complete。我尝试使用以下方法禁用 company-mode (global-company-mode '(not (equal major-mode 'term-mode))) 以下也不起作用 (add-hook 'term-mode-hook (lambda() (company-mode 0) (global-unset-key (kbd "<tab>")))) 我尝试了另一种方法 (defun term-sen...

Admin

如何在 outline-regexp 中设置 outline-minor-mode 标题级别
elisp

如何在 outline-regexp 中设置 outline-minor-mode 标题级别

我正在尝试向程序模式添加自定义标题,我希望它位于最高级别,并将所有其他级别向下移动,这样我就可以为我的长脚本添加更多结构。例如,对于 python 模式,标题格式为“# *”,星号的数量决定了它的级别。我的方法是通过添加这样的钩子来修改 outline-regexp 变量。 (defun my_heading() "custom heading for all prog mode" (setq outline-regexp (concat "\\(?:" comment-start " [*]\\{1,8\\}\\)?" outline-regexp)))...

Admin

在 Emacs 中为注释部分添加语法高亮
elisp

在 Emacs 中为注释部分添加语法高亮

我有以下内容 (defun add-c-syntax-highlighting () (font-lock-add-keywords nil '( ("\\<\\(\\-+\\)" 1 font-lock-warning-face prepend) ("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)))) 和 (add-hook 'c-mode-common-hook 'add-c-syntax-highlighting) 对这个简单的缓冲区进行测试产生了看...

Admin

如何以编程方式创建具有给定名称的新 Emacs 框架?
elisp

如何以编程方式创建具有给定名称的新 Emacs 框架?

我需要能够创建框架并以编程方式引用它们。 如何创建一个具有给定名称的新 Emacs 框架,以便以后可以引用它? 我知道如何以交互方式或编程方式创建新的框架:https://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html 可以用不同的方式显示框架标题:http://www.emacswiki.org/emacs/FrameTitle但我找不到如何设置和引用框架名称。 代码指针或精确的搜索引擎搜索就足够了。 先感谢您。 ...

Admin

Emacs - 在标记整个缓冲区和缩进区域后将光标移回
elisp

Emacs - 在标记整个缓冲区和缩进区域后将光标移回

我是 Emacs 新手,为了在 Emacs 中自动重新格式化我的源代码,我创建了简单的宏使用mark-whole-buffer和indent-region命令,映射到 Cj 快捷方式: (fset 'format-document "\C-[xmark-whole-buffer\C-m\C-[xindent-region\C-m") (global-set-key (kbd "C-j") 'format-document) 但是,执行时,光标的原始位置会丢失,新光标位置会设置为缓冲区的开头。有什么方法可以执行此宏并将光标返回到其先前的位置?我在 Ubu...

Admin

Emacs:使用错误调试来捕获错误
elisp

Emacs:使用错误调试来捕获错误

当我打开一个空的 haskell 文件并激活时haskell-mode,我收到消息 user-error: No items suitable for an index found in this buffer 如果我做同样的事情,但事先打电话,我会收到同样的消息:当发出信号toggle-debug-on-error时它不会进入调试器。user-error 我如何让 emacs 进入调试器user-error? ...

Admin

Emacs:dolist 不适用于点
elisp

Emacs:dolist 不适用于点

我是 Emacs 新手。我打算使用sh-mode一些文件名模式,因此我将以下几行添加到~/.emacs.d/init.el: (dolist (pattern '("\\.zsh$" "\\.?zshrc$" "zshrc\\.")) (add-to-list 'auto-mode-alist (pattern . sh-mode))) 但是,它显示以下错误: 符号的函数定义是无效的:模式 如果我使用: (dolist (pattern '("\\.zsh$"...

Admin

在 emacs 中高亮显示所有编译错误
elisp

在 emacs 中高亮显示所有编译错误

有没有一个好的方法可以突出显示 emacs 中的所有编译错误,特别是在 haskell 模式下? 函数next-error( C-x `) 仅突出显示单个错误,但它不会将其设置match-data为错误,至少在 中不会haskell-mode。haskell-interactive-mode-next-error更没用的是(error "No more errors")在最后一个错误时调用,所以我认为也许它只是为了交互调用。 我做了以下操作来在每个编译错误处创建突出显示覆盖,但它真的很笨重和不可靠。next-error-function应该由编译模式定...

Admin