5

我喜欢使用制表符而不是空格来格式化所有代码,但我只想在每行的开头将空格转换为制表符。

tabify 可以在行的开头将空格转换为制表符吗?

4

2 回答 2

9

的文档tabify提到了仅对行前空白进行操作的合适值。我用它来编写这个我觉得很方便的函数,但你可以在你的初始化文件中设置它并放弃一个单独的函数:

(defun tabify-leading (start end)
  "Call `tabify' with `tabify-regexp' set so that only leading
spaces are treated."
  (interactive "r")
  (setq tabify-regexp-old tabify-regexp)
  (unwind-protect
      (progn
        (setq tabify-regexp "^\t* [ \t]+")
        (tabify start end))
    (setq tabify-regexp tabify-regexp-old)))
于 2012-09-07T01:28:21.383 回答
3

看看SmartTabs

它将添加到多种模式(适用于多种语言)并使其代码缩进仅是制表符,同时确保代码显示正确,无论查看器的制表符宽度如何。

摘抄:

  1. 制表符仅用于行首。其他所有内容,如 ASCII 艺术和表格,都应使用空格进行格式化。
  2. 制表符仅用于表示缩进级别。每个“块”一个制表符——任何剩余的空白都是空格。

tabify除此之外,您可以使用该命令“tabify”现有代码。

于 2012-07-24T03:33:07.177 回答