Tự động định dạng lại các trang man về thay đổi kích thước thiết bị đầu cuối


14

Một quy trình làm việc chung của tôi là mở một trang thủ công trong một thiết bị đầu cuối, sau đó đến một thiết bị đầu cuối khác để kiểm tra mọi thứ. Trang man được định dạng theo kích thước ban đầu của thiết bị đầu cuối. Khi bây giờ tôi thay đổi kích thước các cửa sổ của mình (hoặc để WM tự động làm điều đó cho tôi), có một khoảng trống ở bên phải của trang được định dạng sẵn hoặc các dòng được bọc. Tại thời điểm này tôi thường q(uit) và !!(chạy lại), làm mất vị trí của tôi trong trang.

Tôi giả sử quá trình định dạng khá tốn CPU, hoặc có thể nó bắt nguồn từ thời cổ đại của các kích cỡ đầu cuối cố định. Máy lessnhắn tin tự động phản ứng với các sự kiện thay đổi kích thước thiết bị đầu cuối, vì vậy nó có thể là lý thuyết.

Tôi đã thử lướt qua các trang người đàn ông, tìm kiếm trên Web, hỏi về IRC - toàn bộ - nhưng không thể tìm ra bất cứ điều gì.

  • Tôi có thể kích hoạt định dạng lại từ bên trong hoặc bên ngoài tiện ích người đàn ông không?

  • Có phiên bản nào của tiện ích man thay đổi kích thước trang một cách linh hoạt không?

  • Có cách nào để tùy chỉnh một phần của quá trình định dạng / hiển thị để làm cho nó cập nhật SIGWINCHkhông?


manthực sự sử dụng lessnhư máy nhắn tin; bạn có thể nhấn hvào trang nam để có lessmàn hình trợ giúp. Tôi không chắc tại sao nó không tự động thay đổi kích thước các trang man
Michael Mrozek

3
Vấn đề dường như là manlàm cho đầu ra trở thành chiều rộng của thuật ngữ. Những gì bạn cần là một máy nhắn tin có thể đánh dấu nơi bạn đang ở trong tài liệu, thực thi lại người đàn ông (điều mà họ thực sự không biết vì nó đã được chuyển đến nó) và quay lại dấu trang. Ngoài ra, một lệnh man mới kết hợp máy nhắn tin.
nix

Câu trả lời:


11

Vấn đề cơ bản là định dạng được thực hiện bởi một chương trình và phân trang được thực hiện bởi một chương trình khác. Ngay cả khi trình định dạng nhận được tín hiệu rằng kích thước cửa sổ đã thay đổi và định dạng lại văn bản cho kích thước cửa sổ mới, tất cả những gì có thể làm là đưa văn bản mới xuống đường dẫn đến máy nhắn tin. Không có cách nào để máy nhắn tin biết chắc chắn vị trí nào trong luồng mới tương ứng với vị trí trong luồng cũ mà nó hiện đang hiển thị.

Những gì bạn cần là cho máy nhắn tin để có thể thực hiện việc định dạng lại. Như @Robin Green đã nói, đó là HTML.

Nếu bạn muốn sử dụng HTML nhưng vẫn hoạt động trong thiết bị đầu cuối, bạn có thể yêu man(1)cầu xuất ra HTML và gọi trình duyệt chế độ văn bản để hiển thị.

man -Hlynx man

Điều đó sẽ hiển thị man(1)trang chủ trong trình duyệt chế độ văn bản lynx. Lynx không trực tiếp đáp ứng với thay đổi kích thước cửa sổ, nhưng bạn có thể nhấn ctrl-R và lynx sẽ kết xuất lại trang cho kích thước cửa sổ mới.

Có hai trình duyệt chế độ văn bản khác mà tôi biết: liên kết và elinks. Bạn có thể thử nghiệm với những cái đó và lynx và xác định xem cái nào mang lại cho bạn trải nghiệm tốt nhất để duyệt các trang man. Bạn có thể muốn sử dụng một cấu hình tùy chỉnh chỉ dành cho các trang man và gọi một tập lệnh gọi trình duyệt với cấu hình cụ thể đó.

Bạn có thể đặt các tùy chọn người đàn ông bạn thích vào MANOPTbiến môi trường.

$ export MANOPT=-Hlynx
$ export MANOPT=-Hmanlynx # manlynx invokes lynx with a different configuration.

Bạn sẽ cần cài đặt groffgói manđể có thể tạo HTML.


Hạn chế của -Hđối số với con người là nó không sử dụng máy chủ web, mà chỉ đơn giản là một tệp nhỏ. Mặc dù điều này tránh được bất kỳ vấn đề nào với tường lửa được định cấu hình sai, nhưng nó không cho phép các siêu liên kết đến các trang man khác được tạo ra (mà ít nhất là một số người dùng bên thứ ba-> hỗ trợ các tập lệnh html).
Robin Green

1
@Robin Green: Câu hỏi là về việc hỗ trợ các trang man trong các cửa sổ đầu cuối có thể định cỡ lại. Trong bối cảnh đó không sử dụng máy chủ web không phải là một hạn chế. Và không có siêu liên kết không phải là một hạn chế, vì các trang man được hiển thị trong lesskhông có siêu liên kết.
camh

Đó là sự thật, đó chắc chắn là một câu trả lời hợp lệ.
Robin Green

4

Chuyển đổi các trang man thành html một cách nhanh chóng bằng cách sử dụng một tập lệnh phù hợp như manserver , xem chúng trong trình duyệt web (tất nhiên có thể là trình duyệt web dựa trên văn bản như lynx).

Đây có lẽ là lý do tại sao không ai giải quyết được vấn đề này - bởi vì vấn đề trở nên không liên quan với sự phát triển của man-> các tập lệnh html.

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.