我有点像 emacs 菜鸟。
tomorrow-night-bright-theme除了下面的荧光灯我完全满意

我读过一些文章,解释了如何在 Emacs 中更改字体。
1. 在 emacs 中更改高亮线颜色
2. 更改 Emacs 语法高亮颜色
但是,我不知道与该颜色相关的符号是什么。
when从subr.el获取的宏代码
(defmacro when (cond &rest body)
(declare (indent 1) (debug t))
(list 'if cond (cons 'progn body)))
Run Code Online (Sandbox Code Playgroud)
在这里,最后一种形式很复杂,
(list 'if cond (cons 'progn body))
Run Code Online (Sandbox Code Playgroud)
列表构建时,是否已经完成了评估cond和body表单?为什么程序员list在一个地方和cons另一个地方使用?他们俩不是采取多种形式并制作清单吗?
(list 'if cond (.......))
(cons 'progn body)
Run Code Online (Sandbox Code Playgroud) 对我来说,这些运营商似乎做了同样的事情.两者都采用符号并返回与之关联的函数.有什么区别吗?
elisp 评估返回以下内容:
(defun foo(x)(+ 1 x))
foo
(foo 3)
4
#'foo
我也不明白.
常见的lisp和elisp有区别吗?我正在从中学习资源.
所以,从我的日志文件,我处理了一些字符串,最后得到了这个结果,让我们说缓冲区名称为" 1 "
12
23
34
45
Run Code Online (Sandbox Code Playgroud)
如何获得给定缓冲区的总和?
(defun sum-of-buffer (buf)
(interactive "bBuffer Name: ")
....
(message "%i" sum))
Run Code Online (Sandbox Code Playgroud)
还是有方便的功能组合?
我正在尝试仅为Dired模式启用hl-line-mode,但无法正常工作。启用global-hl-mode可以工作,但这是每个缓冲区,而不仅仅是我不想要的缓冲区。
(defun hl-mode-for-dired ()
(setq hl-line-mode 1)
)
(add-hook 'dired-mode-hook 'hl-mode-for-dired)
Run Code Online (Sandbox Code Playgroud)
如果我尝试执行elisp,则会在emacs日志中收到此错误输出。另一个问题是为什么错误输出会像这样乱码?
hl-mode-for-dired diredp-nb-marked-in-mode-name #[nil "ÁÀ!ÂÃÄ!Ä "
[font-lock-defaults make-local-variable (... t nil nil beginning-of-line)
fboundp font-lock-refresh-defaults] 2] #[nil "ÆÇ\" È=ÉÇÊ#ÆË\"$
È=*ÉËÌ#)ÍÎÏÐÑ!QAA²AA² AA²ÉÒ Ó\"Ô#ÉÒÓ\"Õ#ÉÒÓ
\"Ö#," [dired-mode-map now bdjc bdj sep map lookup-key "J"
undefined define-key bmkp-dired-jump "
" ...] 6] #[nil "ÁÀ!Â" [bookmark-make-record-function make-local-variable
bmkp-make-dired-record] 2] dired-extra-startup)
Run Code Online (Sandbox Code Playgroud) 我想做一个计时器,像这样:
(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。但我不知道如何解决它。任何的想法?
我正在使用Emacs 24.5(在Spacemacs内部).我希望能够生成一个随机的5个字符的字符串,无论我的光标在emacs内,只需按一个键,比如说F2.
典型的随机字符串将是jb2nx所有字母始终为小写字母.emacs启动时随机数生成的种子值应始终不同,以防止emacs在下次打开时生成相同的随机字符串序列.
注意:
我需要此功能,在点处插入一个唯一的单词,以将其用作书签.这样我可以打开包含Org-mode随机字符串的行,例如
[[file:some-code-file::jb2nx][This line in the code-file]]
Run Code Online (Sandbox Code Playgroud)
将是我的Org文件中的一行.而jb2nx将被放置在代码文件中引用的行的注释内.
我不希望在:::之后直接引用行号,在编辑代码文件时行号可以更改.
我试图在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) 我正在尝试创建一个命令,将所选区域缩进4个空格.
适当的命令是:C-u 4 C-x <TAB>,当Cu是"universal-argument"命令C-x <TAB>的快捷方式并且是快捷方式时indent-rigidly,所以我写了这个函数:
(defun my-tab ()
(interactive)
(universal-argument 4)
(indent-rigidly))
Run Code Online (Sandbox Code Playgroud)
但是当我试图运行该函数时(带M-x my-tab)我收到此错误:
参数数量错误:(0.0),1
问题是什么?
谢谢!
函数 insert 的示例演示为:
(with-temp-buffer
(insert "hello" ?\s "world" ?\n)
(buffer-string))
Run Code Online (Sandbox Code Playgroud)
?这里是什么意思?
elisp ×10
emacs ×7
lisp ×3
emacs24 ×2
character ×1
common-lisp ×1
emacs-faces ×1
sharp-quote ×1
syntax ×1
themes ×1