Emacs

使用,扩展或开发Emacs的人员的问答

1
emacs的“ shell-mode”如何知道提示输入sudo?
在中shell-mode,类似sudo CMD的命令会在回显区域中打开一个提示符,提示: [sudo] password for root: 它怎么知道要这样做?AFAIK,这种行为不能摆脱sudo像平常一样简单运行的原因,因为read内置函数不会创建这样的提示。
17 shell-mode 

1
如何从字符串中删除装饰(文本属性)?
所谓的“装饰字符串”,是指 #("foo" 0 4 (fontified t face font-lock-function-name-face)) ...与“普通字符串”相对 "foo" (如果Elisp代码直接从缓冲区读取字符串,则可以这样修饰它。) 将装饰后的字符串转换为普通字符串的最简单方法是什么(通过剥离所有装饰)?

1
组织模式表行号自动增长?
最近,我正在使用表进行一些统计,并且我希望表的第一列表示行号,如下所示。 | | title| |--| -----| | 1| A | | 2| B | 我希望第一列的数目在创建新行后自动增加。 是否有好的建议?
17 org-mode 

2
如何在Ediff中使用两种变体?
Ediff界面有+按钮,但是似乎什么也没做(当我按下迷你缓冲区时,迷你缓冲区总是显示为“ nil”),我认为此按钮用于在结果缓冲区中使用这两种变体。 无论如何,最初的问题是:如何使Ediff通过将缓冲区A和B中的内容都放入缓冲区C中来解决合并冲突(我知道我可以编辑C,但是希望可以更轻松地完成)。 假设文件A是这样的: 同一行 不同的线 同一行 而文件B是: 同一行 另一条线 同一行 我想要文件C,将A与B合并的结果如下所示: 同一行 不同的线 另一条线 同一行
17 ediff 

2
设置标记命令(C-SPC)无法识别/损坏
我想知道如何开始以下故障排除: C-SPC什么都不做。 当我键入它时,M-x set-mark-command它没有出现在迷你缓冲区中,但是当我看到它显示为绑定到时C-SPC。 环境 我已经通过Homebrew安装了GNU Emacs(24.5.1),并且.emacs.d基于Clojure for the Brave和True以及一些其他软件包。 到目前为止所采取的步骤, 我首先尝试删除并重新安装而没有任何影响,那么我可以采取哪些步骤来确定发生了什么? 其他信息 以下屏幕快照中列出了所有已安装软件包的列表:
17 osx 

