如何将git的默认编辑器替换为emacs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将git的默认编辑器替换为emacs相关的知识,希望对你有一定的参考价值。

参考技术A 为什么用Emacs(可选)
简单谈谈,因重点是"怎么做",不是"为什么".
真正精通后Emacs,其他编辑器自然精通
一旦尝过最好的,你自然了解好的编辑器应该有哪些功能.
比如一个内嵌的插件管理器是最基本的.
如下载了第三方插件,如果发觉其有问题,可以在不碰该插件原始代码的情况下修复.
插件服务器关闭了,应可以在自带的U盘上快速建立镜像.
目前流行的编辑器如Sublime Text还做不到以上几点.
Emacs 的特点决定了其社区水准不低
Emacs 用 Lisp 开发,Lisp 不同寻常的语法决定了其开发者都是资深开发者,掌握了多门语言.
Lisp 并不能给你带来任何好处,所以其社区成员都是纯粹的技术爱好者,投机取巧的功利主义者对其没有兴趣.
和IDE比较,Emacs 做的更多更快
IDE针对特定语言或框架优化,而Emacs完成通用任务更有效.
例如,我碰到难题,需要上IRC请教国外高手(工作流是,粘贴代码到http://gist.github.com, 在irc提问,看网页,将解决方案粘贴回来),Emacs 集成了IRC工具和浏览器 (例如),操作就很方便.
我使用 Visual Studio 多年,Firefox 也是高手,相信我,大多数情况下 Emacs 更快.
当然口说无凭,请看高手操作的 youtube 视频, Emacs Power: Can your editor do THIS!
顺便说一下,很多初学者关心的代码自动完成,几门主流语言支持都不错(包括java).
Emacs会永存
个人开发者会丧失兴趣,公司会倒闭.但自由软件基金会将一直存在下去.Emacs 作为其招牌软件也会维护下去,我的投资永不会贬值.
使用 Emacs 可以立刻开始工作.
软件开源,配置是纯文本,且资源消耗小,安装包很小 (命令行版本 30M 左右),任何环境下都可用.
这在大项目中特别有益,例如,某项目需同时编辑 Perl, Java,C, Bash, SQL, 要编辑远程服务器上的代码,网速不快. Emacs的优势就体现出来了.
一年指的是一年中的空闲时间
我没说一年内须什么事都不干专学Emacs, 我最反对没有短期回报的悬梁刺股.
我利用一年中通勤时间就取得了很大进步,自信到可以写下本文.
参考技术B        core.editor
           Commands such as commit and tag that lets you edit messages by
           launching an editor uses the value of this variable when it is set,
           and the environment variable GIT_EDITOR is not set. See git-var(1).

设置 GIT_EDITOR 环境变量,或者 git config core.editor emacs

本回答被提问者采纳

.emacs 编辑以始终在终端模式下启动 Emacs?

【中文标题】.emacs 编辑以始终在终端模式下启动 Emacs?【英文标题】:.emacs Edit to Always Start Emacs in Terminal Mode? 【发布时间】:2011-01-05 20:24:40 【问题描述】:

我使用 emacs 作为我的首选编辑器,由于我在终端中做很多工作,所以我总是将 emacs 运行为

emacs -nw

使其在终端而不是窗口中运行。

我只想运行emacs 并让它知道它应该在终端中运行。我的问题是 - 我如何编辑我的 .emacs 文件以使其成为默认行为?

【问题讨论】:

您使用的是什么操作系统?许多 linux 发行版都有一个 emacs-nox 包,或类似名称的东西。这是在没有图形支持的情况下编译的,因此将始终在终端中运行。 我在 Ubuntu 10.10 上,如果有帮助的话。 有趣的是,在 Mac OSX 上,emacs 对我来说总是意味着 emacs -nw。 【参考方案1】:

您不能在 .emacs 文件中执行此操作。在解析该文件时,“选择的”emacs 二进制文件已经在运行。

您可以按照一位评论者的建议安装 emacs-nox 软件包,或者在您的 shell 中创建一个别名,以便始终将“emacs”视为“emacs -nw”。

兰迪

【讨论】:

+1 用于别名建议 - 在这种情况下要走的路 感谢您的详细解答!我会试试看。 emacs-nox11-* 在 FreeBSD 上。正是我想要的,谢谢!【参考方案2】:

我正在使用 bash 别名而不是 .emacs 来执行此操作。 将此行添加到您的 ~/.bashrc。

alias emacs='emacs -nw'

【讨论】:

【参考方案3】:

一般来说,有任何简单的方法可以解决与 emacs 完全无关的问题,并且适用于任何可以在控制台和 X 中选择运行的程序:

unset DISPLAY

当然,您可能不希望将其放在配置文件中以全局应用于所有 shell 会话,因此如果您希望它仅应用于 emacs,则可以从命令行调用它,如下所示:

DISPLAY= emacs

注意空格!!!如果您将空格留出,则意味着您将 DISPLAY 设置为 emacs 而不是将 DISPLAY 设置为空...此命令是以下命令的简写:

DISPLAY=; emacs

因此,要么从命令行使用上述内容,要么将其放入看起来像这样的包装脚本中:

#!/bin/bash
unset DISPLAY
exec emacs

我推荐那里的 exec,因为它会用 emacs 替换你的包装脚本;要查看两者之间的区别,您可以运行:

pstree -p

【讨论】:

btw:我很好奇——如果你在 X 环境中运行,为什么你总是想在控制台中运行 emacs? 第三个带分号的命令与第二个命令相同。如果添加分号,它将在当前 shell 以及 emacs 子进程中将 DISPLAY 设置为空。如果没有分号,它仅适用于 emacs。使用分号是破坏性的。 为什么要打开十亿个窗口?此外,我在“屏幕”内完成所有编码工作,这对 X 没有意义。@aculich【参考方案4】:

当我第一次在 Windows 中为 emacs 设置“emacs -nw”别名时,我陷入了一种我认为 tototoshi 的解释不起作用的情况。然而,所需要的只是重新启动我的终端。因此,我认为值得一提的是,在 Windows 中(至少)如果您在 git bash 终端中使用 emacs 来创建 .bashrc 文件并向其中添加“alias emacs='emacs -nw”(正如 tototoshi 提到的那样),您有关闭并重新打开您的终端以使其正常工作。

【讨论】:

以上是关于如何将git的默认编辑器替换为emacs的主要内容,如果未能解决你的问题,请参考以下文章

操作系统Emacs是如何沦落为一代编辑器的?

.emacs 编辑以始终在终端模式下启动 Emacs?

UNIX 系统下退出 git commit 编辑器

如何更改 Git 的默认编辑器 [重复]

将 Visual Studio Code 设置为我的 Mac 的默认编辑器(包括编辑 Git 提交)

如何在 MacOS 中将 git 的默认代码编辑器更改为 coderunner4(一个 macOS 应用程序)