Có bất kỳ tùy chọn để cho đầu ra mèo với màu sắc?


Câu trả lời:


18

Một gói GNU, làm nổi bật nguồn , dường như thực hiện mánh khóe (mặc dù không sử dụng mèo - như John T chỉ ra, điều này không thể thực hiện được với mèo). Nó có sẵn thông qua apt-get trên Ubuntu và yêu cầu thư viện regex Boost. Kiểm tra trình quản lý gói của bạn để xem cả hai có sẵn không, nếu không bạn có thể lấy chúng từ web. Trang GNU được liên kết trước đó có một liên kết đến Boost, tôi nghĩ vậy.

Sau khi cài đặt, tôi đã tạo một tập lệnh mới trong đường dẫn của mình được gọi là ccat . Kịch bản trông giống như:

#!/bin/bash
src-hilite-lesspipe.sh $1

Không có gì lạ mắt, chỉ đơn giản hóa tập lệnh ít hơn mà chúng bao gồm với nguồn sáng. Nó hoạt động giống như con mèo khi được gọi theo kiểu này.

Kịch bản ít hơn bao gồm là một kịch bản tốt để sử dụng, mặc dù. Tôi vừa thêm đoạn sau vào .bashrc :

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Kịch bản đó cũng được bao gồm trong hướng dẫn trực tuyến để làm nổi bật nguồn.

Tôi đoán bạn có thể bí danh mèo gọi src-hilite-lesspipe.sh $ 1 nếu bạn cảm thấy muốn bỏ qua con mèo hoàn toàn, nhưng điều đó có thể không được mong muốn.


4
Tôi, cá nhân, thích một bí danh cho các tập lệnh bash một dòng kết thúc bằng $1:).
mgasms

Đúng, mitch_feaster, bạn đang ở trên. :]
rgm

2
Hoạt động trên máy Mac cũng vậy brew install source-highlight. Không thể tô màu yaml :(
Sairam

9

Để xuất cú pháp mã được tô sáng bằng một cái gì đó giống như cat, tôi đã tạo một ccatlệnh bằng cách làm theo các hướng dẫn tại http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/ .

#!/bin/bash
if [ ! -t 0 ];then
  file=/dev/stdin
elif [ -f $1 ];then
  file=$1
else
  echo "Usage: $0 code.c"
  echo "or e.g. head code.c|$0"
  exit 1
fi
pygmentize -f terminal -g $file

Để xuất cú pháp mã được tô sáng bằng một cái gì đó như less, tôi sử dụng vim như một sự thay thế ít hơn.

alias less='/usr/share/vim/vim72/macros/less.sh'

Cách cài đặt pyributionize: easy_install --install-dir $ SOMEDIR Pygments
psihodelia

Tôi thích loại giải pháp di động. Tôi đã thêm tập lệnh này như là một chức năng vào bash của mình .functionsnhưcolorize(){...}
guneysus

3

Để giải quyết điều này, tôi đã sử dụng làm nổi bật . Tôi đã thực hiện một chức năng cố gắng in tệp bằng cách tô sáng cú pháp và nếu thất bại, nó sẽ quay trở lại chỉ đơn giản là sử dụng con mèo để in tệp. Bạn có thể thay đổi chủ đề tô sáng cú pháp thành bất cứ điều gì bạn muốn.

function hl { # Overrides the cat command to use syntax highlighting
    # Highlight with 'moria' theme to terminal, and suppress errors
    highlight $1 -s moria -O xterm256 2> /dev/null

    if (($? != 0)); then # If the command had errors
        cat $1 # Just cat the file out instead
    fi
}

Nếu bạn đang sử dụng máy Mac và bạn sử dụng Homebrew (rất khuyến khích!), Bạn có thể cài đặt tô sáng bằng cách chạy brew install highlight. Mặt khác, nó nên có sẵn trên hầu hết các trình quản lý gói khác và có thể được tải xuống ở đây .

Tôi cũng đã thực hiện một chức năng để in ra một tệp có cú pháp tô sáng dưới dạng html và mở nó trong trình duyệt để in (dựa vào openlệnh trên OS X):

function hlprint {
    # Print with line numbers and 'moria' theme
    highlight $1 -l -o print.html -s moria
    open print.html # Open in browser
    sleep 5 # Give the browser time to open
    rm print.html highlight.css # Remove output files
}

Thưởng thức!


1

Không, mèo không có khả năng làm nổi bật cú pháp. Nếu bạn muốn xem mã nguồn bằng cách tô sáng cú pháp, hãy đưa mã đó vào vim hoặc trình soạn thảo bạn chọn (có tô sáng cú pháp). Bằng cách này, bạn thậm chí có thể trang qua đầu ra nếu đó là một tệp dài sử dụng Ctrl+ F(chuyển tiếp) và Ctrl+ B(ngược).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.