Linux中國

5 個最酷的終端分頁器

像日誌或源代碼這樣的大文件可能會多達成千上萬行,這使得在文件內導航非常困難,尤其是在終端上。此外,大多數終端模擬器的回滾緩衝區只有幾百行。這可能使得無法使用列印到標準輸出的實用程序(例如 catheadtail)在終端中瀏覽大型文件。在計算時代的早期,程序員通過開發用於以虛擬「頁面」形式顯示文本的實用程序來解決這些問題,該實用程序被形象地描述為 分頁器 pager

分頁器提供了許多使文本文件導航更加簡單的功能,包括滾動、搜索功能,以及作為命令管道的一部分而具有的功能。與大多數文本編輯器相比,某些終端分頁器不需要載入整個文件即可查看,這使得它們更快,特別是對於非常大的文件。

在現代 Linux 計算時代,終端模擬器比以往更加複雜。它們提供了對繽紛的色彩、終端尺寸調整以及許多其它功能的支持,這些功能使得辨析屏幕上的文本變得更加輕鬆和高效。從諸如 pgmore 這樣極其簡單的 UNIX 實用程序,到涵蓋各種使用場景的、功能廣泛的複雜程序,終端分頁器也經歷了類似的演變。考慮到這一點,我們或「多」或「少」地匯總了一些最受歡迎的終端分頁實用程序的列表。

more

more 是最早的分頁器之一,最初在 3.0 BSD 版本中出現。more 的第一個實現由 Daniel Halbert 編寫於 1978 年。從那時起,more 已成為許多操作系統的普遍功能,包括 Windows、OS/2,MacOS 和大多數 Linux 發行版。

more 是一個非常輕量級的實用程序。util-linux 軟體包中提供的版本只有不到 2100 行的 C 語言代碼。但是,這種較小的代碼大小是有代價的。大多數版本的 more 的功能相對有限,不支持向後滾動或搜索。命令也同樣精簡:按回車鍵可滾動一行,或按空格鍵滾動一頁。其他一些有用的命令包括:

  • 在閱讀時按 v 鍵以在默認的終端編輯器中打開當前文件。
  • /模式 可以讓你搜索下一個出現的「模式」。
  • 以多個文件作為參數調用 more 時,:n:p 將分別打開下一個和上一個文件 ### less

less 最初被認為是 more 的繼承者,解決了它的一些局限性。lessmore 的功能為基礎,增加了許多有用的功能,包括向後滾動、向後搜索。它也更適合窗口大小調整。

less 中的導航方式與 more 類似,儘管 less 也從 vi 編輯器借用了一些有用的命令。用戶可以使用熟悉的 主行導航鍵 home row navigational keys (LCTT 譯註:指 左手的 ASDF 和右手的 JKL;,及大拇指所在的空格鍵)瀏覽文檔。看一眼 less 的手冊頁,就會發現相當多的可用命令。一些特別有用的示例包括:

  • ?模式 可讓你在文件中向後搜索「模式」。
  • &模式 僅顯示具有「模式」特徵的行。這對於發現自己經常要使用 $ grep 模式 | less 的人特別有用。
  • 使用 -s(或 –sqeueeze-blank-lines)標誌來調用 less,使你可以查看空白較大的文本文件。 多個換行符被簡化為單個中斷行。
  • 在該程序中調用的 s 文件名 將輸入保存到 文件名中(如果輸入來自管道)。
  • 或者,使用 -o 文件名 標誌來調用 less 將把 less 的輸入保存到 文件名 中。 隨著這些增強的功能也帶來了體積的略微增大。在寫作本文時,Fedora 隨附的 less 版本大約有 25000 行源代碼。當然,除非是受存儲限制最大的系統,在所有其它的系統上這都不是問題。lessmore 功能更多。

most

less 旨在擴展 more 的現有功能,而 most 採用另一種方法。most 不是在傳統的單個文件視圖上進行擴展,而是使用戶能夠將其視圖拆分為「窗口」。每個窗口以不同的查看模式包含不同的文件。

重要的是,most 考慮了其輸入文本的寬度。默認的查看模式是不換行的(less 中的 -S 參數),此功能在處理「寬」文件時特別有用。儘管對於某些用戶來說,這些設計決策可能代表著與傳統的重大偏離,但最終結果卻非常強大。

除了 more 提供的導航命令外,most 使用直觀的助記符進行文件導航。例如,t 移至文件的頂部(Top),而 b 移至底部(Bottom)。這樣,不熟悉 vi 及其衍生品的用戶會發現 most 非常簡單好用。

most 的與眾不同之處在於它能夠快速輕鬆地拆分窗口和上下文。例如,可以使用以下命令打開兩個不同的文本文件:

$ most textFile1.txt textFile2.txt

為了水平拆分屏幕,請使用組合鍵 Ctrl+x, 2Ctrl+w, 2:n 命令將在給定窗口中打開下一個文件參數,提供兩個文件的分屏視圖:

如果在一個窗口中關閉自動換行,它不會影響其他窗口的行為。(行末的) 字元表示換行或摺疊,而 $ 字元表示文件超出了當前窗口的限制。

pspg

使用 SQL 資料庫的人員通常需要能夠一目了然地檢查資料庫的內容。許多流行的開源 DBMS(例如 MySQL 和 PostGreSQL)的命令行界面都使用系統默認的分頁器來查看無法顯示在單個屏幕上的輸出。諸如 moreless 之類的實用程序是圍繞呈現文本文件的想法而設計的,但是對於更結構化的數據,還有一些不足之處。天真的文本分頁程序沒有寬的表格數據的概念,當處理大型查詢時,這可能會令人感到沮喪。

pspg 試圖通過為用戶提供在查看時凍結列、原位排序數據並為輸出著色的功能來解決此問題。儘管pspg 最初是專門用作 psql 的分頁器的替代品,但該程序還支持查看 CSV 數據,並且是 mysqlpgcli 的合適的直接替代品。

Vim

在現代的顏色鮮明的終端中,無休止的黑色頁面上的灰色文字感覺太過時了。強大的文本編輯器(如 vim)提供的語法高亮顯示選項對於瀏覽源代碼很有用。此外,vim 提供的搜索功能遠遠超過了競爭對手。考慮到這一點,vim 附帶了一個 shell 腳本 less.sh,該腳本可以使 vim 替代傳統的分頁器。

要將 vim 設置為手冊頁的默認分頁器,請將以下內容添加到 shell 的配置中(如果使用默認的bash shell 的話是 ~/.bashrc):

export MANPAGER="/bin/sh -c "col -b | vim -c 'set ft=man ts=8 nomod nolist nonu noma' -""

或者,要將 vim 設置為系統範圍內的默認分頁器,請找到 less.sh 腳本。(你可以在當前 Fedora 系統上的 /usr/share/vim/vim81/macros/ 找到它。)將此位置導出為變數 PAGER 以將其設置為默認值,或者將其設置為別名以顯式調用它。

via: https://fedoramagazine.org/5-cool-terminal-pagers-in-fedora/

作者:Jacob Burns 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國