2012-08-11 82 views
1

在我的新工作中,我在Windows上使用Emacs 24,在這些特殊情況下,它主要用於我作爲文件管理器。Dired:不顯示文件權限

我想拋棄從Dired顯示除文件名,大小和日期以外的所有內容。 This question向我展示瞭如何使用ls-lisp-verbosity刪除大多數我不想要的細節。

但我還沒有找到一種方法來保持顯示權限。我已經檢查了文檔lsdir,並且似乎沒有「不顯示權限」標誌。到目前爲止,我還沒有發現Dired中會忽略權限的任何內容。這可以做到嗎?

+0

嗯。我在家六。早上,我已經在我的Linux機器上安裝了DiredDetails。它在常規Dired顯示之間切換,並只顯示文件名。我正在閱讀DiredDetails代碼,看看我是否可以自定義它來顯示文件大小和日期。或者,也許我可以將DD和ls-lisp -verosity結合起來以得到我想要的。然後,確保它在Windows上的工作方式相同。 – user11583 2012-08-11 13:09:29

+0

修改DiredDetails以顯示文件大小和日期,以及文件名,需要更多的elisp能力比我目前有。任何人都可以提供幫助,或者提出其他解決方案 – user11583 2012-08-12 19:59:52

回答

1

您最好的選擇是更換ls開關,以便Dired不會列出這些字段。請參閱M-x man ls以瞭解您的特定平臺,以瞭解您可以使用哪些ls交換機。

dired-details.el(和dired-details+.el)不再需要,如果你有Emacs 24.4(或預發佈開發快照)。只需使用(即可在顯示和隱藏詳細信息之間切換。

而且在這種情況下,你至少有兩個選項來控制符號鏈接目標或除頭和文件行的所有行是否考慮細節隱藏:dired-hide-details-hide-symlink-targetsdired-hide-details-hide-information-lines

如果改變ls開關對您的情況沒有幫助,那麼您需要調整dired-details-make-current-line-overlaydired-details.el的功能。要隱藏的細節是由第一cond條款,它是本(包裹在ignore-errors)確定:

(dired-move-to-filename t) 

這點移動到文件名的開頭。下一行是這樣的:

(make-overlay (+ 2 bol) (point)) 

即創建一個從線(bol這裏)開始的隱形覆蓋到的文件名(point)的開始。

如果你想要不同的東西,那麼你需要獲得你想要的覆蓋範圍的限制。例如,如果您希望以文件大小開始隱身,那麼您將使用找到文件大小開始的正則表達式進行搜索。

你可以通過使用dired-move-to-filename-regexp(在庫dired.el)的正則表達式來處理這樣的正則表達式。這是一個很複雜的複合正則表達式匹配所有文件名稱。但是,您可以使用它查找日期+時間部分,該部分可以是第7個匹配的正則表達式子組或第2個,具體取決於日期+時間是使用區域設置(西部還是東部)表示還是使用ISO表示。

您可以在庫dired+.el的代碼定義變量diredp-font-lock-keywords-1中看到如何處理這個問題。

但是,再次,最好的辦法,如果它做到了你想要的,就試着用ls開關來控制首先列出哪些字段。您可以通過使用帶有C-x d的前綴參數輕鬆實驗交換機 - 系統會提示您輸入交換機。