Emacs

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

3
Magit将大块分成两个大块
在SO方面存在一个关于使用magit拆分大块的问题,给出的两个解决方案是对区域进行分级(标记区域,命中阶段),或者使用 +&-。那不是我所追求的。 在magit的状态缓冲区中,我想在某个点或至少在该点周围的直线上将一个块分为两个块。 扭转这个(不好意思的差异格式) @@ blah blah blah - foo + bar + baz + 进入 @@ blah blah - foo + bar @ blah blah + baz 当该点在栏上时。 动机: baz是一个调试语句,所以我想从foo&的提交中删除它,bar而又不会摆脱它。 bar并且baz仅部分相关,这意味着它们的更改不应在同一提交中。 bar既大又baz小,这使得拆分大块头而不是进行选择变得容易得多bar 与最后一点类似,假设20行提交包含不应上演的中间一行。比起使用区域,将顶部和底部的两个大块块分割并上演而忽略中间的大块块会更容易。 当diff演示将修改过的内容的前后分开,而中间没有帮助时,有时会出现上述情况。例如 @@ line - old_foo + random stuff + new foo
34 magit 

1
如何使公司模式在纯文本上区分大小写?
默认情况下,公司模式似乎会将每个预测都转换为小写。 例如: HelloWorldOfGoo HelloWorldOfEmacs -> Hell [Helloworldofgoo] //Company prediction [Helloworldofemacs] 对于没有特殊后端的区分大小写的编程语言,这不太实用。如何使公司模式区分大小写?


2
ESS直接绘制到Emacs缓冲区吗?
问:如何获得ESS(R)直接绘制到Emacs缓冲区? 通过ESS与R交互时,R默认会在Emacs外部生成一个单独的图形窗口以绘制其图。(当然,一个可以选择其他图形设备,这就是我们将其绘制为PDF的方式,等等。)两个问题:首先,新窗口夺走了Emacs的关注,其次,确保所有内容都保持整洁会很好在Emacs生态系统中。 因此:有没有办法将“直接”(或什至是间接)绘制到Emacs缓冲区,更重要的是,这样做无需用户进行大量手动干预? 在这个旧的Stack Overflow线程中已有一些先前的讨论,但是提出的部分解决方案并不理想。它们主要涉及更改R中的绘图设备(例如,更改为PNG),绘图到临时文件,然后在Emacs缓冲区中手动访问该文件。这一切让我感到非常笨拙,特别是如果目标是交互使用绘图窗口/缓冲区并在一个会话中绘制许多绘图(或动态添加图层)。 我在这里推测,但令我惊讶的是,由于R和Emacs都支持SVG,因此这可能是一种有用的格式。但是,我不清楚是否/如何挂接到R进程中以进行实时通信。有没有一种方法可以将R吐出的SVG代码直接放入Emacs缓冲区中,还是需要通过临时文件的中介?当R创建一个临时文件时,如何说服Emacs自动访问一个新的临时文件,或者当临时文件被新图更新/覆盖时,如何更新这样的图缓冲区?
33 ess  r 

