博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
emacs .emacs_使用Emacs应该做的6件事
阅读量:2525 次
发布时间:2019-05-11

本文共 3689 字,大约阅读时间需要 12 分钟。

emacs .emacs

想象一下使用Python的IDLE界面编辑文本。 您将能够将文件加载到内存中,对其进行编辑并保存更改。 但是您执行的每个动作都将由Python函数定义。 例如,使一个单词全部大写,调用upper() ,打开文件调用open ,依此类推。 文本文档中的所有内容都是Python对象,可以进行相应的操作。 从用户的角度来看,它与任何文本编辑器都具有相同的体验。 对于Python开发人员来说,这是一个丰富的Python环境,只需在配置文件中使用几个自定义函数即可更改和开发它。

这就是对1958年编程语言所做的工作。 在Emacs中,运行应用程序的Lisp引擎与您在​​其中键入的任意文本之间没有分隔。 对于Emacs来说,一切都是Lisp数据,因此可以以编程方式分析和操纵一切。

这样就形成了功能强大的用户界面(UI)。 但是,如果您是Emacs的临时用户,则可能只是在摸索它可以为您做什么的表面。 这是您可能没有意识到可以使用Emacs进行的六件事。

使用流浪汉模式进行云编辑

Emacs对网络透明的时间比流行趋势要长得多,今天,它仍然提供了最流畅的远程编辑器体验之一。 Emacs中的 (以前称为RPC模式)代表“透明远程(文件)访问,多种协议”,它确切地说明了它所提供的功能:轻松访问要通过大多数流行的网络协议进行编辑的远程文件。 ,用于远程编辑的最流行和最安全的协议是 ,因此这是默认设置。

Tramp已包含在Emacs 22.1或更高版本中,因此要使用Tramp,只需使用Tramp语法打开文件。 在Emacs的“ 文件”菜单中,选择“ 打开文件” 。 当在Emacs窗口底部的迷你缓冲区中出现提示时,请使用以下语法输入文件名:

/ssh:user@example.com:/path/to/file

如果需要交互登录,则Tramp会提示您输入密码。 但是,Tramp直接使用OpenSSH,因此,为了避免出现交互式提示,您还可以将主机名,用户名和SSH密钥路径添加到〜/ .ssh / config文件中。 与Git一样,Emacs首先使用您的SSH配置,并且在出现错误时只会停止询问更多信息。

Tramp非常适合编辑计算机上不存在的文件,并且用户体验与编辑本地文件没有明显不同。 下次您开始通过SSH进入服务器以启动Vim或Emacs会话时,请尝试使用Tramp。

行事历

如果您解析文本的能力比解析图形界面的能力更好,您将很高兴知道可以使用Emacs以纯文本形式安排一天(或生活),但仍然可以在移动设备上使用开源查看器接收通知。

该过程需要一些设置,以创建一种方便的方式来将您的议程与您的移动设备同步(我使用Git,但是您可以调用Bluetooth,KDE Con​​nect,Nextcloud或您选择的文件同步工具),并且必须安装一个手机上的Org模式查看器(例如 )和Git客户端应用。 但是,一旦对基础结构进行了排序,该过程就可以与您通常的Emacs工作流程(或者如果您是新用户,则可以进行开发)完美地集成在一起。 您可以在Emacs中轻松参考您的议程,更新您的日程安排,并通常按时完成任务。 将更改推送到您的议程反映在您的移动设备上,因此即使Emacs不可用,您也可以保持井井有条。

感兴趣吗? 阅读有关的逐步指南。

进入终端

有可用 。 尽管Emacs中的Elisp终端模拟器不是最大的通用模拟器,但它有两个明显的优点。

  1. 在Emacs缓冲区中打开:我使用Emacs的Elisp shell,因为它位于我的Emacs窗口中,该窗口通常位于全屏模式下,非常方便。 仅需将Ctrl + x + o (或Emacs表示法中的Cx o)放在终端之外是一个很小但显着的优势,当它正在运行冗长的工作时能够浏览它以​​获取状态报告,这特别好。
  2. 如果没有可用的系统剪贴板,则易于复制和粘贴:是我懒得不能将手从键移到鼠标上,还是因为我在远程控制台中运行Emacs(具有终端)而没有鼠标功能在Emacs中有时可能意味着将数据从我的Emacs缓冲区快速传输到Bash。

要尝试Emacs终端,请键入Alt + x (Emacs表示法中为Mx ),然后键入shell ,然后按Return键。

使用球拍模式

是一个激动人心的新兴Lisp方言,具有动态编程环境,GUI工具包和热情的社区。 学习球拍时的默认编辑器是DrRacket,它的顶部是“定义”面板,底部是“交互”面板。 使用此设置,用户可以编写影响Racket运行时的定义。 想象一下旧的程序,但是它带有一个终端,而不仅仅是一个 。

