首页 文章

为什么Vim用〜扩展名保存文件?

提问于
浏览
161

我发现在Windows Vim上使用Vim时保存文件,在关闭Vim窗口和 .ext~ 文件时删除了一个 .ext.swp 文件 .

我假设 .ext.swp 文件是一个会话备份,以防Vim崩溃 . 但是 .ext~ 文件的目的是什么?这是永久备份文件吗?它_111545_喜欢将我正在处理的所有文件复制到我的主机上,没有这些重复项 . How can I turn this off or ,如果它有充分的理由, hide the files

9 回答

  • 11

    你是正确的,vim使用 .swp 文件进行锁定和恢复文件 .

    如果您不想要这些文件,请尝试将 set nobackup 放在您的vimrc中 . 如果您想要整个独家新闻,或者想要拥有.bak文件,请参阅the Vim docs了解各种备份相关选项...

  • 201

    把这一行放入你的 vimrc

    set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile
    

    在Windows中,它将是用于所有用户的系统范围vim配置的 C:\Program Files (x86)\vim\_vimrc 文件 .

    设置最后一个 noundofile 在Windows中很重要,以防止在编辑后创建 *~ tilda文件 .


    我希望Vim默认包含该行 . 没有人喜欢丑陋的目录 .

    让用户首先选择是否以及如何启用高级备份/撤消文件功能 .

    这是Vim最讨厌的部分 .

    下一步是设置 set noeb vb t_vb= 以禁用蜂鸣声:P

  • 206

    对我有用的唯一选择是将此行放在我的〜/ .vimrc文件中

    设置noundofile

    引用备份文件的其他选项不会阻止以〜(代字号)结尾的临时文件的创建

  • 0

    我认为更好的解决方案是将这些行放在vimrc文件中

    set backupdir=~/vimtmp,.
    set directory=~/vimtmp,.
    

    您必须在主目录中创建一个名为vimtmp的目录才能使用此目录 .

    这样你就可以获得两个世界的好处,你不必看到这些文件,但是如果有什么东西可以得到好处,你可以从vimtmp获取你的备份文件 . 不要忘记不时清理目录 .

  • 23

    要关闭这些文件,只需将这些行添加到.vimrc(基于unix的OS上的vim配置文件):

    set nobackup       #no backup files
    set nowritebackup  #only in case you don't want a backup file while editing
    set noswapfile     #no swap files
    
  • 4

    您还可以设置不同的备份扩展以及保存这些备份的位置(我更喜欢Linux上的 ~/.vimbackups ) . 我以前使用"versioned"备份,通过:

    au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'
    

    这将设置动态备份扩展( ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup ) .

  • 5

    *.ext~ 文件是一个备份文件,包含编辑之前的文件 .

    *.ext.swp 文件是交换文件,用作锁定文件,包含撤消/重做历史记录以及Vim需要的任何其他内部信息 . 如果发生崩溃,您可以重新打开文件,Vim将从交换文件中恢复其先前的状态(我觉得这很有用,所以我不会将其关闭) .

    要关闭自动创建备份文件,请使用(在您的vimrc中):

    set nobackup
    set nowritebackup
    

    nowritebackup 更改Vim的默认"save"行为,即:

    • 将缓冲区写入新文件

    • 删除原始文件

    • 重命名新文件

    并使Vim将缓冲区写入原始文件(如果发生I / O错误,则会导致破坏它的风险) . 但是你在Windows桌面上使用它来阻止"jumping files",这是我使用 nowritebackup 的主要原因 .

  • 6

    我不得不将 set noundofile 添加到~_gvimrc

    可以使用 cd ~ 命令更改目录来标识"~"目录

  • 12
    :set nobackup
    

    将关闭备份 . 如果您仍然需要这些备份文件但在中央文件夹中,也可以设置backupdir . 这样你的工作目录就不会出现〜文件 .

    您可以在 :he backup 下找到有关备份的更多信息 .

相关问题