Làm thế nào để có được một tab hoàn thành màu?


17

Có cách nào để có được đầu ra màu khi sử dụng hoàn thành tab trong một thiết bị đầu cuối không? Màu sắc của tôi vẫn ổn ở mọi nơi khác vì vậy tôi biết rằng tôi đã kích hoạt thiết bị đầu cuối màu thành công.

Sử dụng bash trong Ubuntu (10.10).


Làm thế nào để bạn chỉ định một "đầu ra màu khi sử dụng hoàn thành tab"?
slhck

Câu trả lời:


21

Không có cơ sở nào trong Bash để đầu ra màu trong khi hoàn thành như có cá và zsh. Người ta có thể viết các hàm hoàn thành xuất ra các chuỗi điều khiển màu, nhưng bạn phải duy trì các bản sao của các lần hoàn thành được đề xuất có và không có mã màu hoặc loại bỏ khi người dùng thực hiện lựa chọn vì Bash sử dụng trực tiếp lựa chọn và mã màu sẽ cản đường

Nếu đây là một tính năng quan trọng đối với bạn, tôi khuyên bạn nên cân nhắc sử dụng zsh.

Cập nhật

Đường đọc Bash 4.3 thêm một biến cho phép màu để hoàn thành tab hiển thị các màu khác nhau cho các tệp, thư mục thực thi, v.v., trong khi hoàn thành tab:

colored-stats

Dòng đọc trong Bash 4.4 sắp tới sẽ thêm một biến cho phép màu biểu thị phần khớp của chuỗi trong khi hoàn thành tab.

colored-completion-prefix

Bạn có thể thấy các giá trị của các biến này bằng cách sử dụng

bind -v | grep color

Để đặt chúng, hãy thêm (các) dòng vào ~/.inputrctệp của bạn, chẳng hạn như:

set colored-stats on

1
@Ryan: Zsh khá tương thích với Bash. Bạn có thể sẽ tìm thấy việc chuyển đổi là khá dễ dàng. Nó có rất nhiều tính năng mạnh mẽ mà Bash không có (hoặc bạn phải sử dụng các tiện ích bên ngoài). Chỉ có một vài điều khác biệt đáng kể trong những điều cơ bản. Một ví dụ là các chỉ mục mảng là một dựa trên thay vì dựa trên không, nhưng có một cài đặt ảnh hưởng đến điều đó. Tôi chỉ thỉnh thoảng sử dụng zsh.
Tạm dừng cho đến khi có thông báo mới.

1
@AstroFloyd: Từ Bash Manua : "Các định nghĩa màu được lấy từ giá trị của LS_COLORSbiến môi trường." Các tài liệu cho biến đó là ở đây . Không có cài đặt cho mancác trang, vì vậy bạn sẽ cần xem nơi bạn LS_COLORSđược đặt và tìm sự kết hợp màu tương ứng và thay đổi nó. Trên hệ thống của tôi, mantên trang không được tô màu khi hoàn thành tab (và các liên kết tượng trưng bị hỏng, trong khi đầu ra màu đỏ xám ls, ...
Tạm dừng cho đến khi có thông báo mới.

1
... có màu xanh nhạt giống như các liên kết hợp lệ trong quá trình hoàn thành tab).
Tạm dừng cho đến khi có thông báo mới.

1
@AndyCarlson: Có bind -v | grep colorhiển thị cả hai set colored-completion-prefix onset colored-stats on? Nếu vậy, điều gì xảy ra khi bạn gõ chữ a theo sau bằng cách nhấn tab hai lần? Nếu bạn đã thêm cài đặt vào ~/.inputrcnhưng chưa bắt đầu thiết bị đầu cuối mới hoặc chưa thực hiện re-read-init-filebằng cách nhấn control-x control-r thì cài đặt sẽ không có hiệu lực.
Tạm dừng cho đến khi có thông báo mới.

2
@AndyCarlson Đầu ra tại dấu nhắc bash là gì khi bạn nhấn ctrl-x ctrl-v?
Tạm dừng cho đến khi có thông báo mới.

3

Tôi không biết về màu hoàn thành cho các tùy chọn lệnh và đối số nhưng đối với tên tệp và thư mục, theo ( /unix//a/133866 ) user495470 nói rằng trong Bash 4.3 và sau đó bạn có thể thêm set colored-stats onvào ~/.inputrcđể được tô màu hoàn thành khi bạn làm ls <tab>.

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.