8
如何继续进行package.el签名检查失败
我只是尝试通过ascii-art-to-unicode从gnu存储库(http://elpa.gnu.org/)安装list-packages。我收到以下错误: package--check-signature: Failed to verify signature ascii-art-to-unicode-1.9.el.sig: ("No public key for 474F05837FBDEF9B created at 2014-09-24T16:20:01+0200 using DSA") 我正在使用酒桶/货盘来管理我的包裹;我错过了一些设置吗?elpa最近有一些变化吗? 我正在使用emacs 24.4预发行版。

3
与XEmacs相比,GNU Emacs缺少什么功能?
在功能方面,目前区分XEmacs和GNU Emacs的关键点是什么? 为了考虑不同的发布时间表,应将每种Emacs风格的最新开发版本视为比较的基础。 我们应该避免就历史/组织/哲学/ ...问题争论不休,因此请仅提及纯粹的功能/技术差异。
32 xemacs 

6
与常规emacs一起运行spacemacs:如何保持单独的.emacs.d
我想尝试spacemacs。但是我现在还不想从常规的emacs配置切换到其他位置,所以我希望当前位于我的配置.emacs.d位于一个目录中,而让spacemacs的等效配置位于另一个目录中。我不在乎两个目录的名称。 缺少chroots / LD_PRELOAD /其他欺骗手段,这是否可能?我该怎么做?

10
以最少的击键杀死或复制当前行
我确实C-a C-k C-k要杀死整个线路点。 如果我想复制该行而不是杀死它,则可以C-/ C-/ 在键入上面的序列后立即点击。 或者,我可以做C-a C-SPC C-n M-w。 有没有更快的方法来终止或复制整个线点?

3
是否有Emacs模式突出显示与已提交版本的差异?
Xcode具有的一个我认为很不错的功能是“比较”模式,该模式连续显示当前缓冲区和最新提交之间的差异。 Emacs有这样的东西吗?我不太在乎同时的并排视图。仅突出显示已更改的任何行的背景将有很大的帮助。 我知道我总是可以做到的C-x v =,但这是一个时间点的静态视图,仅显示差异。我想查看我的整个文件,可编辑,突出显示差异。

3
手机或Evernote上的组织模式?
我使用组织模式来跟踪所有内容;想法,注释,待办事项列表,代码段等。您为它命名。但是,我有一个问题,就是我无法轻易在手机上提取Org模式的数据,即使只是为了快速检查笔记或在笔记中进行搜索也是如此。 需要明确的是,我将组织文件存储在Github存储库中,这很棒,但是仍然不适用于智能手机浏览和搜索。 理想情况下,我正在寻找一种将组织模式注释与Evernote同步的方法。这可行吗?如果没有,我在手机上浏览组织模式文件的替代方法是什么? 如何轻松同步手机,以后再通过手机浏览和搜索组织模式文件?
31 org-mode 

8
如何在Emacs中选择非连续区域?
假设我已经在当前缓冲区中选择了一些文本。是否可以选择另一段文字,同时保留先前的选择(依此类推)? 添加:此功能的动机如下:假设我有一些看起来像这样的文本: paragraph 1 ... paragraph 2 ... paragraph 3 ... paragraph 4 ... paragraph 5 ... 我想删除一些段落(例如2、4和6),然后将它们插入第1段之前。
31 region 

3
为什么“ let”在词法范围内更快?
在阅读dolist宏的源代码时,我遇到了以下注释。 ;; 这不是一个可靠的测试,但这并不重要,因为两种语义都可以接受,其中一种在动态作用域下会更快,而另一种在词法作用域下会更快(并且具有更清晰的语义)。 其中提到了此代码段(为清楚起见,我对其进行了简化)。 (if lexical-binding (let ((temp list)) (while temp (let ((it (car temp))) ;; Body goes here (setq temp (cdr temp))))) (let ((temp list) it) (while temp (setq it (car temp)) ;; Body goes here (setq temp (cdr temp))))) 看到let循环中使用了某种形式,这让我感到惊讶。我曾经认为,与setq在相同的外部变量上重复使用相比,这比较慢(就像上面第二种情况一样)。 我本可以将其视为无用,如果不是在其上方的注释中明确表示,这比替代方法(带有词法绑定)要快。所以...为什么呢? 为什么上面的代码在词法绑定和动态绑定方面的性能有所不同? 为什么let用词法形式更快?

5
有没有办法从grep / ack / ag输出模式使用查询替换?
我知道find-grep-dired,标记了相应的文件,然后按Q来运行dired-do-query-replace-regexp标记的文件。不幸的是,这需要重新启动grep,并且不再使用git-grep,ack或ag并切换到使用find-grep具有不同搜索语法的使用。 我也知道multi-occur和occur-edit-mode,但是这要求重新启动搜索并使用发生。最后,ag-dired似乎与文件名匹配,而不与文件内容匹配。 我当前的方法是生成grep输出,然后运行一个从grep缓冲区开始的宏,并访问每个匹配项并对其进行更改。我希望query-replace直接在找到的匹配项上使用。 我想这样做是要么快速构建从现有的grep输出dired缓冲区,这样我可以标记对他们的相应文件和电话查询,正则表达式,或者变换grep的输出入缓冲区的列表multi-occur,这样我可以使用occur-edit-mode来在适当位置编辑它并query-replace在该缓冲区上运行。 是否存在此功能,或者有其他工作流程可以解决此问题?
31 dired  editing  replace  occur 

2
了解emacs align-regexp
我已经阅读了Emacs文档,align-regexp但是仍然很难理解它是如何工作的。我要说的是它的前缀形式C-uM-xalign-regexp,而不是简单形式M-xalign-regexp。这是我的问题: 第一个参数(正则表达式)是否必须与字符串的整个行匹配?如果正则表达式仅匹配字符串的一部分怎么办? 向第二个参数提供什么(要修改的括号组(如果为负,则进行调整))?据我了解,我需要提供捕获的组号(从1开始计数),对吗?“如果否定则为正”是指,如果我希望第3组正确对齐,我将提供-3输入内容吗? 第三个参数“间距量(或列,如果为负)”是什么意思?我只是完全不了解此参数的作用。 我收集了一些文本示例进行练习。如果任何人都可以使用下面的文字作为示例,那将非常有帮助。 从 class CreateStudents < ActiveRecord::Migration def change create_table :students, :comment => "学生信息表" do |t| t.string :political_status, :comment => "政治面貌" t.string :education_level, :comment => "培养层次" t.string :enroll_method, :comment => "入学方式" t.date :enrolled_at, :comment => "入学时间" t.string :charge_type, :comment => "收费类别" t.string :enrolled_year, :comment => "学籍年度" t.string …

3
如何知道何时或何时不使用变量名前的单引号?
我有以下内容: (setq some-variable "less") 我很困惑为什么必须将单引号与一起使用,boundp而不将其与一起使用bound-and-true-p。 范例1: (when (boundp 'some-variable) (message "some-variable is %s" some-variable)) 结果: “多变少” 示例2a: (when (bound-and-true-p some-variable) ;; Note that using single-quote causes error (message "some-variable is %s" some-variable)) 结果: “多变少” 示例2b: (when (bound-and-true-p 'some-variable) ;; Note that using single-quote causes error (message "some-variable is %s" some-variable)) …
31 elisp  quote 

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.