Tôi có thể buộc `man` thực hiện kết hợp nhạy cảm chữ thường không?


10

Khi tôi tìm kiếm các trang man, tìm kiếm phân biệt chữ hoa chữ thường, nhưng chỉ liên quan đến chữ in hoa. Ví dụ, xsẽ phù hợp xXtrong khi Xchỉ phù hợp x. Đây là man-dbphiên bản của con người, được sử dụng trên các hệ thống có nguồn gốc fedora theo mặc định và có sẵn trên các hệ thống khác. man mancho biết máy nhắn tin mặc định là less -s. $LESSkhông được xác định trong môi trường, tôi $PAGERchỉ là lessvà tôi không có bí danh nào cho ít hơn.

Đây không phải là hành vi khi tôi tự mình gọi less.

Có cách nào để buộc chữ thường xchỉ khớp với chữ thường xkhi sử dụng mankhông?


1
Mặc định là trường hợp nhạy cảm nghiêm ngặt. Những gì bạn mô tả âm thanh như LESSbiến môi trường của bạn chứa -i.
manatwork

1
Bạn có phiên bản lessnào? Bạn có một bí danh được đặt cho less? Là VESS LESS hoặc LESSOPEN được thiết lập? Theo mặc định, lesstìm kiếm xchỉ khớp x, khôngX
bsd

Chẳng phải chúng ta đã có Q này rồi sao? Tôi nghĩ rằng Hauke ​​đã hỏi nó, tôi sẽ tìm nó .... (slm quay lại trước 5 phút. Hết hạn nhận xét ...) Cái này, không phải là bản sao nhưng có vẻ như những gì bạn đang hỏi, phải không? unix.stackexchange.com/questions/116395/ Mạnh
slm

@slm, đây cũng là phản ứng đầu tiên của tôi, nhưng khi chủ sở hữu câu hỏi tham gia vào câu hỏi đó, tôi cho rằng anh ta biết về nó.
manatwork

@manatwork echo $LESS= không có gì. Lưu ý là nó không phân biệt chữ hoa chữ thường - nhưng nó chỉ thực thi chữ hoa của WRT. @bdowning alias | grep less= không có gì. Chỉ cần lưu ý rằng nó chỉ áp dụng thông qua man(đó là mandb, btw)., Tuy nhiên. Tôi chắc chắn tôi đã đọc về điều này trước khi ở đâu đó ...
goldilocks

Câu trả lời:


3

Con người đang gọi Ít; Kiểm soát duy nhất ở cấp độ người đàn ông là chọn tùy chọn nào để gọi Ít hơn.

Độ nhạy trường hợp tìm kiếm ít hơn được kiểm soát bởi hai tùy chọn.

  • Nếu -Icó hiệu lực, thì các tìm kiếm không phân biệt chữ hoa chữ thường: ahoặc Acó thể được sử dụng để khớp cả hai aA.
  • Nếu -icó hiệu lực nhưng không -I, thì các tìm kiếm không phân biệt chữ hoa chữ thường, nhưng chỉ khi mẫu không chứa chữ hoa.

Nếu bạn tạo -Imột tùy chọn mặc định cho Ít hơn, thì tất cả các tìm kiếm sẽ không phân biệt chữ hoa chữ thường ngay cả trong các trang man.

Man-db chuyển các tùy chọn bổ sung cho máy nhắn tin thông qua LESSbiến môi trường, mà Ít diễn giải theo cách tương tự như các tùy chọn dòng lệnh. Cài đặt được mã hóa cứng tại thời gian biên dịch và bắt đầu bằng -i. (Giá trị là "-ix8RmPm%s$PM%s$"của Man-db 2.6.2; P…$phần là chuỗi dấu nhắc.)

Nếu bạn không muốn các tìm kiếm trong các trang man phân biệt chữ hoa chữ thường hoặc nếu bạn muốn chúng luôn không phân biệt chữ hoa chữ thường, thì không có cách nào để định cấu hình này trong chính man-db. Bạn có thể tạo bí danh cho manhoặc tập lệnh trình bao bọc thao tác LESSbiến môi trường, vì Man-db sẽ bổ sung nội dung của nó vào giá trị hiện tại nếu có:

alias man='LESS="$LESS -I" man'

Để tắt -itùy chọn và do đó làm cho các tìm kiếm luôn luôn phân biệt chữ hoa chữ thường trong các trang man:

alias man='LESS="$LESS -+i" man'

Bạn cũng có thể mã hóa một giá trị khác LESSbằng cách đặt MANLESSbiến môi trường, nhưng nếu bạn làm điều đó, thì manchỉ cần đặt LESSthành giá trị của MANLESS, bạn sẽ mất dòng tiêu đề tùy chỉnh foo(42)(cụ thể là Hướng dẫn sử dụng trang ) và các tính năng khác (cụ thể là chắc chắn bao gồm -Rđịnh dạng in đậm và gạch chân).


1

Đây là cách less's -i(dòng lệnh switch) 'phân biệt dạng chữ' công trình chế độ (ví dụ, nó vẫn còn nhạy cảm đối với chữ in hoa). Như Gilles chỉ ra, sử dụng điều này được biên dịch thành man-db.

Ngoài các cách được chỉ định trong Gilles trả lời WRT, đặt bí danh +-ihoặc tùy chỉnh MANLESS, bạn có thể chuyển đổi khớp trường hợp nghiêm ngặt sau khi trang man mở ra -i(bật và tắt công tắc); bạn sẽ thấy một thông báo "Trường hợp quan trọng trong tìm kiếm" và bây giờ xchỉ khớp xXchỉ khớp X.

Man-db mancó một -Icông tắc, nhưng điều này áp dụng cho tìm kiếm trang man - ví dụ: theo mặc định man BASHsẽ cung cấp cho bạn trang hướng dẫn bash, trong khi đó man -I BASHthì không.


0

"Có cách nào để buộc chữ thường xchỉ khớp với chữ thường xkhi sử dụng mankhông?"

Đây là một cách

man -Tascii manpage |less

Tôi không biết các thông tin chi tiết, nhưng quá trình roffxử lý đang thực hiện đánh dấu và máy nhắn tin dường như khớp với văn bản chưa được đánh dấu, mặc dù nó đang hiển thị văn bản được đánh dấu.
Rất khó hiểu, hy vọng một nroffđạo sư có thể giải thích đường ống dẫn.


Điều này tạo ra một mớ hỗn độn trong thiết bị đầu cuối GUI của tôi (có đầy đủ các ESC[1mloại trình tự).
goldilocks
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.