整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

在Win10中使用Emacs执行Lisp命令

人感觉在Emacs执行Lisp命令,不是特别爽,有一些别扭。可能还是不熟悉的缘故,也可能是Emacs最先在Unix中使用,而不是在Windows系统使用的缘故。

在Emacs的安装目录(我的是“D:\Programs\Emacs\x86_64\bin”)中,双击“emacs.exe”,运行程序。


点击上图中标注的“*GNU Emacs*”,会自动切换到“*Scratch*”。


输入Lisp的命令(S-表达式): (+ 3 2)

然后将光标移到本行最后,按组合键(Ctrl+J)或者点击“Lisp Interaction”在弹出的菜单中点击“Evaluate and Print”,完成一行的计算。如下图所示。


再测试一个匿名函数(lambda函数):

( (lambda (x) (+ x 2)) 2)


上述两个Lisp命令(S-表达式)运行结果(S-表达式的计算结果)截图如下:



参考网页:

https://zhuanlan.zhihu.com/p/201062516

http://xahlee.info/emacs/emacs/emacs.html (英文版的实用Emacs教程)

行跨平台 shell(例如 Bash 或 zsh)的最大优势在于你能在多平台上使用同样的语法和脚本。在 Windows 上设置(替换)shell 挺麻烦的,但所获得的回报远远超出这小小的付出。

-- Peter Mosmans

运行跨平台 shell(例如 Bash 或 zsh)的最大优势在于你能在多平台上使用同样的语法和脚本。在 Windows 上设置(替换)shell 挺麻烦的,但所获得的回报远远超出这小小的付出。



zsh shell inside Emacs on Windows

MSYS2 子系统允许你在 Windows 上运行 Bash 或 zsh 之类的 shell。使用 MSYS2 很重要的一点在于确保搜索路径都指向 MSYS2 子系统本身:存在太多依赖关系了。

MSYS2 安装后默认的 shell 就是 Bash;zsh 则可以通过包管理器进行安装:

pacman -Sy zsh

通过修改 /etc/passwd 文件可以设置 zsh 作为默认 shell,例如:

mkpasswd -c | sed -e 's/bash/zsh/' | tee -a /etc/passwd

这会将默认 shell 从 bash 改成 zsh。

要在 Windows 上的 Emacs 中运行 zsh ,需要修改 shell-file-name 变量,将它指向 MSYS2 子系统中的 zsh 二进制文件。该二进制 shell 文件在 Emacs exec-path 变量中的某个地方。

(setq shell-file-name (executable-find "zsh.exe"))

不要忘了修改 Emacs 的 PATH 环境变量,因为 MSYS2 路径应该先于 Windows 路径。接上一个例子,假设 MSYS2 安装在 c:\programs\msys2 中,那么执行:

(setenv "PATH" "C:\programs\msys2\mingw64\bin;C:\programs\msys2\usr\local\bin;C:\programs\msys2\usr\bin;C:\Windows\System32;C:\Windows")

在 Emacs 配置文件中设置好这两个变量后,在 Emacs 中运行:

M-x shell

应该就能看到熟悉的 zsh 提示符了。

Emacs 的终端设置(eterm)与 MSYS2 的标准终端设置(xterm-256color)不一样。这意味着某些插件和主题(提示符)可能不能正常工作 - 尤其在使用 oh-my-zsh 时。

检测 zsh 否则在 Emacs 中运行很简单,使用变量 $INSIDE_EMACS。

下面这段代码片段取自 .zshrc(当以交互式 shell 模式启动时会被加载),它会在 zsh 在 Emacs 中运行时启动 git 插件并更改主题:

# Disable some plugins while running in Emacs

if [[ -n "$INSIDE_EMACS" ]]; then

plugins=(git)

ZSH_THEME="simple"

else

ZSH_THEME="compact-grey"

fi

通过在本地 ~/.ssh/config 文件中将 INSIDE_EMACS 变量设置为 SendEnv 变量……

Host myhost

SendEnv INSIDE_EMACS

