`Cat` có thể hiển thị các tệp bằng cách sử dụng mã đánh dấu màu không?


45

Đôi khi tôi muốn nhanh chóng xem nội dung của một tập tin từ dòng lệnh. Đối với điều này tôi tất nhiên sử dụng cat, nhưng nó thường là các tệp nguồn trong Python , Java hoặc HTML đơn giản . Đối với các tệp này, sẽ rất hữu ích nếu catcó thể cung cấp một số đánh dấu màu cho các tệp để nó dễ đọc hơn.

Có thể catlàm một điều như vậy?


Điều này có thể đã có câu trả lời ở đây
Wilf

ha @wilf Tôi đã tìm thấy cùng một mã với google: D Cũng đáng chú ý chủ đề này trên SO: superuser.com/questions/84426/
mẹo

@Rinzwind - Tôi đã tìm kiếm stackoverflow, vì nó chắc chắn sẽ xuất hiện ;-)
Wilf

Câu hỏi này nhắc nhở tôi về cat -vviệc có hại .
Snowball

Câu trả lời:


48

catkhông thể làm điều này. Tuy nhiên, có thể pygments có thể giúp bạn ở đó. Nó là một kịch bản python và có thể được cài đặt thông qua apt-get

sudo apt-get install python-pygments

hoặc dễ dàng tải xuống và cài đặt qua easy_install.

Nó hỗ trợ rất nhiều ngôn ngữ mã nguồn và cả ngôn ngữ đánh dấu

Nó được sử dụng bởi

pygmentize -g <filename>

5
Mở tệp như pygmentize -g <filename>, -gchuyển đổi là quan trọng để xử lý tệp mà không cần lexer. ví dụ nếu bạn cố /etc/fstabmở mà không có -gnó sẽ thất bại.
souravc

Cảm ơn @souravc Đã thêm nó vào câu trả lời. Thật thú vị, cuộc tranh luận này dường như không được đề cập trong trang hướng dẫn hoặc trang trợ giúp
txwikinger

2
Vâng, tôi đã chơi rất nhiều với nó. bạn có thể tìm thấy nó, thử pygmentize --help Nếu -gđược thông qua, cố gắng đoán từ vựng từ nội dung tệp hoặc chuyển qua dưới dạng văn bản thuần nếu điều này không thành công (điều này có thể hoạt động cho stdin).
souravc

4
Đây là con mèo tốt nhất, sau đó là bí danh để kết luận -g và bạn là vàng. Trong cá nó đơn giản như funced cat... type pygmentize -g $argv... save..funcsave cat.
Elijah Lynn

trong tôi bashrctôi đã thêm: command -v pygmentize >/dev/null 2>&1 && alias cat='pygmentize -g'
Antonios Hadjigeorgalis

19

Không phải từ catchính nó nhưng bạn có thể sử dụng một cái gì đó như highlite hoặc supercat hoặc highlight

Nguồn nổi bật

Chương trình này, được cung cấp một tệp nguồn, tạo ra một tài liệu với cú pháp tô sáng. Nó cũng cung cấp một thư viện nổi bật C ++ (mới) (kể từ phiên bản 3.0).

Điểm nổi bật nguồn đọc các thông số kỹ thuật ngôn ngữ nguồn một cách linh hoạt, do đó nó có thể dễ dàng được mở rộng (mà không cần biên dịch lại các nguồn) để xử lý các ngôn ngữ mới. Nó cũng đọc các thông số kỹ thuật định dạng đầu ra một cách linh hoạt, và do đó nó có thể dễ dàng được mở rộng (mà không cần biên dịch lại các nguồn) để xử lý các định dạng đầu ra mới. Cú pháp cho các thông số kỹ thuật này khá dễ dàng (hãy xem hướng dẫn).

Hướng dẫn cài đặt:

Xem tập tin CÀI ĐẶT để biết hướng dẫn xây dựng và cài đặt chi tiết; dù sao đi nữa, nếu bạn đã sử dụng để biên dịch phần mềm Linux đi kèm với các nguồn, bạn có thể chỉ cần làm theo quy trình thông thường, tức là, gỡ bỏ tệp bạn đã tải xuống trong một thư mục và sau đó:

 cd <source code main directory>
 ./configure
 make
 make install

Siêu mèo

Đây là trang chủ của Supercat. Supercat là một chương trình tô màu văn bản dựa trên việc khớp các biểu thức / chuỗi / ký tự thông thường. Supercat hỗ trợ đầu ra html cũng như văn bản ASCII tiêu chuẩn. Không giống như một số chương trình tô màu văn bản tồn tại, Supercat không yêu cầu bạn phải là một lập trình viên để đưa ra các quy tắc tô màu.

Nếu bạn đã viết một tệp cấu hình supercat cho loại tệp tiêu chuẩn, vui lòng liên hệ với tôi tại "bug-spc (at) nosredna (dot) net" để đưa vào phân phối supercat.

Hoặc với một hàm ( nguồn ):

#!/bin/bash#!/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

Yêu cầu: Pygments ( sudo apt-get install python-pygments python3-pygments) Thêm nó dưới dạng hàm bash .fifts và đặt cho nó một tên như màu ()


14

Từ câu trả lời này ở đây , bạn có thể sử dụng các python-pygmentsgói để làm nổi bật công cụ. Đầu tiên làm:

sudo apt-get install python-pygments python3-pygments

sau đó:

pygmentize -g FILENAME

sau đó có một đi:

nhập mô tả hình ảnh ở đây

Bạn cũng có thể đặt nó làm bí danh, như trong câu trả lời tôi đã liên kết - về cơ bản, hãy chạy nó:

echo "alias catc='pygmentize -g'" >> ~/.bash_aliases 
chmod +x ~/.bash_aliases

