在 `script` 命令給出一個文件後,在 vim 中我使用 `:set isprint=1-225` 刪除不可打印的字符,但無法以這種格式保存文件

在 `script` 命令給出一個文件後,在 vim 中我使用 `:set isprint=1-225` 刪除不可打印的字符,但無法以這種格式保存文件

當我在 vim 中執行此命令時,:set isprint=1-225所有不可列印的字元都會被壓縮/刪除。現在我如何儲存此文件或轉換此文件的格式,以便預設此文件以此格式開啟。或者如果我將其上傳到 github,則不可列印的字元會被壓縮?

我的問題在 Stack Overflow 上被否決,因為它與程式設計或開發無關,所以我想我應該嘗試在這裡添加更多細節。我無法在標題中包含所有內容,但基本上我可以用這一行總結我的添加內容:我正在使用命令script來記錄我的會話,而script命令給出了一個包含大量“不可打印”字符的文件,我可以壓縮vim 中的不可列印字元:set isprint=1-225如何以這種格式儲存檔案?

我知道並嘗試過的其他選項是編寫一個 perl 函數來刪除控製字元(最好的替代方案,儘管我必須檢查是否所有不可列印的字元都已刪除),以及dos2unix來自col -bp

看起來很有希望,但在我嘗試之前,我看到在 Ubuntu 的下載下它顯示已過時 – 我是否仍然應該嘗試使用該.tar.bz2文件安裝它?

聚苯乙烯在這篇 SO 貼文中,凱爾·巴伯 (Kyle Barbour) 的回答是讓我思考是否有一種方法可以使用tr實用程式來執行set: isprint=1-225vim 命令列中的操作。

答案1

設定該'isprint'選項不會修改文件,它只會影響 Vim 顯示文件的方式。但是,您可以在設定該選項後執行替代命令:

:%s/[^[:print:]]//g

然後寫入檔案。

答案2

[已解決] 由於我使用 tmux,出於我的目的,我決定使用 tmux 命令capture-pane -S <# off lines>

因此,當我使用命令將會話中的 I/O 捕獲script到 xyz.txt 檔案中後,我可以從終端提示符號發出cat xyz.txt命令來查看沒有不可列印字元的檔案。在 tmux 中,使用複製模式檢查 xyz.txt 檔案中有多少行。最後從 tmux 命令緩衝區發出capther-pane -S <# of lines>命令,然後將其儲存到檔案 zyx.txt 中:save-buffer zyx.txt

謝謝大家。

相關內容