Linux 매뉴얼 페이지의 링크를 따라가는 방법은 무엇입니까?

Linux 매뉴얼 페이지의 링크를 따라가는 방법은 무엇입니까?

매뉴얼 페이지에 언급된 링크를 따라갈 수 있는 방법이 있습니까? 예를 들어, 다음은 다음 ps의 매뉴얼 페이지입니다. 스크린샷에서 밑줄 친 빨간색 원 링크에 액세스하는 방법: top(1)?

ps 매뉴얼 페이지의 스크린샷

답변1

매뉴얼 페이지는 다음으로 돌아갑니다.유닉스 버전 1. 하지만하이퍼텍스트발명 당시에는 초기 단계였습니다. 웹은 아직 20년이나 남았고 매뉴얼은 실제 인쇄된 책이었으며 일반적으로 적절할 경우 페이지당 하나의 주문이 있었습니다(그래서 페이지라고 불렀습니다).

매뉴얼 페이지에 사용되는 형식은 그 이후로 발전했지만 대부분의 페이지는 실제로 하이퍼텍스트용으로 설계되지 않았으며 기본 프로그램은 man이를 지원하지 않습니다(일부 기본 형식 지정 기술을 지원하는 일반 텍스트 뷰어일 뿐입니다). 그러나 일부 매뉴얼 페이지 보기 프로그램은 일부 하이퍼링크(주로 다른 매뉴얼 페이지에 대한 링크)를 재구성합니다. 이 링크는 전통적으로 매뉴얼 페이지의 이름이 이고 다음과 같은 man(1)형식 으로 작성됩니다.man1섹션 번호:

man2html많은 온라인 사이트에서 여러 운영 체제에 대한 매뉴얼 페이지를 찾아보고 다음과 같은 유사한 도구를 통해 HTML로 변환할 수 있습니다.

매뉴얼 페이지가 UNIX에서 확립된 문서 형식이 된 후 웹이 발명되기 전,암소 비슷한 일종의 영양프로젝트 소개정보텍스트 터미널용으로 설계된 간단한 마크업을 준수하면서 사람보다 진보된 문서 형식입니다. 인간에 비해 정보의 주요 혁신은 다른 페이지에 대한 하이퍼링크가 포함된 여러 페이지의 문서를 보유한다는 것입니다. 대부분의 Info 페이지는 다음에서 파생되지만 Info는 GNU 프로젝트에서 선호하는 문서 형식으로 남아 있습니다.텍사스 정보 네트워크HTML 소스(또는 때로는 다른 형식)도 생성될 수 있습니다. 프로그램에 대한 정보 문서가 존재하는 경우 이는 일반적으로 기본 매뉴얼이며 매뉴얼 페이지에는 명령줄 인수에 대한 기본 정보만 포함됩니다.

답변2

우선, 이것은 링크가 아닙니다. 그냥 밑줄일 뿐입니다. 매뉴얼 페이지는 터미널이 처리할 수 있는 간단한 형식이 포함된 텍스트 문서입니다. 밑줄은 "링크"가 아닌 강조 표시일 뿐입니다.

일반 man명령은 단지 텍스트 포맷터일 뿐입니다. 실제로 이 명령은 텍스트도 표시하지 않고 매뉴얼 페이지 파일 [1]man 에 저장된 정보의 형식을 지정하고 형식화된 출력을 화면 상위에 표시하는 다른 프로그램(일반적으로)으로 보냅니다. 이러한 디스플레이 프로그램에는 링크 개념이 없습니다.manless

그러한 형식을 보고 그러한 강조 표시가 끌어낼 수 있고 링크가 생성될 수 있는 관련 매뉴얼 페이지가 있음을 나타낼 수 있다는 교육받은 추측을 할 수 있는 특별한 문서 독자가 있지만 저는 그렇지 않습니다. 누가 이런 일을 하는지 알아라. 아마도 pinfo?

하이퍼링크가 포함된 웹과 유사한 형식을 원한다면 링크가 추가된 온라인에서 거의 모든 UNIX 매뉴얼 페이지를 찾을 수 있습니다. Google에 무언가를 입력 해 보면 man [anything]처음 몇 번의 클릭만으로 거의 확실히 찾을 수 있습니다.

귀하의 예에서 시각적 강조 표시는 이것이 쉽게 불러올 수 있는 자체 매뉴얼 페이지가 있는 또 다른 프로그램 이름이라는 단서입니다. 노력하다 man 1 top. 1은 맨 페이지에서 볼 부분을 나타냅니다. 각 섹션에 대한 설명은 다음 질문을 참조하세요.매뉴얼 페이지의 숫자는 무엇을 의미합니까?


