type
status
date
slug
summary
tags
category
icon
password
最近在上手Emacs 作为Python,C++ 的IDE,同时也了解了下org-mode 听说可以在文本中运行代码,故尝试下。下面是我近期用到的知识点。

Emacs 如何创建一个文件

在 Emacs 中,新建文件的过程其实就是打开一个不存在的文件的过程,然后保存它。以下是步骤:
  1. 使用 C-x C-f (即 find-file)命令, Doom Emacs是 SPC f f命令,这是打开文件的命令(这意味着按住Ctrl键,然后按x,接着再按住Ctrl键按f)。
  1. 在打开的 minibuffer 中,输入你想要创建的文件的路径和名称。例如: /path/to/directory/filename.txt
  1. Enter
  1. 这时,Emacs 会打开一个空缓冲区,缓冲区的名称与你输入的文件名相同。你会注意到状态行(modeline)上显示 (New file),这表示该文件尚不存在。
  1. 开始在这个缓冲区中输入内容。
  1. 保存文件:按 C-x C-s(即 save-buffer 命令)。
现在你已经创建并保存了一个新文件!
 

Emacs 如何删除一个文件

在Emacs中,你可以使用以下步骤删除文件:
  1. 打开Dired模式:Dired是Emacs中的目录编辑器,你可以用它来浏览和操作文件。
      • 打开一个目录:M-x dired RET 然后输入目录的路径。RET 就是enter/return.
  1. 定位到要删除的文件:在Dired模式中,使用箭头键来上下移动,直到光标在你想删除的文件上。
  1. 标记文件进行删除:按 d 键来标记文件。
  1. 执行删除:按 x 键,Emacs会询问你是否真的要删除这些文件。确认你的选择。
  1. 完成:文件现在应该已被删除。
如果你已经打开了你想要删除的文件的缓冲区,你可以先关闭它(C-x k)然后再从Dired中删除文件。

Emacs分屏

  • C-x 3 : 左右分割
  • C-x 2 : 上下分割
  • C-x 1 : 将当前窗口变为最大
  • C-x 0 : 关闭当前窗口

如何退出emacs

要退出Emacs,你可以使用以下方法之一:
  1. 使用键盘快捷键:按 C-x C-c
  1. 使用M-x命令:输入 M-x save-buffers-kill-terminal 然后按 RET (回车键)。这个命令将保存所有修改过的缓冲区并退出Emacs。
  1. 从图形界面:如果你在图形界面中使用Emacs(而不是终端),你可以简单地点击窗口右上角的关闭按钮或使用系统菜单来退出程序。
 

Doom Emacs配置C++开发环境步骤

Doom Emacs 是一个 Emacs 配置框架,旨在使 Emacs 启动速度更快、界面更现代化、并且预先配置了一些流行的插件和功能。配置 C++ 开发环境需要以下步骤:
  1. 安装 Doom Emacs: 如果你还没有安装 Doom Emacs,你可以按照其官方 GitHub 仓库中的指南进行安装:https://github.com/hlissner/doom-emacs
  1. 启用必要的 Doom 模块: 打开你的 ~/.doom.d/init.el 文件并确保以下模块已被启用(取消前面的注释):
:lang (cc +lsp) ; C/C++/Obj-C madness
 
这将启用 C++ 支持并选择 LSP (Language Server Protocol) 作为后端。
  1. 安装 C++ Language Server
      • cclsclangd 是两个流行的选择。
      • 例如,对于 ccls,你可以使用包管理器进行安装:
        • Ubuntu/Debian: sudo apt-get install ccls
        • macOS (with Homebrew): brew install ccls
  1. 配置 LSP: 如果你使用的是 ccls,Doom Emacs 通常会自动检测并使用它。但为了确保,你可以在 ~/.doom.d/config.el 中加入以下配置:
