Emacs

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

1
模式行中有多行?
我想让Modeline不在一行中显示所有信息,而是以两行显示-例如,第一行显示光标信息,缓冲区,文件,git和flycheck,第二行显示模式信息(主要和次要模式)。可以吗?我用Google搜索了bindings.el和emacs C源代码,很遗憾没有找到可以更改modeline的行号的地方,有人可以帮忙吗?谢谢。
10 mode-line 

4
我可以重新加载库并让defvar重新分配值吗?
我正在开发一个库,并且想在编辑后重新加载它而不退出Emacs(假设它在load-path): (load-library "myname") 当我这样做时,Emacs不会对defvar-bound变量进行更改。 我不想在每个顶级表单上手动调用eval-defun(C-M-x)。是否M-x eval-buffer尊重defvar/ defcustom?
10 variables  defvar 


2
可能“分离”子进程?
我使用browse-url/ browse-url-firefox从Linux(Fedora 23)下的Emacs 24.5.1内的Firefox中打开链接,该链接实质上是firefox通过URL 执行可执行文件的start-process。如果已经有一个Firefox实例在运行,这将导致该URL在新选项卡中打开并终止firefox从Emacs生成的可执行文件,但否则,一个新的Firefox实例将作为Emacs的进程子级运行(出于测试目的) ,等效于M-! sleep 1h & RET)。 如果然后我想退出Emacs,它会问我“活动进程存在;要杀死它们并继续退出吗?” 可以选择杀死Firefox实例,或者让Emacs运行。相反,我想将firefox进程与Emacs父进程“分离”,以便在保持Firefox实例运行的同时退出Emacs。 是否可以从Emacs产生“生存”退出Emacs的进程,或者必须在Emacs退出时所有产生的进程都死掉?
10 linux  process  exit 


5
创建多个eww缓冲区的简单方法
M-x eww提示输入网址或关键字,并打开一个新的*eww*缓冲区。在中eww-mode,G绑定到eww,它将替换单个eww缓冲区的内容。 为了为不同的网页创建多个缓冲区,我不得不创建一个新的缓冲区,eww-mode手动设置,然后按G(或M-x eww)访问URL。 我可以轻松地编写一个为我完成所有这些工作的函数,但是令我惊讶的是,该功能不仅仅是内置的。我只是想念它吗?
10 buffers  eww 

2
如何在次要模式下添加复杂的语法突出显示?
我想在次要模式下以各种面孔突出显示代码。 这是接近我想要的屏幕截图: 有一两件事,我缺少的是具有注释字符#在 font-lock-comment-face。这样做的想法是使注释“属于”以纯文本突出显示的轮廓,因此更易于阅读。经常以平常不太显眼的表情发表评论。 这是我使用的代码: (setq-local font-lock-defaults '(python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . lpy-font-lock-syntactic-face-function))) (defun lpy-font-lock-syntactic-face-function (state) "Return syntactic face given STATE. Returns 'defalt face for comments that belong to an outline." (cond ((nth 3 state) (if (python-info-docstring-p state) font-lock-doc-face font-lock-string-face)) ((save-excursion (while (and (> (point) (point-min)) (progn (move-beginning-of-line …

1
纠缠源代码块时是否可以从STDIN中读取用户输入?
在与源块纠缠的同时,是否可以从STDIN中读取用户输入org-babel-tangle? 我知道:Org Mode Babel-交互式代码块评估。 这无助于解决这个特殊的用例,因为它仍然不允许来自shell的正确STDIN输入,而只能在Emacs 内部模拟有限的输入。 背景 我想使用Org的Babel通过从一个组织文件执行一些教程来学习新的编程语言(Perl和Bash)。 问题在于许多教程都依赖于STDIN。例如,如果运行以下perl tidbit: #+BEGIN_SRC perl :tangle hello-name.pl :results output :export code use 5.010; use strict; use warnings; say "What is your name?"; my $name=<STDIN>; say "Hello $name, how are you?"; #+END_SRC Emacs不会等待用户的交互在STDIN上正确键入名称,它将立即输出: #+RESULTS: : What is your name? : Hello , how are …

2
如何使用其子复选框自动调整组织任务状态
我的Org文件中有几个任务,其中一项包含以复选框开头的项目(但仅限于那些)。它们的末尾都有一个统计cookie([n / m])。 我正在寻找一种方法来自动更新父任务TODO到DONE一旦所有的复选框被标记为要做的事。 该文件说: 如果您希望所有孩子都完成后一个TODO条目自动更改为DONE,则可以使用以下设置[...] 另一种可能性是使用复选框来标识大量子任务(层次结构)(请参阅复选框)。 我了解的最后一部分是,如果子项是复选框,则父状态应该已经自动更新(事实并非如此)。 我想念什么? 编辑: 从org-after-todo-statistics-hook的文档(org.el): 在更新TODO统计cookie后调用的挂钩。每个函数用两个参数调用:未完成的条目数和完成的条目数。 这意味着从orgmode.org提出的代码: (defun org-summary-todo (n-done n-not-done) "Switch entry to DONE when all subentries are done, to TODO otherwise." (let (org-log-done org-log-states) ; turn off logging (org-todo (if (= n-not-done 0) "DONE" "TODO")))) (add-hook 'org-after-todo-statistics-hook 'org-summary-todo) 将不计算复选框项目。
10 org-mode 

