Ed

為什麼 ed 從最後一行開始?

  • April 19, 2021

為什麼 ed 從文件的最後一行而不是第一行開始?

當您記得它是用於與列印機互動時,ed 的大多數行為都是有意義的,但不是這個。因為我相信它將整個文件讀入記憶體,所以它甚至不是 IO 搜尋。

一般來說,在 Ed 中執行任何命令後,游標(即目前行)都會放在受命令影響的最後一行。當 ed 啟動並載入文件時,這相當於e命令。該e命令影響整個緩衝區,因此它將目前行設置為最後一行。

將游標放在最後一行是插入或載入文本後最有用的事情:通常,使用者接下來要做的就是在那之後寫更多的文本。所以,實際上,並不是載入文件遵循將游標放在末尾的一般規則,而是載入文件證明了將游標放在末尾的一般規則。

現代編輯器要麼將游標放在開頭,要麼記住最後一個位置。Ed 不夠先進,無法記住最後一個位置。如果使用者要對文件進行某種全域編輯操作,則將游標放在開頭是有意義的,但如果使用者要在他們離開的地方繼續寫,則不是:這很可能發生在最後。Ed 將最簡單的操作(繼續寫)優先於更複雜的操作,這是良好的使用者界面設計。

Ex 保持這種行為。我不知道為什麼 Vi 最初切換到將游標放在文件的開頭。

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