Obecnie pracuję nad projektem C ++. Używam CMake jako systemu kompilacji i chciałbym mieć wszystkie pliki związane z CMake (jak CMakeLists.txt ) w kolorze ls wyjście komendy. W ten sposób mogłem łatwo odróżnić je od plików kodu źródłowego.
Próbowałem użyć obu dircolors i edytuj bezpośrednio $LS_COLORS env var. Zawiodłem w obu przypadkach. Wydaje się, że te rozwiązania zapewniają jedynie sposób na kolorowanie niektórych plików specyficznych dla Linuksa (np. Linki) lub wybranych rozszerzeń.
Podsumowując, to właśnie zrobiłem:
OLD_LS_COLORS=$LS_COLORS # Backup
export LS_COLORS="${LS_COLORS}CMakeLists.txt=00;36:" # Adding it at the beginning of the list also fails
ls # No colors at all
export LS_COLORS=$OLD_LS_COLORS # Cleanup
dircolors -p > ~/.dir_colors
echo "CMakeLists.txt 01;33" >> ~/.dir_colors
eval `dircolors ~/.dir_colors` # Throws "unrecognized keyword CMakeLists.txt"
Obejściem mojego problemu byłoby pokolorowanie plików źródłowych ( .hxx, .cxx ) zamiast tego, ale chciałbym trzymać się tylko kolorowania plików CMake. Z drugiej strony mogłem po prostu kolorować .txt i .cmake pliki, ale wtedy wszystkie pliki tekstowe byłyby barwione w taki sposób.
Kolorowanie pliku Makefile (pliku bez rozszerzenia) w ls wyjście byłoby miłym bonusem.
Używam Debiana 9 z bash 4.4.12 i ls 8.26.
Z góry dziękuję.