スペースの代わりにタブを使用してすべてのコードをフォーマットするのが好きですが、各行の先頭でスペースをタブに変換したいだけです。
tabify は、行頭のスペースをタブに変換することはできますか?
スペースの代わりにタブを使用してすべてのコードをフォーマットするのが好きですが、各行の先頭でスペースをタブに変換したいだけです。
tabify は、行頭のスペースをタブに変換することはできますか?
のドキュメントに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)))
SmartTabsを見てみましょう
いくつかのモード (複数の言語用) に追加され、コードのインデントがタブのみになるようにしながら、ビューアのタブ幅に関係なくコードの表示が正しいことを保証します。
抜粋:
- タブは行頭でのみ使用されます。ASCII アートや表など、その他すべては、スペースでフォーマットする必要があります。
- タブは、インデント レベルを表すためにのみ使用されます。「ブロック」ごとに 1 つのタブ – 残りの空白はスペースのみです。
これと合わせて、tabify
コマンドを使用して既存のコードを「タブ化」できます。