……同时在 ssh 服务器的 /etc/ssh/sshd_config 中设置为 AcceptEnv 变量……

AcceptEnv LANG LC_* INSIDE_EMACS

……这使得在 Emacs shell 会话中通过 ssh 登录另一个运行着 zsh 的 ssh 服务器也能工作的很好。当在 Windows 下的 Emacs 中的 zsh 上通过 ssh 远程登录时,记得使用参数 -t,-t 参数会强制分配伪终端(之所以需要这样,时因为 Windows 下的 Emacs 并没有真正的 tty)。

跨平台,开源真是个好东西……


via: https://www.onwebsecurity.com/configuration/zsh-shell-inside-emacs-on-windows.html

作者: Peter Mosmans 选题: lujun9972 译者: lujun9972 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

译自: https://opensource.com/article/18/4/how-create-latex-documents-emacs

作者: Sachin Patil

译者: Yuqi Liu

这篇教程将带你遍历在 Emacs 使用强大的开源排版系统 LaTex 来创建文档的全过程。

一篇由 Aaron Cocker 写的很棒的文章 “ 在 LaTeX 中创建文件的介绍 ” 中,介绍了 LaTeX 排版系统 并描述了如何使用 TeXstudio 来创建 LaTeX 文档。同时,他也列举了一些很多用户觉得创建 LaTeX 文档很方便的编辑器。

Greg Pittman 对这篇文章的评论吸引了我:“当你第一次开始使用 LaTeX 时,他似乎是个很差劲的排版……” 事实也确实如此。LaTeX 包含了多种排版字体和调试,如果你漏了一个特殊的字符比如说感叹号,这会让很多用户感到沮丧,尤其是新手。在本文中,我将介绍如何使用 GNU Emacs 来创建 LaTeX 文档。

创建你的第一个文档

启动 Emacs:

emacs -q --no-splash helloworld.org

参数 -q 确保 Emacs 不会加载其他的初始化配置。参数 --no-splash-screen 防止 Emacs 打开多个窗口,确保只打开一个窗口,最后的参数 helloworld.org 表示你要创建的文件名为 helloworld.org 。



GNU Emacs 打开文件名为 helloworld.org 的窗口时的样子。

现在让我们用 Emacs 添加一些 LaTeX 的标题吧:在菜单栏找到 “Org” 选项并选择 “Export/Publish”。



导入一个默认的模板

在下一个窗口中,Emacs 同时提供了导入和导出一个模板。输入 #(“[#] Insert template”)来导入一个模板。这将会使光标跳转到一个带有 “Options category:” 提示的 mini-buffer 中。第一次你可能不知道这个类型的名字,但是你可以使用 Tab 键来查看所有的补全。输入 “default” 然后按回车,之后你就能看到如下的内容被插入了:

#+TITLE: helloworld

#+DATE: <2018-03-12 Mon>

#+AUTHOR:

#+EMAIL: makerpm@nubia

#+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline

#+OPTIONS: author:t c:nil creator:comment d:(not "LOGBOOK") date:t

#+OPTIONS: e:t email:nil f:t inline:t num:t p:nil pri:nil stat:t

#+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:t todo:t |:t

#+CREATOR: Emacs 25.3.1 (Org mode 8.2.10)

#+DESCRIPTION:

#+EXCLUDE_TAGS: noexport

#+KEYWORDS:

#+LANGUAGE: en

#+SELECT_TAGS: export

根据自己的需求修改标题、日期、作者和 email。我自己的话是下面这样的:

#+TITLE: Hello World! My first LaTeX document

#+DATE: \today

#+AUTHOR: Sachin Patil

#+EMAIL: psachin@redhat.com

我们目前还不想创建一个目录,所以要将 toc 的值由 t 改为 nil,具体如下:

#+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:nil todo:t |:t

现在让我们添加一个章节和段落吧。章节是由一个星号(*)开头。我们从 Aaron 的贴子(来自 Lipsum Lorem Ipsum 生成器 )复制一些文本过来:

* Introduction

\paragraph{}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras lorem

