
나는 내 색깔을 좋아한다 vim
. 를 실행할 때 비슷한 색상으로 출력되도록 할 수 있습니까 cat
?
아래와 같이 음영 도구를 사용할 수 있다는 점이 마음에 듭니다.소스 및 스크립트 파일에 색상이 있는 "cat"이 있습니까?. 나는 이것을 내 표준으로 삼고 싶습니다 cat
. 예를 들어 별칭을 만듭니다.
alias cat="source-highlight --out-format=esc -o STDOUT -i"
그러나 파일 형식을 알 수 없으면 다음 .gitignore
이 반환됩니다.
$ cat .gitignore_global
source-highlight: could not find a language definition for input file .gitignore
인식된 파일 형식인 경우 명령이 특정 버전을 실행하도록 하려면 어떻게 해야 하나요? 그렇지 않으면 source-highlight
cat
파일의 표준 흑백 버전만 실행하게 할 수 있나요?cat
한 가지 옵션은 별칭을 사용하는 것이지만 ccat
가능하다면 별칭 자체로 바꾸는 것을 선호합니다 cat
.
cat *.rb
(또는 심지어 ccat *.rb
) 와 같은 와일드카드를 사용할 수 있으면 좋을 것 같습니다 . 현재 다음을 제공합니다:
$ ccat *.rb
Please, use one of the two syntaxes for invocation:
source-highlight [OPTIONS]... -i input_file -o output_file
source-highlight [OPTIONS]... [FILES]...
다음과 같이 할 수 있다면 좋을 것입니다.
ls *.rb | xargs ccat # (or cat)
나는 이것을 할 수 있다:
ls *.rb | xargs cat
현재 나는 다음을 얻습니다:
$ ls *.rb | xargs ccat
xargs: ccat: No such file or directory
답변1
아마도 다음 스크립트와 같은 작업을 수행할 수 있습니다(테스트되지 않음).
#!/bin/sh
for fn in "$@"; do
source-highlight --out-format=esc -o STDOUT -i $fn 2>/dev/null || /bin/cat $fn
done
이는 몇 가지 작업을 수행합니다.
- 각 명령줄 인수를 반복합니다.
- 을 실행하고
source-highlight
오류 출력을 다음으로 리디렉션해 보세요./dev/null
source-highlight
실패 하면 정상적으로 실행/bin/cat
cdc
이 스크립트를 example이라는 파일에 넣은 다음 alias cat=cdc
.
함수로
위 스크립트를 Bash 함수 호출에 적용한 다음 다음과 같이 도트 파일에 통합할 수 있습니다.
cdc() {
for fn in "$@"; do
source-highlight --out-format=esc -o STDOUT -i $fn 2>/dev/null || /bin/cat $fn;
done
}
편집(Michael) 어떤 이유로 ccat
함수 이름을 사용하려고 하면 작동하지 않았지만 cdc
작동합니다!