linux 上文件用vim 编辑保存后,自动生成了一个文件(文件名加了个 “~”号)怎么去除掉?

linux 上文件用vim 编辑保存后,自动生成了一个文件(文件名加了个 “~”号)怎么去除掉?
这个文件是干涉么么用的?如图
图片描述

阅读 16.7k
3 个回答

vim的文件旧版本备份功能, 但凡你重新编辑一个已经存在的文件时, 在你保存的时候会将老版本加一个~另存为一个备份文件, 当然如果这个备份文件已经存在就会覆盖原来的. 想要取消这个功能, 用:set nobackup 命令就可以.

譬如你的文件file.txt原本的内容是"content1", 你打开vim, 把它编辑成"content2", 然后:w保存. 这时file.txt里面就是"content2", file.txt~里面就是"content1".

楼下有答案说到backup, writebackup, swapfile的区别, 我解释一下:

  • backup 是普通的加~备份.
  • writebackup 是防止灾难时的加~备份, 特点是文件正常写入之后就会自动删除. 也就是说如果你的文件有正常写入(不正常情况通常发生在磁盘快要满的时候), 你是很难见到这个文件出现的.
  • swapfile 也是防止灾难, 不过是缓冲区的备份, 也就是你正在编辑的内容. 如果你在编辑的时候电脑断电或者Vim发生异常退出, 而你没有保存, 你可以从.file.txt.swp里恢复这个文件.

默认的Linux文件系统会认为.**~是隐藏文件. 所以大多数时候并不影响美观 :-) .

vim默认会自动备份原始文件,~结尾的文件就是备份的原始文件,如果想要关闭这个功能,可以在配置文件中修改:

~/.vimrc中添加:

vimset nobackup
set nowritebackup
set noswapfile    ! (additionally disable swap files)

最后一行可以不要

vim备份文件设置

.vimrc

把这个判断里的if部分保留,else部分注释掉。
(Vim的注释符是")
即修改后应该是这样的:

if has("vms")
set nobackup " do not keep a backup file, use versions instead
" else
" set backup " keep a backup file
4. 保存 
set nobackup                " 覆盖文件时不备份
set backupcopy=yes          " 设置备份时的行为为覆盖
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