Làm thế nào tôi có thể sử dụng người đàn ông mà không ít?


21

Theo mặc định, mansử dụng lessđể xuất văn bản. Làm thế nào tôi có thể bảo nó chỉ xuất ra thiết bị xuất chuẩn? Trình giả lập thiết bị đầu cuối của tôi có một thanh cuộn và chức năng tìm kiếm và tôi muốn sử dụng chúng thay vì các phím mũi tên.

Câu trả lời:


31

Trên thực tế, nó sử dụng bất cứ điều gì được chỉ định trong MANPAGERhoặc PAGERbiến môi trường.

Tùy thuộc vào manviệc triển khai và phiên bản của bạn , cũng có thể có một công tắc dòng lệnh để chỉ định máy nhắn tin.

Với triển khai man-db, tôi sử dụng tất cả các cách bên dưới:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

Để đặt nó vĩnh viễn, chỉ cần thêm nó vào ~/.bashrc(hoặc tệp khởi tạo khác được sử dụng bởi trình bao của bạn):

export MANPAGER=cat

Điều đó cũng hoạt động với một số mantriển khai cũ hơn , trong khi MANOPTcụ thể là man-db:

export MANOPT='-P cat'

(Tốt hơn đừng đặt PAGERtheo cách đó. Cái đó cũng được sử dụng bởi nhiều ứng dụng khác.)

Cũng có thể có một tập tin cấu hình toàn cầu. man-db có /etc/man_db.confhoặc /etc/manpath.config. Ở đó bạn có thể thiết lập:

DEFINE    pager    cat

Nhưng thật không may, điều đó chỉ được xem xét nếu cả hai MANPAGERcũng không PAGERđược thiết lập.


2
Câu trả lời tốt. Re : ~/.bashrc, Bạn cũng có thể gói xuất trong một điều kiện để nó chỉ đặt máy nhắn tin nếu đó là thiết bị đầu cuối / trình giả lập thích hợp : if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi; rõ ràng thay thế xtermbằng trình giả lập thích hợp.
Kevin

1
Trên thực tế, nó tốt và theo thiết kế mà manpath.config sẽ được tính đến sau. Cả PAGER và MANPAGER đều ở cấp độ người dùng, trong đó tệp cấu hình là cấp hệ thống. Nếu mức hệ thống được ưu tiên thì người dùng hoàn toàn không thể ghi đè.
Paul de Vrieze

@PauldeVrieze, bạn đã đúng MANPAGER. Tôi đã sử dụng từ không may, vì thực tế hành vi cũng áp dụng PAGER, đó là một cài đặt chung (được sử dụng bởi nhiều công cụ) và tôi muốn nó không ghi đè lên một cài đặt cụ thể (chỉ được sử dụng bởi một công cụ), ngay cả khi đó một là cấp độ hệ thống.
manatwork

Nếu bạn muốn ghi đè một cài đặt cụ thể cho một công cụ, bạn luôn có thể làm như vậy bằng cách tạo bí danh, hàm shell hoặc tập lệnh bao bọc. Một trong số đó sẽ lên tới : PAGER=cat man, ví dụ:alias man='PAGER=cat MANPAGER=cat man'
Paul de Vrieze

6

Đơn giản chỉ cần đường ống đầu ra của manđể cat?

man ls | cat   # useful use of cat

6
Lưu ý rằng tùy thuộc vào việc mantriển khai, 1) sẽ tăng lỗi, 2) hiển thị mã định dạng troff trong thiết bị đầu cuối, 3) xóa tất cả định dạng, 4) hoạt động như mong đợi.
manatwork

2
Tôi chưa bao giờ thấy nó làm gì ngoài 4.
Keith Thompson

@KeithThndry macOS mandường như sử dụng bộ máy nhắn tin MANPAGERngay cả khi đầu ra là một tệp hoặc một đường ống. Và nếu máy nhắn tin là vậy less, thì tất cả đều tốt vì nó lesshoạt động như catkhi đầu ra là một đường ống ... Nhưng nếu bạn sử dụng một thứ khác (như Vim, mà tôi sử dụng), thì nó không tốt lắm.
muru

1

Hãy thử các lệnh này để tạo đầu ra man mà không cần máy nhắn tin.

  • man ls | cat (tạo chiều rộng cố định)

  • man -P cat ls (tạo chiều rộng biến)

Tôi đã sử dụng hệ thống linux linux


1

Một góc khác: Tương tự như câu trả lời của Tony.

Bạn cũng có thể chuyển hướng đầu ra của con người vào một tệp và xem nó bằng trình soạn thảo văn bản yêu thích của bạn hoặc thậm chí thêm dấu trang, nhận xét, v.v. vào đó.

man bash  > bashman.txt

Tôi có một bản sao của trang bash man cũng như chỉ các phần về kiểm soát luồng bash và các cờ kiểm tra bash được lưu dưới dạng tệp văn bản trong thư mục bin của tôi để tôi có thể tải chúng ngay vào trình soạn thảo văn bản của mình (kate) để tham khảo trong khi tôi viết kịch bản bash.


Cảnh báo: tùy thuộc vào hệ thống của bạn và trang man, lệnh trên có thể dẫn đến định dạng thông tin và các ký tự điều khiển trong tệp.

Để tránh điều này, hãy làm như được đề xuất trong LESS='+/^TIPS' man man:

To  get a  plain  text  version  of a man page, without backspaces and
underscores, try

  # man foo | col -b > foo.mantxt

1
@Wildcard - Cảm ơn. Tôi không biết về điều đó.
Joe
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.