Bash

在 vim 中查看手冊頁

  • October 5, 2020

我在 bash 中編寫了一個函式以manpages在 vim中查看

viman () { man "$@" | vim -R +":set ft=man" - ; }

這很好用,如果我將manpage不存在的 a 傳遞給它,就會出現唯一的問題。它列印出manpage不存在但仍以vim空緩衝區打開。

因此,我更改了函式以檢查錯誤程式碼(在此處),如果不存在16則退出。manpage修改後的功能看起來有點像這樣 -

viman () { man "$@" | [[ $? == 16 ]] && exit 1 | vim -R +":set ft=man" -  ; }

但是,現在它什麼也沒做!!

manpage如果不存在,我只想退出程序,否則打開manpagewithvim

試試這個:擷取 man 輸出,如果成功啟動 vim

viman () { text=$(man "$@") && echo "$text" | vim -R +":set ft=man" - ; }

我喜歡檢查man返回碼的想法;但是,您無法通過管道進行測試。你可以只執行man兩次:

viman () { man "$@" >/dev/null 2>&1 && man "$@" | vim -R +":set ft=man" - ; }

man ... | vim ...僅在第一次呼叫man成功時執行。

引用自:https://unix.stackexchange.com/questions/487415