(after! lsp-mode (setq lsp-enable-on-type-formatting nil) (setq lsp-clients-clangd-executable "ccls"))
 
  1. 其它配置(可选): 你可能还想加入其他 C++ 开发相关的配置,例如自动代码格式化、代码片段等。
    1. 例如,为了使用 clang-format 来自动格式化你的代码,你可以安装 clang-format 并在 ~/.doom.d/config.el 中加入以下配置:
      (after! cc-mode (setq clang-format-style-option "llvm") (add-hook 'c++-mode-hook #'clang-format+-mode))
  1. 更新 Doom Emacs: 在修改完配置文件后,确保在终端中运行以下命令以更新你的 Doom Emacs 配置:
  1. 重启 Emacs: 退出并重新启动 Doom Emacs,此时 C++ 开发环境应该已经配置完毕。

配置完C++ 开发环境后

如何运行cpp文件
在 Doom Emacs 中配置完 C++ 开发环境后,运行 C++ 文件通常涉及到编译和执行二进制文件的过程。以下是如何进行操作的步骤:
  1. 手动编译和运行
    1. 打开你的 C++ 文件。
    2. 使用 M-x (通常是 Alt + xSpace x) 打开命令执行器。
    3. 输入 vterm 并按 Enter 打开一个终端窗口(前提是你已启用 vterm 模块)。
    4. 在终端中,使用 g++ 或 clang++ 等编译器编译你的代码。例如:g++ your_file.cpp -o output_name
    5. 编译成功后,运行生成的二进制文件:./output_name
  1. 使用 projectile 运行 Makefile 或其他构建系统:
    1. 如果你的 C++ 项目使用了 Makefile、CMake 或其他构建系统,你可以使用 projectile 快速运行构建命令:
      • 在项目的任意文件中,使用 SPC p c (在 evil 模式下) 或 M-x projectile-compile-project 来运行项目的构建命令。
      • 如果你的项目使用 Makefile,它通常会自动运行 make 命令。
      • 对于其他构建系统,你可能需要在第一次运行时提供构建命令。
  1. 使用快捷键:
    1. 如果你经常需要编译和运行 C++ 代码,你可以在 ~/.doom.d/config.el 中配置一个快捷键来自动化此过程:
      保存并同步你的 Doom 配置 (doom sync)。现在,你可以在任何 C++ 文件中使用 SPC c r (在 evil 模式下) 来编译和运行你的代码。

Doom Emacs配置Python开发环境步骤

