Pimp my MC

Midnight Commander to bez wątpienia jedno z największych osiągnięć ludzkości. W życiu nie spotkałem się z przyjaźniejszym menedżerem plików pod konsolę. A przy odrobinie wysiłku można uczynić pracę z nim jeszcze przyjemniejszą. Chodzi mi w tym momencie o menu użytkownika (dostępne pod F2). Ostatnio postanowiłem zrobić tam generalne porządki i dodać parę nowych komend.

Oto co ciekawsze rzeczy z mojego ~/.mc/menu:

+ f .ebuild & ! t t
m       Generate Manifest for ebuild
	ebuild "%f" manifest

+ f .ebuild & t t
M       Generate Manifests for selected ebuilds
	set %t
	while [ -n "$1" ]; do
	  ebuild "$1" manifest
	  shift
	done

+ t r & ! t t
d       Diff against file of same name in other directory
        if [ "%d" = "%D" ]; then
          echo "The two directores must be different"
          exit 1
        fi
        if [ -f %D/%f ]; then        # if two of them, then
          diff -up %f %D/%f | sed -e 's/(^-.*)/x1b[1;31m1x1b[0m/g' 
                                  -e 's/(^+.*)/x1b[1;32m1x1b[0m/g' 
                                  -e 's/(^@.*)/x1b[36m1x1b[0m/g' | less -R
        else
          echo %f: No copy in %D/%f
        fi

D       Diff current directory against other directory
        if [ "%d" = "%D" ]; then
          echo "The two directores must be different"
          exit 1
        fi
        diff -up %d %D | sed -e 's/(^-.*)/x1b[1;31m1x1b[0m/g' 
                             -e 's/(^+.*)/x1b[1;32m1x1b[0m/g' 
                             -e 's/(^@.*)/x1b[36m1x1b[0m/g' | less -R
        fi

+ ! t t
g       Edit file with GVim
	gvim "%f"

+ t t
g       Edit files with GVim
	set %t; CMD=%{Enter command}
	while [ -n "$1" ]; do
	  $CMD "$1"
	  shift
	done

W skrócie: generowanie Manifestu dla plików .ebuild, porównywanie pliku/katalogu między panelami i możliwość odpalenia dowolnego pliku GVimem. Osobiście uważam te dodatki za bardzo przydatne. Odkąd je dodałem, zdążyły mi się już wiele razy przydać. Aż dziw bierze, że wcześniej nie chciało mi się tego zrobić 😀

Gwoli ścisłości, przepis na diffa jest wzięty stąd. Tutaj jedna uwaga – domyślnie klawisze od diffa (d i D) pokrywają się z innymi funkcjami. Rozwiązaniem jest zmiana skrótów lub wywalenie rzeczonych funkcji (opisane jako "Delete file if a copy exists in the other directory." i "Delete tagged files if a copy exists in the other directory.") z konfiguracji menu.

Jeden Komentarz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *