使用 f 在更多尋呼機中向前導航

使用 f 在更多尋呼機中向前導航

more它在手冊頁中給出,用於f向前跳過 k 螢幕文字(預設為 1 )。時它本身並沒有向前導航,但它會顯示,然後文件關閉並返回提示。由於文件長度足夠長,每次應跳過一頁向前導航。為什麼它表現出如此不同的行為?catmoref... skipping 29 linesspacebar

在此輸入影像描述

答案1

試試這個實驗:

  • 打開一個 25 行的終端機。
  • 跑步seq 1 1 100 > test_text
  • 跑步more test_text
  • 查看螢幕上最後一行的前一行。會說24
  • f跳過頁面。
  • 看看螢幕上的第一行。會說49

f跳過一頁文字。因此,您看到了文件的第一個“頁”,按下f,您看到了第三頁。

此時,如果f再次按,您將看到... skipping 24 lines文件的最後 4 行。more將退出,因為沒有足夠的行來顯示第五頁。

請再次嘗試使用spacespace不跳過頁面。您將看到所有頁面。

編輯

這個答案指的是more version 5.19 (Berkeley 6/29/88), which is currently in use in the Linux community(參見男人更多)。正如 @Kusalananda 報導的那樣,“實驗”的結果可能會因不同版本/unices而異。

linea和 a之間的區別row of text on a terminal

通常這兩個定義是可以互換的。在這種情況下,區分它們很重要。

  • 行是文字檔案中以換行符(字元)結尾的字元序列\nwc -l指令計算檔案中的行數。線的長度可以是零到無窮大之間的任何數字。
  • 一行文字(在終端機上)是終端機上顯示的字元序列。它具有端子寬度的固定長度。

我的第一個「實驗」太簡單了,所有的行(非常肯定)都比行短。

在您的文件中,行可能比行長得多。若要顯示它們,more請將每行排列為多行。

讓我們試試一個新的實驗:

  • example建立一個包含以下內容的文件:

    006 XX\n010 XXYYYY\n015 XXYYYYZZZZZ\n
    

    這是一個 3 行文件。每行的長度依序為:6、10 和 15 個字元。不要忘記計算數字後面的空格。

  • 跑步wc -l example。 3 是結果。

  • 在 8 列終端機上,您應該會看到類似的內容

    006 XX  
    010 XXYY
    YY      
    015 XXYY
    YYZZZZZ 
    

    第一行是 8 個字元長度:006+ 一個空格 + XX+ 2 個空格。

    第二行是 8 個字元長度:010+ 一個空格 + XXYY

    第三行是 8 個字元長度:YY+ 8 個空格。

    等等等等.

您的 3 行文字現在是 5 行文字。

的手冊頁more說:

 f         Skip forward k screenfuls of text.  Defaults to 1.

這意味著more將跳過很多行文字來填充終端的所有行。

答案2

但它顯示...skipping 29 lines然後文件關閉並返回提示

當您按下f並到達文件末尾時就會發生這種情況。

例如:您有一個 40 行的文件,您執行more myfileof60lines.txt,它會顯示前 29 行,然後您按f,因此它將跳過接下來的 29 行,但在此之前,它會到達文件的末尾。因此,您最終會看到,以及到達文件末尾時...skipping 29 lines的正常行為,即傳回提示符。more

相關內容