5

スペースの代わりにタブを使用してすべてのコードをフォーマットするのが好きですが、各行の先頭でスペースをタブに変換したいだけです。

tabify は、行頭のスペースをタブに変換することはできますか?

4

2 に答える 2

9

のドキュメントにtabifyは、行頭の空白のみを操作するための適切な値が記載されています。私はそれを使って便利だと思うこの関数を書きましたが、init ファイルに設定するだけで、別の関数を差し控えることができます。

(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. タブは、インデント レベルを表すためにのみ使用されます。「ブロック」ごとに 1 つのタブ – 残りの空白はスペースのみです。

これと合わせて、tabifyコマンドを使用して既存のコードを「タブ化」できます。

于 2012-07-24T03:33:07.177 に答える