emacs .emacs_使用Emacs应该做的6件事

emacs .emacs

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

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

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

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

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

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

 /ssh:[email protected]:/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模式查看器(例如Orgzly )和Git客户端应用。 但是,一旦对基础结构进行了排序,该过程就可以与您通常的Emacs工作流程(或者如果您是新用户,则可以进行开发)完美地集成在一起。 您可以在Emacs中轻松参考您的议程,更新您的日程安排,并通常按时完成任务。 将更改推送到您的议程反映在您的移动设备上,因此即使Emacs不可用,您也可以保持井井有条。

emacs .emacs_使用Emacs应该做的6件事_第1张图片

感兴趣吗? 阅读有关使用Org模式和Git进行日历的逐步指南。

进入终端

有很多可用的终端模拟器 。 尽管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键。

使用球拍模式

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

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 Guile (“ GNU泛型智能语言扩展”的简称)是Scheme编程语言的实现,用于为台式机,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备忘单

翻译自: https://opensource.com/article/20/1/emacs-cheat-sheet

emacs .emacs

你可能感兴趣的:(python,java,linux,编程语言,大数据)