1
如何将ORG文件导出到交互式HTML站点?
有没有办法将.org文件导出为支持扩展和折叠标题的html? 我想要的是能够按TAB之类的键并展开和折叠轮廓,但是在html站点上。 Github Wiki支持orgmode,但是它们似乎不允许标题的扩展和折叠。
10 org-mode  html 

3
如何编写透明的“传递”函数包装器?
我所说的“透明的“传递”函数包装器”是一个函数,我们称它为“函数”,它wrapper通过将其所有参数传递给其他函数(称为它)来返回结果wrappee。 在Emacs Lisp中如何完成? 注意:理想的wrapper功能与功能的签名无关wrappee。即它不知道的参数的数量,位置,名称等wrappee;它只是将其所有参数传递给wrappee,就像wrappee最初调用的那样。(不过,您无需弄乱调用堆栈,即可将调用替换wrapper为wrappee。) 我对我的问题发表了部分答案: (defun wrapper (&rest args) (apply 'wrappee args)) 仅当工作wrappee是没有互动。显然,交互函数获取其参数的方式代表了与该(&rest args)咒语所涵盖内容不同的“渠道” 。我还是需要的,因此,是一个equally- wrappee的的-agnostic对应(&rest args)于其中的情况下签名wrappee是一个互动的功能。 (此问题是由先前问题中描述的问题引起的。) 如果需要进一步澄清我要的内容,下面是几个示例,显示了我所追求的Python和JavaScript等效项。 在Python中,实现这种包装器的几种标准方法如下所示: def wrapper(*args, **kwargs): return wrappee(*args, **kwargs) # or wrapper = lambda *args, **kwargs: wrappee(*args, **kwargs) (此处*args代表“所有位置参数”,**kwargs代表“所有关键字参数”。) 相当于JavaScript的是这样的: function wrapper () { return wrappee.apply(this, arguments); } // or wrapper = function …
10 advice  arguments 

2
Emacs上通常可以用来绑定键盘宏的未使用键是什么?
我读的是通常的方式绑定键键盘宏C-x C-k 0来9和A到Z。 因此,例如,在定义键盘宏之后,我们可以键入内容 C-x C-k b,Emacs将要求绑定键。并且为此目的保留的键是C-x C-k 0to 9和Ato Z。 但这涉及许多击键。有什么好的按键可以绑定到此?我发现我可以使用Emacs GUI版本将其绑定到运行Ubuntu Virtual Machine的Mac上C-<return>或Option+ Enter。这样就可以了,但是Emacs终端版本和Mac上的本机Emacs都将C-<return>或Option+ Enter视为just <return>,因此不起作用。 Emacs上通常可以用来绑定键盘宏的未使用键是什么? 又或者,是否可以显示所有未绑定到Ctrl和的简单键Meta?


2
全局安装软件包
这是可以/应该做的事情吗?例如,经常在用户帐户中使用emacs,有时在根帐户中使用emacs。使用软件包管理器(例如果酱或其他东西)时,是否需要为每个帐户分别安装相同的软件包?在我看来,它们已安装在您的主目录中。

1
我该如何走组织模式树?
背景 我正在为Emacs编写演示模式。我希望输入的是组织文件,因为组织文件非常适合数据。 问题 我必须将组织模式文件转换为可以迭代的“幻灯片”数据结构列表。为此,我想使用以下组织模式文件: * this is the first headline, with a title property and no contents * this is the second headline, with contents - dash list nested under the second headline - further nested ** nested headline 并能够走路。我已经尝试过了(org-element-parse-buffer),但这确实给了我一系列元素,但是很难弄清楚如何在它们中走得更远。例如,调用(org-element-map (org-element-parse-buffer) 'headline #'identity)给出了三个元素的列表。最后一个代表“嵌套标题”。我希望“嵌套标题”成为“这是包含内容的第二个标题”的子代。 避免XY问题 我当然对将组织模式文件转换为Elisp数据结构的其他方式持开放态度。我认为 org-export对我来说不是合适的工具,因为我不想最终得到一个包含结果的新文件,但可以迭代一个数据结构。我的幼稚方式就像“给我所有顶级标题,然后我可以获取它们的属性和包含的元素(例如,纯文本或嵌套列表-无论是其他标题还是破折号列表)”。
10 org-mode 

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.