nisi, tincidunt tempus sem nec, elementum feugiat ipsum. Nulla in

diam libero. Nunc tristique ex a nibh egestas sollicitudin.

\paragraph{}

Mauris efficitur vitae ex id egestas. Vestibulum ligula felis,

pulvinar a posuere id, luctus vitae leo. Sed ac imperdiet orci, non

elementum leo. Nullam molestie congue placerat. Phasellus tempor et

libero maximus commodo.



helloworld.org 文件

将内容修改好后,我们要把它导出为 PDF 格式。再次在 “Org” 的菜单选项中选择 “Export/Publish”,但是这次,要输入 l(“export to LaTeX”),紧跟着输入 o(“as PDF file and open”)。这次操作不止会打开 PDF 文件让你浏览,同时也会将文件保存为 helloworld.pdf,并保存在与 helloworld.org 的同一个目录下。



将 helloworld.org 导出为 helloworld.pdf


打开 helloworld.pdf 文件

你也可以按下 Alt + x 键,然后输入 org-latex-export-to-pdf 来将 org 文件导出为 PDF 文件。可以使用 Tab 键来自动补全命令。

Emacs 也会创建 helloworld.tex 文件来让你控制具体的内容。



Emacs 在三个不同的窗口中分别打开 LaTeX,org 和 PDF 文档。

你可以使用命令来将 .tex 文件转换为 .pdf 文件:

pdflatex helloworld.tex

你也可以将 .org 文件输出为 HTML 或是一个简单的文本格式的文件。我最喜欢 .org 文件的原因是他们可以被推送到 GitHub 上,然后同 markdown 一样被渲染。

创建一个 LaTeX 的 Beamer 简报

现在让我们更进一步,通过少量的修改上面的文档来创建一个 LaTeX Beamer 简报,如下所示:

#+TITLE: LaTeX Beamer presentation

#+DATE: \today

#+AUTHOR: Sachin Patil

#+EMAIL: psachin@redhat.com

#+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline

#+OPTIONS: author:t c:nil creator:comment d:(not "LOGBOOK") date:t

#+OPTIONS: e:t email:nil f:t inline:t num:t p:nil pri:nil stat:t

#+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:nil todo:t |:t

#+CREATOR: Emacs 25.3.1 (Org mode 8.2.10)

#+DESCRIPTION:

#+EXCLUDE_TAGS: noexport

#+KEYWORDS:

#+LANGUAGE: en

#+SELECT_TAGS: export

#+LATEX_CLASS: beamer

#+BEAMER_THEME: Frankfurt

#+BEAMER_INNER_THEME: rounded

* Introduction

*** Programming

- Python

- Ruby

*** Paragraph one

Lorem ipsum dolor sit amet, consectetur adipiscing

elit. Cras lorem nisi, tincidunt tempus sem nec, elementum feugiat

ipsum. Nulla in diam libero. Nunc tristique ex a nibh egestas

sollicitudin.

*** Paragraph two

Mauris efficitur vitae ex id egestas. Vestibulum

ligula felis, pulvinar a posuere id, luctus vitae leo. Sed ac

imperdiet orci, non elementum leo. Nullam molestie congue

placerat. Phasellus tempor et libero maximus commodo.

* Thanks

*** Links

- Link one

- Link two

我们给标题增加了三行:

#+LATEX_CLASS: beamer

#+BEAMER_THEME: Frankfurt

#+BEAMER_INNER_THEME: rounded

导出为 PDF,按下 Alt + x 键后输入 org-beamer-export-to-pdf。



用 Emacs 和 Org 模式创建的 Latex Beamer 简报

希望你会爱上使用 Emacs 来创建 LaTex 和 Beamer 文档(注意:使用快捷键比用鼠标更快些)。Emacs 的 Org 模式提供了比我在这篇文章中说的更多的功能,你可以在 orgmode.org 获取更多的信息.


via: https://opensource.com/article/18/4/how-create-latex-documents-emacs

作者: Sachin Patil 选题: lujun9972 译者: oneforalone 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接