Racket-mode

PLT的LGPL示例代码

基于Lisp的Emacs为高级Racket编码器提供了一个出色的集成开发环境(IDE)。 它尚未附带 ,但您可以使用Emacs软件包安装程序安装球拍模式和其他几个帮助程序扩展。 要安装它,请按Alt + X (Emacs表示法中为Mx ),键入package-install ,然后按Return键。 然后输入您要安装的程序包( 球拍模式 ),然后按Return键。

使用Mx球拍模式进入球拍模式 。 如果您是Racket的新手,但不是Lisp或Emacs的新手,请先 。

脚本编写

您可能知道Bash脚本在自动化和增强Linux或Unix体验方面很受欢迎。 您可能已经听说Python也做得很好。 但是您知道Lisp脚本可以以几乎相同的方式运行吗? 关于Lisp的真正用途有时会感到困惑,因为通过Emacs向许多人介绍了Lisp,因此有一种潜在的印象,即在21世纪运行Lisp的唯一方法是打开Emacs窗口。 幸运的是,事实并非如此,Emacs是一款出色的IDE,其工具可让您将Lisp脚本作为常规系统可执行文件运行。

除了Elisp之外,还有两种流行的现代Lisps,它们易于作为独立脚本运行。

  1. Racket:您可以依靠系统的Racket安装来运行Racket脚本以提供运行时支持,也可以使用raco exe生成可执行文件。 raco exe命令将您的代码与运行时支持文件打包在一起,以创建可执行文件。 然后raco distribution命令将可执行文件打包到可在其他计算机上工作的发行版中。 Emacs具有许多特定于Racket的工具,因此在Emacs中创建Racket文件既简单又高效。
  2. GNU Guile: (“ GNU泛型智能语言扩展”的简称)是编程语言的实现,用于为台式机,Internet,终端等创建应用程序和游戏。 使用Emacs中许多Scheme扩展中的任何一个,编写Scheme很容易。 例如,下面是Guile中的“ Hello world”脚本:
    #!/usr/bin/guile -s       
    !#
    (display "hello world")
         (newline)
    使用guile命令编译并运行它:
    $ guile ./hello.scheme        
    ;;; compiling /home/seth/./hello.scheme
    ;;; compiled [...]/hello.scheme.go
    hello world
    $ guile ./hello.scheme
    hello world

在没有Emacs的情况下运行Elisp

Emacs可以用作Elisp运行时,但是您不必传统意义上的“打开” Emacs。 --script选项允许您使用Emacs作为引擎运行Elisp脚本,但无需启动Emacs GUI(甚至不基于终端的GUI)。 在此示例中, -Q选项使Emacs忽略.emacs文件,以避免执行Elisp脚本时出现任何延迟(如果脚本依赖于Emacs配置中的某些内容,请忽略此选项)。

emacs -Q --script ~/path/to/script.el

下载Emacs备忘单

幸运的是,这是21世纪,Emacs的GUI具有传统菜单和大量文档,因此学习曲线不再像以前那样。 为了最大程度地发挥Emacs的利益,您将需要学习其键盘快捷键。 因为Emacs能够执行的每个任务都是一个Elisp函数,所以Emacs中的所有内容都可以映射到键盘快捷键,因此尝试对它们全部进行描述是不切实际的。 要学习的基本键组合是您使用的键组合的频率是晦涩的键组合的10倍。

我们已经将最常见的Emacs密钥绑定收集到以供您参考。 将其挂在显示器附近或办公室墙壁上,或用作鼠标垫。 保持方便,并经常参考。 一旦一次坐着完成两倍的工作量,您就将所有时间都花在学习命令上十倍。 并且,一旦您开始编写自己的函数,可以说您不会后悔获得了这份免费备忘单的副本!

翻译自:

emacs .emacs

转载地址:http://doczd.baihongyu.com/

你可能感兴趣的文章
FPS检测
查看>>
2. 两数相加 golang
查看>>
Winform窗体设计工具源码
查看>>
字典和列表的删除问题, 深浅拷贝
查看>>
文件操作
查看>>
java中的反射整理
查看>>
Android 跑马灯效果与EditText冲突
查看>>
memcached Logging
查看>>
eclipse经常使用快捷键
查看>>
ZOJ 2588 Burning Bridges(无向连通图求割边)
查看>>
IP转换hash以及返回
查看>>
map+pair Bayan 2015 Contest Warm Up D题
查看>>
Jumserver安装日志审计和资产管理
查看>>
【转】resultMap详解(包含多表查询)
查看>>
在VisualStudio中显示当前的分支名
查看>>
Android 网络请求详解
查看>>
边工作边刷题:70天一遍leetcode: day 33
查看>>
第10章 系统级I/O(下)
查看>>
mysql foreign key(外键) 说明与实例
查看>>
二叉树的非递归遍历
查看>>