2010-11-05 32 views
10

Dired, dosyalarını rasgele bir işlev veya sütun kümesini kullanarak nasıl görüntüleyebilirim? Temelde ben değiştirmek istiyorum: bir şey içinYönlendirmenin görünümü nasıl özelleştirilir

-rw-r--r-- 1 konrad konrad 3847863 Out 18 14:17 ClojureinAction.pdf 
-rw-rw-r-- 1 tamara tamara 27338341 Out 20 07:16 Halliday, Resnick, Walker - Fundamentals of Physics.pdf 
-rw-r--r-- 1 konrad konrad 3921024 Set 22 11:11 Pragmatic.Programming.Clojure.May.2009.pdf 

Teşekkür

644 1-5MB ClojureinAction.pdf  PDF (5 days ago, 400pgs) 
664 10-100MB Halliday, Resnic...pdf PDF (3 days ago, 1000pgs, Tamara's) 
644 1-5MB Pragmatic.Progra...pdf PDF (1 min ago, 100 pages) 

gibi!


DÜZENLEME: cevap Gareth için teşekkürler, ama daha ayrıntılı olabilir, lütfen? Görünüşe göre, kanca sadece arabellek yüklendiğinde rasgele kod çalıştırmama izin verecek. Dired bile tampon :(

(defun foo (&rest args) (unlocking-buffer (message "foo") (insert "foo\n"))) 
en dired kaynak koduna bakınca

, onu ben yerine çalışıyorum bunlar çok biçimlerinden bilgi alır gibi görünüyor kadar yükleme durmayacak, bu yüzden merak o açıdan eğer bu şekilde değiştirmek için, ya da ben her şeyi yeniden yazmak zorunda bitireceğiz eğer.

cevap

3

dired modu arayarak geçerli satırda dosya adını alabilirsiniz varsayar çünkü, dosya adı kesiliyor konusunda ısrar ediyor. Bence daha uygun bir yaklaşım, formatı tek başına bırakmak ve sunumu değiştirmek için metin özelliklerini veya bindirmeleri kullanmaktır.

+0

Bu strateji cevap https://emacs.stackexchange.com/questions/35676/customize-direds-display/35685#35685 gerçekleşmektedir. – Tobias

2

istediğiniz biçime ls çıktısını dönüştüren bir fonksiyon yazın ve sonra dired-after-readin-hook için bu işlevi ekleyin.

Eklenme: dired-mode, ls çıktısını ayrıştırarak dosyanın adını belirler, bu nedenle, biçimi değiştirdiğinizde yöneltmenin bazı özellikleri kesilir. directory-listing-before-filename-regexp ve dired-permission-flags-regexp'u değiştirerek tekrar çalışabilirsiniz. Biçimdeki değişikliğiniz oldukça radikal olduğundan, dired-move-to-filename ve dired-move-to-end-of-filename işlevlerini yeniden yazmayı tercih edebilirsiniz.

(Bu zorlu geliyor ama. Ben açıklanan şekilde dired tamponların biçimini özelleştirmek değil neredeyse kadar radikal yapmayı vaat olarak gerçi. Imkansız değil)

Sen bir sürü iş eğer olacak dired-mode böylece biçimi çok şey kıracak değişen ls çıkış biçimi hakkında epeyce varsayımlar yapar

(buffer-substring (dired-move-to-filename) (dired-move-to-end-of-filename)) 
2

Bu, aradıklarınız kadar zor değil, ancak Emacs'in numaralı telefondan numaralarını nasıl özelleştirebileceğini özelleştirmek mümkündür.

M-x customize-variable RET dired-listing-switches RET 

Biraz yatay ekran gayrimenkul tasarruf -o seçeneği ile dosyaların grup kimliği dışarıda bırakmak için bu kullanılır.

0

Yanıtı şu adreste kullanırdım: https://stackoverflow.com/a/1796009/714357 ve 'varsayılan dizininizde çalışacak olan derleme komutu. Böylece size yeni bir tampon verecek, ancak aradığınız bilgiler.

(defun my/ls-mode-numbers() 
    (interactive) 
    (compile " ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/) \ 
      *2^(8-i));if(k)printf(\"%0o \",k);print}'")) 
İlgili konular