【问题标题】:Using Emacs, how could I indent/format a code segment in a TXT file?使用 Emacs,我如何在 TXT 文件中缩进/格式化代码段?
【发布时间】:2009-07-03 14:51:48
【问题描述】:

我正在使用 Emacs 编写文档。如您所知,我正在使用的文本文件中有一些代码段。通常,当我打开这个文件时,emacs 会自动进入文本模式。对我来说编辑普通段落效果很好。但是对于那些代码段,我怎么能像在 c-mode 中那样(通过 c-set-style && do Ctrl-Alt-\ 在某些区域)将它们缩进 gnu 或 linux 样式?

顺便说一句,实际上,我可以通过调用 M-x c-mode 来将缓冲区转换为 c-mode 来执行此操作,但是,我认为在文本模式下应该有很多优雅的方式来执行此操作。

【问题讨论】:

  • 为 M-x c-mode 和 M-x text-mode 写一个快捷方式

标签: emacs editor


【解决方案1】:

orgmode 设法通过将代码复制到临时缓冲区来编辑和格式化它,并在完成后更新更改的文本。

如果切换到 orgmode 是一个选项,那么你可以这样做:

 #+BEGIN_SRC emacs-lisp
 (defun org-xor (a b)
    "Exclusive or."
    (if a (not b) b))
 #+END_SRC

然后使用C-c ' 开始和结束编辑。

编辑:Emacswiki 有一个list of multiple modes

【讨论】:

  • 感谢 pgs!我会试试这个。我不熟悉它,但 orgmode 似乎很适合安排一些事情。有没有其他方法可以直接地做到这一点?比如标记一个区域并在其中调用一些函数或自定义函数?
  • 您也可以通过运行多种主要模式的方式之一和 M-x indent-region 来做到这一点。
【解决方案2】:

您可以标记该区域,然后将视图缩小到该区域,更改模式,缩进,返回到文本模式,然后再次返回到完整的缓冲区。具体的快捷键我暂时忘记了,不过转成函数应该还是挺容易的。

【讨论】:

  • C-x n n:缩小到区域。 C-x n w:加宽,即查看整个缓冲区。
猜你喜欢
  • 2012-09-25
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
相关资源
最近更新 更多