Vi

普通 vi(不是 vim):無法在插入模式下刪除一行:POSIX 是否需要這種行為?

  • March 3, 2014

在我使用過的非vim實現中vi,在插入模式下無法刪除一行。vim確實允許 - 但據我了解,vim其預設配置不符合 POSIX。

POSIX 兼容的vi實現是否不應該允許在插入模式下刪除行?請盡可能引用標準的相關部分。

不,這不是必需的。由實現決定,因為行為是未指定的。在允許它的實現中,在換行符被擦除之後的目前行的內容也必須被擦除。POSIX 規範vi聲明如下(來源):

vi 中的輸入模式命令

在文本輸入模式下,目前行應包含零個或多個以下類別,加上終止的 <newline>:

$$ … $$ 未指定在文本輸入模式期間嘗試擦除通過 <newline> 或 <carriage-return> 的條目創建的行的開頭是否是錯誤的。如果不是錯誤,則編輯器的行為就像在上一行輸入的最後一個文本輸入字元之後立即輸入了擦除字元一樣,並且目前行上的所有非 <newline> 字元都應視為擦除-列。

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