1

sort-linesファイル全体に対してコマンドを実行したい。

C-xhM-xsort-linesEnter

コマンドを実行する前にリージョンをマークする必要がありsort-linesます。

をスキップする方法C-xh%コマンドに ( vimのように) 引数を指定できますsort-linesか?

4

2 に答える 2

4

sort-lines最も簡単な解決策は次のとおりです。アクティブな領域がない場合は、バッファの範囲をに渡します。

(defun my-sort-lines (reverse begin end)
  (interactive "P\nr")
  (sort-lines reverse
              (if (region-active-p) begin (point-min))
              (if (region-active-p) end (point-max))))
于 2012-06-03T09:40:56.713 に答える
2

私は専門家ではありませんsort-linesが、行番号を引数として受け入れることができるとは思いません。そうは言っても、これを行う関数を書くことは難しくありません。これは、私が一緒にハッキングした簡単なものです。

(defun my-sort-lines (start end)
  (interactive "nStart: \nnEnd: ")
  (save-excursion
    (save-restriction
      (goto-line start)
      (mark)
      (goto-line (1+ end))
      (narrow-to-region (mark) (point))
      (sort-lines nil (point-min) (point-max))
      (widen))))

私が行った限られた量のテストから、それはうまくいくようです。私の emacs lisp の経験はかなり少ないので、改善の余地があると確信しています。

于 2012-06-03T08:08:42.107 に答える