Gnu

禁用 GNU Indent 備份文件

  • July 23, 2021

我在我的項目中使用 GNU Indent 來格式化 C 程式碼。

預設情況下,創建的備份文件以~.

我不想創建任何備份文件,有沒有辦法禁用它?

瀏覽手冊頁indent官方 GNU 文件,我只看到 2 種控制這種行為的方法。

環境變數:

  • SIMPLE_BACKUP_SUFFIX
  • VERSION_WIDTH

我嘗試了將寬度設置為 0 並將 SIMPLE_BACKUP_WIDTH 設置為空("")的各種技巧。兩者都沒有達到預期的效果。我認為您唯一的做法是創建一個 shell 別名和/或函式來包裝命令indent以執行您想要的操作。

例子

$ function myindent() { indent "$@"; rm "$@"~; }

然後當我執行它時:

$ myindent ev_epoll.c

我得到了想要的效果:

$ ls -l | grep ev_epo
-rw-r--r--.   1 saml saml     7525 Dec 13 18:07 ev_epoll.c

使用 Mercurial 中的原始碼。 backup.c 中的評論說

* Finally, if VERSION_CONTROL is "none" or "never", backups are not
* made.  I suggest you avoid this behaviour.

的允許值VERSION_CONTROL在同一文件中

{
   {none,              "never"},    /*!< Don't make backups. */
   {none,              "none"},     /*!< Ditto */
   {simple,            "simple"},   /*!< Only simple backups */
   {numbered_existing, "existing"}, /*!< Numbered if they already exist */
   {numbered_existing, "nil"},      /*!< Ditto */
   {numbered,          "numbered"}, /*!< Numbered backups */
   {numbered,          "t"},        /*!< Ditto */
   {unknown,           0}           /*!< Initial, undefined value. */
};

文件中包含相同的資訊NEWS,表明它可以追溯到 1.3 版(1990 年代後期),因此它可能在您的系統上可用。

它不在**indent**手冊中:

備份文件的類型由環境變數的值控制VERSION_CONTROL。如果是字元串**‘simple’,則只會進行簡單備份。如果其值為字元串’numbered’,則將進行編號備份。如果它的值為’numbered-existing’**,則如果縮進的文件已經存在編號備份,則將進行編號備份;否則,將進行簡單備份。如果VERSION_CONTROL未設置,則縮進假定為“編號存在”的行為。

對於它的價值,我測試了GNU indent 2.2.11(它有效)。

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