我编写了一个 C++ 程序,当我在 ansi-term 中使用 g++ 编译它时,显示了一些奇怪的字符:

如果需要,错误是我没有声明变量 n。我该如何纠正这个问题?
当在带有客户端的守护进程中运行 emacs 并点击 Cx k 时,它显示:Emacs 缓冲区仍然有客户端。你确定你要退出吗?
但是当使用Cx#时,它立即退出。
我不明白其中的区别。如果 Cx k 在客户端中,为什么它一开始就不表现正常?
我发现这个片段应该使 Cx k 行为正常,但我不明白其中的区别。
此外,当 emacs 客户端启动时,它会从先前的缓冲区开始几秒钟,然后打开新的缓冲区。emacs 服务器的目的不就是加快初始启动时间吗?为什么会这样做/我该如何修复它?初始加载时,它会从头开始几秒钟。
当我在 org-mode 8.2.5h 中导出到 ascii 时:
...
Run Code Online (Sandbox Code Playgroud)
导出如下:
…
Run Code Online (Sandbox Code Playgroud)
我该如何防止?
最近,我经常遇到这样的错误:
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
Run Code Online (Sandbox Code Playgroud)
我发现在某些情况下,错误是由这样的表达式引起的:
(= nil 4)
Run Code Online (Sandbox Code Playgroud)
我不确定这个表达式是否打算像这样编写,但只有在我将其更改为:
(eq nil 4)
Run Code Online (Sandbox Code Playgroud)
但是,(1)我需要将所有内容替换=为eqemacs lisp脚本(2)我不确定代码是否应该像这样修改.
我想知道我是否可以在配置文件(.emacs)中写几行而不是修改源代码来完成任务.有没有人有这个想法?
回到我的 Unix 时代,我曾经可以通过在启动时指定一个选项来在屏幕右上角启动 Emacs geometry。但是,如果我使用
C:\Emacs\emacs-24.2\bin\runemacs.exe -geometry 80x60-0+0 --debug-init
Run Code Online (Sandbox Code Playgroud)
在 Windows7 上,Emacs 窗口不会停留在右上角。它确实短暂地出现在右上角,然后窗口在 Emacs 初始化时调整大小,并移出右上角。看起来调整大小是由于字体的规范造成的,因为当我在 .emacs 中注释掉以下行时,窗口仍位于右上角。
(set-default-font "-*-Courier New-normal-r-*-*-12-90-*-*-c-*-*-ansi-")
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何强制 Emacs 进入屏幕的右上角(除了使用默认字体)。;)
我试图将一些论据传递给ecb.但我认为这是一个逃避引用的问题.下面的$ edir变量特别给出了很多问题.
#!/bin/bash
edir='"(open-project-ecb \"'`pwd`'\")"'
#edir=`pwd`
echo $edir
command=( -n --eval $edir)
emacsclient "${command[@]}"
Run Code Online (Sandbox Code Playgroud) 在Jetbrains产品中,如IntelliJ和RubyMine,你可以在git diff的diff窗口中点击F4跳转到当前编辑.Magit中是否有任何功能可以让emacs从git直接转到diff?
为了在haskell模式下执行保存的特定操作,此页面建议重新C-x C-s绑定要使用的键绑定haskell-mode-save-buffer而不是仅使用标准save-buffer命令:
(define-key haskell-mode-map(kbd"Cx Cs")'haskell-mode-save-buffer)
预期的行为是能够将haskell模式特定的挂钩添加到标准save命令.所以我已将它添加到我的~/.emacs文件中.
但是当我在haskell模式下使用此键绑定时,会发生以下错误:
符号的函数定义为void:haskell-mode-save-buffer
我还在.emacs文件中添加了这一行:
(add-hook'haskell-mode-hook'haskell-mode-save-buffer)
但它没有帮助.我想它似乎没有做任何事情,因为haskell-mode'save-buffers定义是void,所以我想将它添加到东西将无济于事.我也尝试添加该行
(define-key haskell-mode-map(kbd"Cx Cs")'haskell-mode-save-buffer)
到haskell-mode.el文件本身(已安装目录(ELPA)中的文件),但我真的不知道这是否有帮助.我不能调试那种东西.
我试图找出是否在haskell-mode中定义了这个函数.M-x describe-variable "haskell-mode-"使用TAB 运行表明它在这组变量中不存在.编辑:正如评论中指出的,我应该describe-function尝试找到这个功能.M-x describe-function "haskell-mode-"使用TAB 运行显示haskell-mode-save-buffer在此处找不到.有趣的是,这里列出了两个似乎暗示能够提供预期功能的功能:
哈斯克尔模式 - 之前保存处理程序
[...]
哈斯克尔模式 - 后保存处理程序
在haskell-mode.el文件中搜索"haskell-mode-save-buffer"不会产生任何结果.
在我的结尾有什么问题,我是如何重新绑定密钥的(没有明确提到我应该添加该行.emacs,无论如何,这只是我的假设),或者这是添加钩子的方式到haskell-mode中不再使用的save命令了吗?
我正在使用我的eMac的罗技pc键盘,并希望像往常一样使用Home和End按钮.我已经为mac终端反弹了.并希望在emacs中重新绑定它们.
我想做一个计时器,像这样:
(defun dumb (y)
(defun P () (print y))
(run-with-timer 0 5 'P))
(dumb 5)
Run Code Online (Sandbox Code Playgroud)
然后 Emacs 给了我这个错误:
Error running timer `P': (void-variable y)
Run Code Online (Sandbox Code Playgroud)
我猜问题是在该(defun P () (print y))行中,变量y没有被评估,所以当我运行时(dumb 5),函数P尝试打印y未定义的,而不是文字5。但我不知道如何解决它。任何的想法?
我试图在elisp中创建一个简单的解析器,我遇到了一个问题,我defvar是一个全局的,然后我将setq一个新值放入其中.这是第一次工作.然而,后来setq每次都失败了.
以下代码是问题的简化:
(defvar buf '(BUF))
(defvar head nil)
(defun pparse (seq)
(defun status ()
(princ (format "Parse: %40s || %-20s\n"
(prin1-to-string seq) (prin1-to-string buf))))
(while seq
(status)
(setq head (car seq))
(setq seq (cdr seq))
(cond ((equal "x" head)
(nconc buf (list head)))
((equal "," head)
(setq buf '(BUF))
;;(setcdr buf nil) <- fixes it but doesn't answer my question
)))
(status))
(pparse '("x" "," "x" "," "x" "," "x"))
Run Code Online (Sandbox Code Playgroud)
哪个产生这个输出:
Parse: ("x" "," …Run Code Online (Sandbox Code Playgroud) 我在Mac OS X上使用Emacs 24.1.1时遇到了问题.我正在编辑Jade和CoffeeScript文件,因此我为这些文件类型打开了空白模式.
我所看到的是,无论whitespace-line-column的设置如何,都会用空白行字体突出显示超过70个字符的行.

在这个镜头中,很明显我已经定制了whitespace-line-column来跟踪填充列,并且我将fill-column设置为120,但是突出显示了更短的行.
我已经浏览了Jade模式的代码,并没有看到任何可以解释这种行为的东西,但我对Emacs Lisp只有了解.
提前感谢任何指针!
如果我在拆分窗口之间移动,请参阅此SO答案/sf/answers/327030791/
C-x o
Run Code Online (Sandbox Code Playgroud)
执行此操作时,它会关闭左侧缓冲区/拆分.我只是想在分裂之间跳跃而不是关闭当前的分裂.
我该怎么做呢?