配置 Doom Emacs 用于 Python 开发的步骤与配置 C++ 环境类似,但需要启用和配置一些与 Python 相关的模块。以下是步骤:
  1. 安装 Doom Emacs
  1. 启用必要的 Doom 模块: 在你的 ~/.doom.d/init.el 文件中,确保以下模块已被启用(取消前面的注释):
    1. :lang (python +lsp)
      这将启用 Python 支持并选择 LSP (Language Server Protocol) 作为后端。
  1. 安装 Python Language Server
      • pyrightpyls 是两个流行的选择。pyright 由 Microsoft 维护,性能很好。
      • 例如,对于 pyright,首先需要全局安装它:npm install -g pyright
  1. 配置 LSP: 如果你使用的是 pyright,Doom Emacs 通常会自动检测并使用它。但为了确保,你可以在 ~/.doom.d/config.el 中加入以下配置:
    1. (after! lsp-mode (set-lsp-priority! 'pyright 1)) ; set higher priority
  1. 虚拟环境管理(可选): 如果你使用 virtualenvvenvconda 等工具来管理 Python 虚拟环境,Doom Emacs 通过 pyvenv 模块支持它们。确保你的虚拟环境被正确地激活,LSP 会使用这个环境的 Python 解释器和库。
  1. 其它配置(可选): 根据你的需求,你可以加入其他与 Python 开发相关的配置,例如自动代码格式化、代码片段、测试等。
    1. 例如,为了使用 black 进行代码格式化,确保你已经在你的虚拟环境或全局环境中安装了 black,然后在 ~/.doom.d/config.el 中加入以下配置:
      (after! python (set-formatter! 'python-mode #'black))
  1. 重启 Emacs: 退出并重新启动 Doom Emacs,此时 Python 开发环境应该已经配置完毕。
 

配置完python 环境后,如何运行py文件

在 Doom Emacs 中配置完 Python 开发环境后,你可以使用多种方式运行 Python 文件:
  1. 使用内建的 python-mode:
      • 打开你的 Python 文件。
      • 使用 M-x (通常是 Alt + xSpace x) 打开命令执行器。
      • 输入 run-python 并按 Enter。这将在 Emacs 的底部窗口中启动一个 Python REPL。
      • 在你的 Python 文件中,将光标放到你想运行的代码行或代码块上。
      • C-c C-c (通常是 Ctrl + c 然后再按 Ctrl + c)。这将发送当前行或当前选择的代码块到 REPL 中执行。
  1. 使用 termvterm:
    1. 如果你喜欢在终端环境中运行 Python 文件,你可以使用 Doom Emacs 的内置终端:
      • 使用 M-x 打开命令执行器并输入 vterm (如果你启用了 vterm 模块)。
      • 在打开的终端窗口中,直接运行 python your_file.py
  1. 使用 Debugger (如 pdb):
    1. 如果你想使用 Python 的内置 debugger pdb,你可以在代码中加入 import pdb; pdb.set_trace(),然后按上述方法运行文件。当执行到这一行时,代码会进入调试模式。
 

如何在emacs 中使用org-mode

org-mode 是 Emacs 中的一个功能强大的模式,用于组织、计划、记录笔记、维护 TODO 列表、撰写文档、创建演示文稿等。以下是如何在 Emacs 中使用 org-mode 的基本步骤:

1. 创建或打开一个 Org 文件:

你可以创建一个 .org 文件或打开一个现有的 .org 文件。当你打开或创建 .org 文件时,Emacs 会自动进入 org-mode

2. 基本结构:

org-mode 中,标题使用 * 符号标记:

3. TODO 列表:

你可以很容易地创建 TODO 列表:
你可以使用 C-c C-t 来循环切换 TODO 状态。

4. 日期和时间:

要插入一个日期或时间戳,使用 C-c .。如果你想要一个范围,例如一个事件的开始和结束时间,使用 C-c !

5. 链接:

org-mode 中创建链接很简单:

6. 列表:

你可以创建无序列表或有序列表:

7. 表格:

org-mode 中,创建和操作表格非常简单:

8. 导出:

org-mode 可以将你的文件导出为多种格式,如 HTML、PDF、LaTeX 等。使用 C-c C-e 调出导出菜单。

9. 其他功能:

org-mode 提供了大量的其他功能,如 agenda 视图 (C-c a)、绘制、源代码块、literate programming 等。

org mode 如何预览

在 Org mode 中,预览通常与 LaTeX 公式的预览有关,但你也可以预览其他内容。以下是如何在 Org mode 中预览 LaTeX 公式的方法:
  1. 预览 LaTeX 公式:
      • 确保你的系统上已经安装了 LaTeX。在 Emacs 中,org-mode 通过调用 LaTeX 生成预览。
      • 在光标所在的 LaTeX 公式上,或选择一个包含多个公式的区域。
      • 使用快捷键 C-c C-x C-l(即 org-toggle-latex-fragment)来启动预览。此操作会在 org 文件中生成和显示公式的图片。
  1. 关闭预览:
      • 再次使用 C-c C-x C-l 将关闭预览,并恢复为原始的 LaTeX 文本。
  1. 预览整个 Org 文件:
      • 你可以导出 Org 文件为 PDF、HTML 等格式来全面预览整个文件的内容。这可以通过 org-export 功能实现。按 C-c C-e 来调出导出菜单,然后选择你想要的导出格式。
 

org-mode 里如何运行代码

org-mode 中,你可以使用 org-babel 来执行内嵌的代码块。org-babel 支持多种编程语言,比如 Python、C、C++、R、JavaScript、SQL 等。
以下是如何在 org-mode 中设置和运行代码块的步骤:

1. 设置

确保你的 Emacs 配置启用了 org-babel 并允许执行你想用的编程语言。例如,要在 org-mode 中运行 Python 代码,你可以添加以下配置:

2. 在 Org 文件中添加代码块

在你的 .org 文件中,你可以使用以下格式添加一个代码块:
在这里,python 指定了代码块的语言。

3. 运行代码块

将光标放在代码块内,然后按 C-c C-c。Emacs 会询问你是否真的要执行代码块。选择 yes,然后 org-mode 将执行代码并在代码块下方插入结果。
例如,上述 Python 代码块执行后的输出为:
 
 
现代C++新特性(局部梳理)使用Docker Compose 部署搭建WordPress博客