1
如何在键入时自动创建整洁的C注释块?
当您开始输入多行注释时,某些代码编辑器(例如eclipse)会自动形成整齐的块: 在emacs中也有一些软件包或其他方式可以做到这一点吗? 编辑:澄清:我不希望插入注释块的组合键。我希望在按RETafter 时自动创建一个注释框/*。

2
终止进程缓冲区而未确认?
我C-x C-k一定要kill-this-buffer。但是,当我进入运行诸如Python或MySQL之类的进程的缓冲区时,我是否C-x C-k会询问 缓冲区“ * Python *”具有正在运行的进程;杀死它(是或否)? 未经确认如何杀死进程缓冲区?

2
如何仅在打开.gpg文件时输入密码
(我了解以下内容对安全的影响,我对此表示满意。) 我的org目录中只有一个加密文件diary.org.gpg。我从未对其进行任何特殊配置,但仍然 每当我访问文件时,都会提示我输入加密密码。太好了 每当我保存缓冲区时,系统都会再次提示我两次输入密码。这是我的问题。 请注意,我尚未进行任何配置以使其正常工作,因此有关代理或钥匙圈的任何答案都必须随附配置说明。 我想到将密码写在文件内的某个位置(在标头或文件末尾的注释处)。然后,每当我保存时,Emacs都可以读取缓冲区中的密码,并使用它代替提示我。但是当我开始研究这个问题时,我完全迷失了里面的某个地方epa.el。 问:保存缓冲区时,如何从Emacs直接向加密系统/进程发送密码,而不是提示输入密码? 剩下的所有事情(在缓冲区中找到密码)我都可以弄清楚。当我试图了解Emacs如何与gpg交互时,我只是迷路了。 请注意,我在Ubuntu,Arch Linux和Windows上。这就是为什么我的第一个想法是以emacs为中心的解决方案的原因。 只要我仍然可以手动方式访问其中的文件,我就可以使用在Windows上不起作用的解决方案。
17 encryption  epa  gpg 

2
TLS连接未正确终止
运行时package-list-packages出现以下错误: Failed to download `gnu' archive. gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated. 我在Windows上运行Emacs 24.4。在本周之前,软件包下载正常进行。 我试过这个指南上设置的Emacs的GnuTLS窗口。我尝试从“ 查看是否有效”部分运行此代码: (condition-case e (delete-process (gnutls-negotiate :process (open-network-stream "test" nil "www.google.com" 443) :hostname "www.google.com" :verify-error t)) (error e)) 我确实nil插入了缓冲区,没有验证错误,根据这篇文章,这是成功的标志。但是,如果(setq gnutls-log-level 2)再次设置并运行代码,则会得到以下输出。 gnutls.c: [1] (Emacs) allocating credentials gnutls.c: [2] (Emacs) allocating x509 …

5
跨属性列表映射功能?
问:跨属性列表映射函数的惯用方式是什么? 各种映射函数(mapcar和族)在诸如列表的序列上映射函数。在处理属性列表时,即试图在列表中包含的每个属性之间进行映射(从第一个元素开始的所有其他元素)时,如何使用这些功能?在我看来,映射功能将需要成对访问元素而不是单个元素的列表。 作为一个玩具示例,如何获取属性列表并收集所有属性值?如果它是一个关联列表,它将非常简单: (mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c) 我敢肯定这可以通过循环来完成,但是这似乎有点费力,我想知道是否还有一种更惯用的方式来做到这一点。
17 elisp  mapping 

1
如何在Magit中访问命令开关
大多数magit命令是通过单个键调用的,这会弹出一个子命令和开关菜单。例如,P显示P和t作为子命令以及-f和-u作为“开关”。 击中子命令的字母会调用它们,但是一个如何调用开关?我有一个带有两个遥控器的存储库,我想推送到另一个遥控器。该-u开关看起来像只是事情,但如果我键入P -u时,-u会变为红色,但Magit不提示远程。 据我所知,该手册对任何命令都没有提及这些开关。 有人可以解释一下这些开关的一般用法。我不仅关心这个特定的开关,而且关心整个设备。
17 magit 

1
进行中断评估并在emacs-lisp调试器中观察当前堆栈?
如果某些emacs-lisp函数(例如主模式钩子)花费的时间比预期的要长,我有时想中断它并查看当前堆栈。理想情况下,我还希望能够在调试器中查看变量值,等等。我不是在谈论我故意在emacs-lisp模式下执行的代码,而是在emacs的正常操作中执行的代码。 如何直接在emacs中中断emacs-lisp代码的执行?我不知道我需要调试哪个功能。 例如,键入C-g,虽然它中断执行,但也告诉我什么功能被中断。
17 elisp  debugging 

3
延迟安排的项目以组织方式议程显示的意义何在?
一个可以设置org-deadline-warning-days有DEADLINE项目出现的天数默认之前议程的最后期限,或者一个可以通过添加,例如,做对案件逐案基础上-3d的DEADLINE时间戳。 现在,-3d对SCHEDULED项目使用相同的警告符号会产生相反的效果:在该天数内,不会添加该项目,但会从“议程”视图中跳过该项目。 从组织模式手册中: If you want to _delay_ the display of this task in the agenda, use `SCHEDULED: <2004-12-25 Sat -2d>': the task is still scheduled on the 25th but will appear two days later. In case the task contains a repeater, the delay is considered to affect all occurrences; …

2
什么是新emacsen上flet的正确替代品?
我有一些代码,使用flet临时更改的功能的行为。 ;; prevent changing the window (flet ((pop-to-buffer (buffer &rest args) (switch-to-buffer buffer))) (compilation-next-error-function n reset)) 但是,Emacs的字节编译器发出警告: In ag/next-error-function: ag.el:103:7:Warning: `flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'. 但是,cl-flet工作方式不同,因此不适合某些用例,我认为这是其中一种。 我可以看到的选项是: 告诉Emacs以某种方式忽略该警告。 自己滚flet。 使用noflet或dflet。 最好的方法是什么?
17 cl-lib 

5
停在“ forward-word”上的单词开头
我经常使用多次调用,forward-word后跟单个调用,backward-word以将点移动到行上单词的开头。我想我从未适应过forward-word与vim不同的方式w,即使使用Emacs多年后,我也无法适应这种差异。 有没有我可以使用的功能forward-word,它不会跳过单词但也会停在单词的开头?在向前移动单词时,是否还有其他不重复执行的策略可以移动到单词的开头forward-char?
17 motion 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.