[1]man 페이지 파일을 텍스트 편집기에서 열면 읽기 쉽도록 서식이 적용되지 않은 원본 페이지가 표시 됩니다 man. 원본 man페이지는 이라는 마크업 언어로 작성됩니다 troff. 페이지 troff작성 방법 에 대한 자세한 내용은 다음을 참조하세요.manhttps://liw.fi/manpages/.

답변3

나는 추천한다w3mman, 시스템의 매뉴얼 호출기는 w3m 명령줄 브라우저를 통해 수행됩니다. 링크에 색상을 지정하고 탭 전환을 허용합니다.

w3m대부분의 소프트웨어 저장소와 Cygwin에서 사용할 수 있는 이 패키지를 설치하여 사용해 볼 수 있습니다 .

답변4

해커가 있습니다.

해커 1

~/.bashrc 또는 ~/.zshrc에 넣으세요.

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
}

스크린샷..

vim 매뉴얼 스크린샷

아시네마...

https://asciinema.org/a/130131

지금..

  1. 예를 들어 를 입력하면 man vim이 매뉴얼 페이지가 열립니다.

    • man man vim예를 들어, 입력하면 매뉴얼이 먼저 열리고 , vim을 종료한 후에 매뉴얼이 man열립니다.vim
  2. 키를 누르면 K(대문자 k) 하단의 다른 매뉴얼 페이지에 있을 때(당신은 또한 볼 수 있습니다섹션) 이 매뉴얼로 이동하게 됩니다(불행히도더 적은 호출기let no_man_maps = 1-- 그렇게 하지 않으면 vim이 강제로 매크로를 기록할 수 없게 되고 vim이 다른 방식으로 비정상적으로 작동할 수 있기 q때문 입니다 .:q

    • 입력한 두 번째 매뉴얼을 종료하면 보고 있던 이전 매뉴얼로 돌아갑니다.
  3. 로드한 이후에는 정말 멋진 구문 강조 표시를 얻을 수 있습니다.ftplugin/man.vimft(자동)는 으로 설정됩니다 man.

  4. vim 내에서 복사 및 붙여넣기, 자유롭게 탐색할 수 있으며 심지어 버퍼 및 :w ~/usefulfile."+y+clipboard

내 생각엔 그게 더 나은 것 같아더 적은.

내가 발견한 유일한 사소한 좌절감(페이저로 덜 사용하는 경우에도 여전히 존재함)은 하나의 vim 세션에서 여러 설명서를 열어두고 싶다는 것입니다. 내가 이걸 할 수 있는 방법은 정말 없어.

몇 가지 참고사항:

  1. 버퍼를 저장하려고 하면 다음과 같은 결과가 나타납니다.E382: Cannot write, 'buftype' option is set

    • 실수로 저장하는 것을 방지하기 때문에 저장할 수 없다는 점이 마음에 듭니다.
  2. 아직 저장할 수 있어:w /tmp/man.man

    • 확장명으로 저장한 .man다음 열면 파일 형식이 man사용자에게 맞게 설정됩니다.
    • 확장자 없이 저장하면 .manft를 다음과 같이 설정할 수 있습니다.man:set ft=man
  3. autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'예를 들어 매뉴얼 페이지가 열릴 때 특정 작업을 수행해야 하는 경우에 사용할 수 있습니다.

  4. vimrc에 다음을 넣어서 Ktry를 눌러 매뉴얼을 열고 나서 를 눌러 G이전 매뉴얼로 돌아갈 수 있도록 했습니다:


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

해커 2

~/.bashrc 또는 ~/.zshrc에 넣으세요.

function man(){
    declare -a args
    for arg in "$@"; do
        command man "$arg" > "/tmp/${arg}.man"
        args+=("/tmp/${arg}.man")
    done
    vim "${args[@]}"
}

스크린샷..

vim의 여러 매뉴얼

아시네마...

https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv

이것이 문제를 해결했습니다해커 1그리고더 적은(이제 하나의 버퍼에서 여러 매뉴얼을 볼 수 있지만) 덜 우아합니다.

노트:

  1. 중요한네가 원한다면해커 2작동하려면 vim이 :let no_man_maps = 1소스 ~/.vimrc를 제공 .../vim80/man.vim하고 q강제로 :q.

  2. 더 많은 정리 작업이 필요합니다(이제 각 매뉴얼을/tmp/*.man)

  3. 그러나 위에서 설명한 대로 이제 한 세션에서 여러 매뉴얼 페이지를 볼 수 있습니다.

  4. 을 누르면 K새 vim 세션이 열리지만

    • 원한다면 autocmd를 바인딩하여(위의 것과 같은 autocmd를 사용하여) 유사 autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"하거나 그와 같은 이상한 작업을 수행할 수 있습니다(테스트되지 않은)

관련 정보