2016-04-22 8 views
1

emacsでタブ補完を使ってファイルを開くときに、emacsは補完候補のリストを持つ補完バッファを呼び出します。リストはアルファベット順に並べられています。デフォルトの動作として、リストの一番上にある最新または最古のファイル/ディレクトリを示す時間に基づいて可能なファイル補完をソートするようにemacsを設定するにはどうすればよいでしょうか?補完バッファを見ながらソート基準を動的に変更することはできますか?emacsファイルを開くときに補完バッファ内のファイルをソート

答えて

0
  1. あなたがIciclesを使用する場合は、あなたが簡単にcontrol sortingことができます。

    また、ソート順を簡単に変更することができます。

    ファイル名補完の場合、デフォルトのソート順には、要求している順序が含まれます。ファイル名補完のデフォルトのソート順にすることができます。または、ファイル名の補完時に、サイクリングまたは名前の補完のどちらかを選択することができます。

    独自のソート順を簡単に定義することができます。

  2. vanilla Emacsのみを使用すると、ファイル名補完の完了メタデータでうまくいくことができます。メタデータカテゴリdisplay-sort-functionおよびcycle-sort-functionを参照してください。

    たとえば、read-file-nameと似た役割を果たしますが、異なるソート機能を使用する独自の完了コマンドを定義できます。

    これはバニラライブラリtmm.elは、例えば、何をするかです:

(minibuffer-with-setup-hook 
     #'tmm-add-prompt 
     (completing-read 
      (concat gl-str " (up/down to change, PgUp to menu): ") 
      (tmm--completion-table tmm-km-list) nil t nil 
      (cons 'tmm--history (- (* 2 history-len) index-of-default)))) 

    (defun tmm--completion-table (items) 
     (lambda (string pred action) 
     (if (eq action 'metadata) 
      '(metadata (display-sort-function . identity)) 
      (complete-with-action action items string pred)))) 
+0

これは幻想的に見えます!私はemacsのパッケージ管理に熟練した人ではなく、wikiにリンクされた.elファイルをダウンロードし、いくつかの指示に従っていますが、私のつららはうまくいきません。私が時間を取ると、私はもっとそれに取り組んでいきます。 icicles.elファイルは<!DOCTYPE html PUBLICで始めるべきですか?私はブラウザのリンクを右クリックして保存していました – MrCartoonology

+0

いいえ、 '<!DOCTYPE ... 'で始めるべきではありません。 HTMLページをダウンロードしました。 [このページ](https://www.emacswiki.org/emacs/Icicles_-_Libraries)を参照してください。 – Drew

+0

それは私がいた場所です。リンクを右クリックして保存しました。各.elファイルのリンクをクリックしてそのWebページからコピー&ペーストしてローカルコピーを作成する必要があるようです。ダウンロードリンクがありません。 – MrCartoonology