Có cách nào để theo các liên kết được đề cập trong một trang người đàn ông? Ví dụ: đây là trang hướng dẫn ps
; Làm thế nào để tôi truy cập vào liên kết được đánh dấu màu đỏ?
Có cách nào để theo các liên kết được đề cập trong một trang người đàn ông? Ví dụ: đây là trang hướng dẫn ps
; Làm thế nào để tôi truy cập vào liên kết được đánh dấu màu đỏ?
Câu trả lời:
Các trang Man có từ phiên bản Unix First . Mặc dù siêu văn bản đã được phát minh, nó vẫn còn trong giai đoạn trứng nước; web cách đó hai thập kỷ và sách hướng dẫn là một cuốn sách in thực tế, thường có một lệnh trên mỗi trang nếu chúng phù hợp (đó là lý do tại sao chúng được gọi là trang).
Định dạng được sử dụng cho các trang thủ công đã phát triển phần nào kể từ đó, nhưng hầu hết các trang không thực sự được thiết kế cho siêu văn bản và man
chương trình mặc định không hỗ trợ nó (nó chỉ là một trình xem văn bản đơn giản, có hack để hỗ trợ một số định dạng cơ bản). Tuy nhiên có những người đàn ông trang xem các chương trình tái tạo lại một số các siêu liên kết, chủ yếu là các liên kết đến các trang người đàn ông khác, mà theo truyền thống được viết dưới dạng man(1)
nơi man
là tên của trang con người và 1
là số phần :
Bạn có thể duyệt các trang thủ công của một số hệ điều hành, được chuyển đổi sang HTML bằng man2html
hoặc các công cụ tương tự, trên một số trang web trực tuyến, ví dụ:
Một thời gian sau khi các trang man đã trở thành định dạng tài liệu được thiết lập trên unix và một thời gian trước khi web được phát minh, dự án GNU đã giới thiệu định dạng tài liệu thông tin , tiên tiến hơn so với con người trong khi gắn vào đánh dấu đơn giản được thiết kế cho các thiết bị đầu cuối văn bản. Sự đổi mới chính của thông tin so với con người là có tài liệu nhiều trang với các siêu liên kết đến các trang khác. Thông tin vẫn là định dạng tài liệu ưa thích cho các dự án GNU, mặc dù hầu hết các trang Thông tin được tạo từ nguồn Texinfo (hoặc đôi khi các định dạng khác) cũng có thể tạo HTML. Khi tài liệu thông tin cho một chương trình tồn tại, nó thường là hướng dẫn chính, trong khi các trang hướng dẫn chỉ chứa thông tin cơ bản về các đối số dòng lệnh.
M-x man
(và C-h v mode-name
là Man
): ít nhất là ở một khía cạnh, nó tốt hơn WoMan
bởi vì nó hiển thị các bảng ( ảnh chụp màn hình ). Tất nhiên, nó là siêu liên kết là tốt.
b
Bằng cách đó, chính là . Đối với người dùng mô hình giao diện này có thể là trực quan?
page(N)
liên kết vào các siêu liên kết. Đã khá ngạc nhiên rằng điều đó không được đề cập trong câu trả lời của Gilles về chất lượng đó.
Trước hết, nó không phải là một liên kết. Nó chỉ là một gạch chân. Các trang man chỉ là các tài liệu văn bản với một chút định dạng đơn giản mà một thiết bị đầu cuối có thể xử lý. Phần gạch chân chỉ là một điểm nổi bật, không có "liên kết" liên quan.
Lệnh bình thường man
chỉ là một định dạng văn bản. Trong thực tế, man
lệnh thậm chí không hiển thị văn bản, man
chỉ định dạng thông tin được lưu trữ trong tệp trang man [1] và gửi đầu ra được định dạng đến một chương trình khác (thường less
) hiển thị đầu ra được định dạng ra màn hình. Các chương trình hiển thị này không có khái niệm về liên kết.
Có một số độc giả tài liệu đặc biệt có thể nhìn vào định dạng như vậy và đưa ra một phỏng đoán có giáo dục rằng một điểm nổi bật như vậy có thể chỉ ra rằng có một trang người đàn ông liên quan có thể được kéo lên và tạo một liên kết, nhưng tôi không biết cái nào làm Có lẽ pinfo
?
Nếu bạn muốn định dạng web như siêu liên kết, bạn có thể tìm thấy hầu hết mọi trang người dùng UNIX trực tuyến với các liên kết được thêm vào. Hãy thử nhập man [anything]
vào google và bạn gần như chắc chắn sẽ nhận được một trong hai lần truy cập đầu tiên.
Trong trường hợp ví dụ của bạn, đánh dấu hình ảnh là một đầu mối là một tên chương trình khác có trang man riêng mà bạn có thể dễ dàng kéo lên. Hãy thử man 1 top
. 1 cho biết phần của các trang man cần xem. Xem câu hỏi này để được giải thích về các phần: Các số trong trang man có ý nghĩa gì?
[1] Nếu bạn mở man
tệp trang trong trình soạn thảo văn bản, bạn sẽ thấy man
trang thô không được định dạng để dễ đọc. man
Trang thô được viết bằng ngôn ngữ đánh dấu được gọi là troff
. Để biết thêm thông tin về troff
và cách viết một man
trang, hãy xem: https://liw.fi/manpages/ .
man 1 top
?? Tôi có nghĩa là nó phải giống như ps 1 top
vì tôi tìm thấy liên kết trên trang người đàn ông cho ps
. "Người đàn ông 1 đầu" không có ý nghĩa với tôi. Vui lòng làm rõ.
top(1)
"liên kết", bạn cần mở top
trang thủ công từ phần 1. Để biết thêm thông tin về các phần, xem người đàn ông (1). ps 1 top
không có ý nghĩa gì, vì bạn sẽ chỉ chạy ps
lệnh với một số thông số lạ.
readlink
xuất hiện trong phần 1 và phần 2 và printf
trong phần 1 và 3. Nếu bạn chỉ cần nhập man command
, man trys các phần theo thứ tự số và hiển thị đầu tiên nó tìm thấy, hoặc bạn có thể cụ thể man # command
, mà bạn phải làm để lấy tài liệu cho readlink
cuộc gọi hệ thống.
Đây là trả lời rất muộn nhưng sử dụng w3mman. w3mman là máy nhắn tin thủ công của hệ thống bằng w3m.
https://linux.die.net/man/1/w3mman
Bạn có thể thử nó bằng cách cài đặt gói w3m. Tôi tin rằng gói này được đăng ký trong kho phần mềm của hầu hết các bản phân phối Linux / UNIX và Cygwin.
w3mman
cũng được cung cấp với w3m
cài đặt Macports mặc định . Thật tuyệt :) Cảm ơn!
Hãy để tôi cố gắng diễn giải câu hỏi của bạn nhiều hơn một chút theo nghĩa mà tôi cố gắng theo dõi quy trình làm việc của bạn. Những gì bạn có thể muốn có là một tổ hợp phím trong một man
trang dẫn bạn trực tiếp đến các lệnh được gạch chân mà bạn đang đọc. Vì vậy, không phải cài đặt một cái gì đó khác, cũng không mở một giao diện điều khiển khác và quên cú pháp chính xác chẳng hạn.
Giải pháp đơn giản nhất này là dấu chấm than (nếu bạn đang sử dụng less
để hiển thị các trang hướng dẫn) và bạn muốn đi đến phần gạch chân top
:
!man top
Hoặc là
!man 1 top
Bạn sẽ phải đóng tất cả chúng bằng cách nhấn q
nhiều lần. Cũng lưu ý rằng điều này sẽ không hoạt động nếu LESSSECURE=1
được đặt là biến môi trường sẽ chạy less
ở chế độ bảo mật và không cho phép bạn sử dụng !
. Nó sẽ cho bạn biết một cái gì đó như "Lệnh không có sẵn".
Mặc dù w3mman là một giải pháp để theo các liên kết, nhưng không sử dụng tất cả màn hình (ít nhất là trên Ubuntu 12.10)
Tôi thích sử dụng:
$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'
thêm lệnh cuối cùng vào ~ / .bash_aliases hoặc tập lệnh khởi động tương tự để có được nó trên mỗi phiên.
Các w3m -P là do trình duyệt đầu tiên hman là lynx hoặc hợp lý trình duyệt nhưng tôi thích w3m
hman là một công cụ được đóng gói trên html2man. Xem cái này
Nếu lối ra có xác nhận gây khó chịu cho bạn, thì với tôi là sử dụng cái này
Cụ thể cho Ubuntu, có Yelp. Nó được cài đặt theo mặc định và theo mặc định có thể hiển thị các trang thủ công, mặc dù lệnh gọi để làm như vậy, không giống như man
lệnh; một bí danh hoặc một hàm shell có thể hoạt động xung quanh điểm sau (tùy thuộc vào shell của bạn).
yelp 'man:exit'
Nó sẽ mặc định là một phần theo cách tôi không biết. Nhắc nhở: để có được danh sách các phần cho một chủ đề thủ công, hãy sử dụng whatis
, như trong whatis exit
.
Để yêu cầu Yelp hiển thị trang thủ công từ một phần cụ thể, giả sử 2, làm:
yelp 'man:exit(2)'
Vấn đề: yelp có lỗi và được chuẩn bị để nhận nhiều đầu ra lỗi khi gọi nó từ dòng lệnh. Ngoài ra, một bí danh hoặc một hàm shell tùy chỉnh có thể giúp chuyển hướng tất cả các lỗi sang/dev/null
Tôi có một (vài) hack (s).
Đặt cái này trong ~ / .bashrc hoặc ~ / .zshrc của bạn
function man(){
for arg in "$@"; do
vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"'
done
}
Ảnh chụp màn hình ..
Asciinema ..
https://asciinema.org/a/130131
Hiện nay..
khi bạn gõ man vim
chẳng hạn, nó sẽ mở ra trang man này trong vim
man man vim
ví dụ, nếu bạn nhập , nó sẽ mở man
hướng dẫn sử dụng và sau khi bạn thoát vim, nó sẽ mở vim
hướng dẫn sử dụngkhi bạn nhấn K(vốn đó k
) khi bạn ở trang nam khác ở phía dưới (phần XEM CSONG ), bạn sẽ chuyển sang hướng dẫn này (không may là bên trong một máy nhắn tin ít hơn - điều này là do chúng tôi có let no_man_maps = 1
; nếu bạn không làm điều đó, sau đó vim sẽ buộc q
phải có :q
và bạn sẽ không thể ghi lại một macro dễ dàng, và vim có thể hành xử mạnh mẽ theo những cách khác).
bạn nhận được cú pháp tô sáng rất đẹp vì bạn đã tải ftplugin / man.vim và ft được (tự động) được đặt thành man
.
bạn có thể sao chép và dán, điều hướng tự do trong vim và thậm chí sửa đổi bộ đệm và :w ~/usefulfile
. Bạn có thể làm mọi thứ bạn thường làm trong vim, bao gồm các macro bản ghi, yank vào clipboard với "+y
(nếu bạn có +clipboard
), v.v., v.v.
Tôi thấy nó đẹp hơn ít hơn .
Nhược điểm nhỏ duy nhất tôi đã tìm thấy (vẫn còn tồn tại nếu bạn sử dụng ít hơn như máy nhắn tin của mình) là nếu bạn muốn mở nhiều hướng dẫn sử dụng trong một phiên vim. Tôi thực sự không thấy một cách để làm điều này.
Một vài lưu ý:
nếu bạn cố lưu bộ đệm, bạn sẽ nhận được E382: Cannot write, 'buftype' option is set
bạn vẫn có thể tiết kiệm như :w /tmp/man.man
.man
phần mở rộng, thì việc mở nó lên sẽ thiết lập kiểu tệp man
cho bạn.man
tiện ích mở rộng, bạn có thể đặt ft thành man
bằng cách chạy:set ft=man
nếu bạn cần làm những việc khi mở trang man bạn có thể sử dụng autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'
, chẳng hạn.
Tôi đã đặt các mục sau trong vimrc của mình để tôi có thể nhấn Kđể thử mở thủ công, sau đó nhấn Gđể quay lại hướng dẫn trước:
augroup man
autocmd!
autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr>
autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>c-r>\"\<lt>cr>"<cr>
augroup END
đặt cái này trong ~ / .bashrc hoặc ~ / .zshrc của bạn
function man(){
declare -a args
for arg in "$@"; do
command man "$arg" > "/tmp/${arg}.man"
args+=("/tmp/${arg}.man")
done
vim "${args[@]}"
}
Ảnh chụp màn hình ..
Asciinema ..
https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv
Điều này giải quyết vấn đề hack 1 và ít phải đối mặt (bây giờ bạn có thể xem nhiều hướng dẫn sử dụng trong một bộ đệm), nhưng nó kém thanh lịch.
Ghi chú:
QUAN TRỌNG nếu bạn muốn hack2 để làm việc, sau đó bạn phải đặt :let no_man_maps = 1
trong bạn ~/.vimrc
. Điều này là do vim sẽ nguồn .../vim80/man.vim
và q
sẽ bị buộc phải ánh xạ lại :q
.
có nhiều dọn dẹp liên quan hơn (bây giờ bạn lưu trữ mọi hướng dẫn sử dụng vào /tmp/*.man )
tuy nhiên, bây giờ bạn có thể xem nhiều trang man trong một phiên, như đã lưu ý ở trên
nếu bạn nhấn K, bạn vẫn sẽ mở một phiên vim mới, tuy nhiên
autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"
hoặc một cái gì đó điên rồ như thế ( chưa được kiểm tra )Tôi đã có thể sử dụng --html
đối số để man
mở nó trong trình duyệt được xác định bởi biến môi trường $ BROWSER, vì vậy:
BROWSER=google-chrome man ps --help
Tôi đang sử dụng Fedora. Không chắc chắn nếu điều này làm việc cho bản phân phối của bạn, xin vui lòng kiểm tra và báo cáo trong các ý kiến.
groff
cần phải được cài đặt. Các groff
lệnh có thể có mặt ở đó trong khi gói cùng tên không phải là (lệnh đi kèm với groff-base
, không phải là đầy đủ groff
trọn gói). Tôi làm man --html="surf file%c//%s" <command>
, và nó ổn. Có siêu văn bản rất hạn chế mặc dù: - /.
man is an interface to the on-line reference manuals
(nếu tôi không sai) có nghĩa là nó nên lấy tất cả thông tin từ một số trang web trên internet, phải không? Vì vậy, bất cứ ai cũng có manh mối về liên kết http: // là gì?