1

短いグーグル検索で良い答えが得られないので、ここで聞いてみます。

通常、現在のファイルをフォーマットしたいときは、次のようにします。

c-x h c-m-\

現在のファイルをフォーマットしますが、カーソル位置が失われます。たとえば、長いファイルを編集していて、現在157行目にいます。ファイルを再フォーマットすると、カーソルが1行目にジャンプしていることがわかりました。手動で157行目に移動する必要がありますが、これは便利ではありません。

どうすればいいですか?

4

3 に答える 3

5

Emacsでこのような問題を解決する一般的な方法は次のとおりです。

C-SPC C-SPC ...dowhatyouwant... C-u C-SPC

C-SPC C-SPCパーツは、マークリング上の現在の位置をプッシュし、次にCuC-SPCがその位置をマークリングからポップバックします。

于 2012-05-11T18:11:56.497 に答える
3

この関数を使用して、1回のキー押下にバインドできます。

(defun indent-current-buffer ()
    (interactive)
    (indent-region (point-min) (point-max)))
于 2012-05-11T16:31:32.167 に答える
1

私の.emacsから(http://tuxicity.se/emacs/elisp/2010/05/07/clean-up-buffer-or-region-in-emacs.htmlまたは同様のものから取得されているようです):

(defun clean-up-buffer-or-region ()
  "Untabifies, indents and deletes trailing whitespace from buffer or region."
  (interactive)
  (save-excursion
    (unless (region-active-p)
      (mark-whole-buffer))
    (untabify (region-beginning) (region-end))
    (indent-region (region-beginning) (region-end))
    (save-restriction
      (narrow-to-region (region-beginning) (region-end))
      (delete-trailing-whitespace))))

(global-set-key (kbd "C-c n") 'clean-up-buffer-or-region)

これはあなたが望むより少し多くのことをしますが、私は通常、機能の余分なビット(末尾の空白を非表示にして削除する)が便利だと思います。

于 2012-05-11T19:44:59.960 に答える