Đóng thiết bị đầu cuối, mở lại và catclệnh sẽ hoạt động - nếu không, hãy đảm bảo các dòng này có trong .bashrctệp và không bị lỗi:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Một điều nữa là chỉ sử dụng nano:

nano testfile

nhập mô tả hình ảnh ở đây


6

man view hoặc là man vim

Cách sử dụng cơ bản: view <filename>

Thoát: :q<Return>(thêm <Esc>lần đầu tiên nếu sử dụng vim) hoặc ZZ(chữ hoa z hai lần).

Trình soạn thảo văn bản của lập trình viên vimđã có tất cả những gì bạn cần, và có khả năng đã là một phần của hệ thống của bạn.

vimcó chế độ chỉ đọc được kích hoạt bằng viewhoặc vim -R. Nếu tất cả những gì bạn muốn làm là xem tập tin đã đánh dấu, thì nó là đủ.

Sử dụng đơn giản, điều hướng, có sẵn ở khắp mọi nơi. Không cần phải loay hoay với việc cài đặt phần mềm mới hoặc viết các tập lệnh bash.


Tôi biết. Có điều là việc mở và đóng VIM không nhanh chóng. Tôi muốn ngay lập tức xem một tập tin và sau đó tiếp tục trên dòng lệnh. Đó là lý do tại sao tôi tìm thấy pyributionize như vậy là tốt. Kết quả ngay lập tức, không bỏ chương trình hay bất cứ điều gì .. :)
kramer65

1
@ kramer65 Tất nhiên đó là sở thích của bạn, nhưng bạn không cần phải "mở" vimhoặc view, bạn chỉ cần cung cấp cho nó tệp: view file.pyvì vậy không có sự khác biệt nào với cat. Chắc chắn bạn cần phải đóng nó, nhưng thực sự, :q<Return>hoặc ZZkhông phải là nhiệm vụ khó khăn.
một ben khác

Vấn đề chính là vi / vim / view không ghi vào thiết bị xuất chuẩn, vì vậy tôi không thể dễ dàng viết lệnh trong khi liếc vào cú pháp được tô sáng ở trên.
Jack_Hu

4

Người ta có thể kiểm tra ccat .

Nó thêm cú pháp tô sáng cho các tập tin đầu ra.


3

catkhông thể chỉ tạo cú pháp tô sáng. Vẫn bạn có thể làm điều này như sau, sử dụng python-pygments. Đầu tiên cài đặt nó từ thiết bị đầu cuối như,

sudo apt-get install python-pygments

Bây giờ sao chép chức năng dưới đây ~/.bashrc. Nó sẽ cung cấp cho bạn những gì bạn muốn hơn nữa, nó sẽ bảo vệ các thuộc tính củacat nếu không thì không có điểm sử dụngcat

catc(){
    cat "$@" > /tmp/.tmp
    pygmentize -g /tmp/.tmp
    rm /tmp/.tmp
}

Nguồn ~/.bashrcnhư,

. ~/.bashrc

Nó sẽ cung cấp cho đầu ra colazedned,

catc <filename>

Nó cũng sẽ kết hợp với màu sắc,

catc <file1> <file2> ... <filen>

Có cách nào để cho phép cuộn bằng mũi tên lên và xuống khi sử dụng pygmentize? Tôi đang mở bằng cách sử dụng lệnh của biểu mẫu xterm -e "pygmentize -g <filename>" và tôi thấy rằng cách duy nhất để cuộn là sử dụng thanh cuộn. Tôi đã thử đường ống đầu ra đến lessnhưng điều đó dẫn đến đầu ra rác.
Leo Simon

vâng, bạn có thể sử dụng pygmentizevới ít hơn. Tạo một hàm bash lesscnhư sau:lessc () { pygmentize -gf terminal "$1" | less -R }
souravc

2

Bat - Một con mèo nhân bản có cánh

Bạn cũng có thể muốn kiểm tra batcó các tính năng sau:

  • Cú pháp tô sáng
  • Tích hợp Git
  • Tùy chọn hiển thị các ký tự không in được
  • Tự động phân trang với less
  • Kết nối tệp dưới dạng thay thế thả vào catkhi được chuyển hướng

 Xem trước

Ảnh chụp màn hình của dơi hiển thị một tập tin màu

Hình ảnh được lấy từ GitHub chính thức

Cài đặt

Bạn có thể lấy gói Debian mới nhất tại đây và cài đặt nó với:

sudo dpkg -i bat_0.10.0_amd64.deb

Điều chỉnh số phiên bản và kiến ​​trúc.


0

Các câu trả lời khác bao gồm tại sao catkhông thể làm điều đó. Mặc dù bạn có thể làm điều đó với ít sử dụng lesspipe.sh .


0

Thay vì cài đặt gói bên thứ ba, bạn chỉ cần sử dụng geditđể nhanh chóng xem tệp có tô sáng cú pháp. Ví dụ: sao chép thanh địa chỉ ở trên và dán vào thiết bị đầu cuối của bạn:

gedit https://askubuntu.com/questions/405960/can-cat-show-files-using-code-markup-in-colors

Bạn sẽ thấy câu hỏi này trong HTML với các màu được định dạng:

gedit https.png

  • Bạn có thể sử dụng geditcác phím điều hướng quen thuộc
  • Bạn có thể bật / tắt dòng quấn
  • Bạn có thể sử dụng các plugin như tôi đã cài đặt cho máng xối 80 ký tự và tổng quan tài liệu (ngoài cùng bên phải) với thanh trượt hình thu nhỏ
  • Nhắc nhở duy nhất là bạn cần nhớ Alt+ F4để nhanh chóng đóng cửa sổ để mô phỏng catmà không cần nhấn phím để đóng.
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.