当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么Vim用〜扩展名保存文件?》经验,为你挑选了7个好方法。

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

我假设.ext.swp文件是会话备份,以防Vim崩溃..ext~但是文件的目的是什么?这是永久备份文件吗?这很烦人,因为我想将我正在处理的所有文件复制到我的主机上,没有这些重复项.如何将其关闭,或者如果它有充分的理由,请隐藏文件



1> Tomalak..:

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

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

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

set nobackup
set nowritebackup

在哪里nowritebackup更改Vim的默认"保存"行为,即:

    将缓冲区写入新文件

    删除原始文件

    重命名新文件

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


而不是关闭,备份到Windows上的.vimrc或_vimrc目录`set backupdir =〜/ .vim/backup`
+1用于"防止"在Windows桌面上"跳过"文件.用Google搜索并找到了这个答案
有一个表描述了这些开关组合之间的不同行为:`help backup-table`.事实证明既不设置'nobackup`也不设置`nowritebackup`,而是设置`backupcopy = yes`也解决了"跳跃"问题.然而,这可能会伤害穿孔,所以对每个人来说都是如此

2> user183135..:

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

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

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

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


+1实际上我的设置为〜/ .vim/tmp,但无论如何,这已经不止一次地保存了我的屁股.
在路径的末尾使用两个斜杠.例如,设置backupdir =〜/ .vim/.backup // - 目录末尾的"//"表示将从文件的完整路径构建文件名,并将所有路径分隔符替换为百分比"% " 标志.这将确保保留目录中的文件名唯一性.
为什么你需要 ,.在每一行的结尾?
@shin Vim将使用第一个可用的dir,所以在这种情况下,如果〜/ vimtmp不存在,它将使用当前的工作目录
@SalmanPK在理想的世界中,您不应直接在可公开访问的服务器上编辑配置文件
要删除.un~文件,您可以添加:"set undodir =〜/ vimtmp,".
如果我编辑`/ foo / bar / a.txt`和`/ foo / baz / a.txt`会怎样?由于基本名称相同,vim会将两个不同的备份文件内容写入相同的备份文件中吗,例如〜/ vimtmp / a.txt〜?
@Hacknightly,你的答案应该包括在上面.
@Hacknightly当前有一个已知的[issue](/sf/ask/17360801/)阻止此解决方案起作用。

3> rogeriopvl..:

要关闭这些文件,只需将这些行添加到.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> f3lix..:
:set nobackup 

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

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



5> Zsolt Botyka..:

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

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

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


你可能想要包括如何设置备份目录,即在你的〜/ .vimrc中放置`set backupdir =〜/ .vimbackups`

6> 小智..:

把这一行放入你的vimrc:

C:\Program Files (x86)\vim\_vimrc

在Windows中,它将成为set nobk nowb noswf noudf所有用户的系统范围vim配置文件.

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


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

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

这是Vim最讨厌的部分.

下一步是设置nowritebackup禁用蜂鸣声:P



7> dwc..:

你是正确的,.swp文件被vim用于锁定和恢复文件.

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

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有