在使用VIM的过程中,会产生大量以波浪线(~)结尾的VIM临时文件,请问有没有一条删除所有VIM临时文件的命令?
rm *.*~
好像可以,不知道会产生不良后果吗?总感觉不是很安全
认证高级PHP讲师
set nobackup set undodir=~/.undodir
都用git或icloud dropbox之類的雲端備份了,實在沒看到什麼vim備份檔的必要,那個檔案還會影響grep,太不方便了。
我有一個專門的腳本來處理 Vim 的備份檔。依賴 Python 3 和 mlocate。會刪除兩種情況下的備份檔案:原始檔案已經很久沒修改過了;原始檔案已經不存在了。
不建議停用備份功能,雖然現在有持久性撒消,但是資料多個備份總是會更安全。
還是把程式碼在這裡貼一份:
#!/usr/bin/env python3 # fileencoding=utf-8 '''从列表中读取备份文件(*~)列表,并检测原文件是否存在;若不存在则删之''' import sys, os import subprocess import datetime if len(sys.argv) == 1: db = None elif len(sys.argv) == 2: db = sys.argv[1] else: sys.exit('argument error') if db: f = subprocess.getoutput("locate -d '%s' -e -b '*~' 2> /dev/null" % db).split('\n') else: f = subprocess.getoutput("locate -e -b '*~' 2> /dev/null").split('\n') def filter(i): if not os.path.isfile(i[:-1]): return True try: atime = datetime.datetime.fromtimestamp(os.stat(i).st_atime) except FileNotFoundError: return False now = datetime.datetime.today() interval = datetime.timedelta(days=30) if now - atime > interval: return True return False for i in f: if i.endswith('~') and os.access(os.path.split(i)[0], os.W_OK): if filter(i): try: print("删除", i) try: os.unlink(i) except FileNotFoundError: print(i, '在被删除前消失了:-(') # print(i) except: print(i+': error'+repr(sys.exc_info()), file=sys.stderr)
$vim ~/.vimrc
加入
set nobackup
試試好用不
這樣刪你躲不開:
-
.
正確的指令是rm -f -- *~。
rm -f -- *~
以上只解答本問題的表象(Y題)。對於對付vim的臨時文件的本質目標(X問題),也請以 @依雲 為代表的本站更多vim高手做解答
都用git或icloud dropbox之類的雲端備份了,實在沒看到什麼vim備份檔的必要,那個檔案還會影響grep,太不方便了。
我有一個專門的腳本來處理 Vim 的備份檔。依賴 Python 3 和 mlocate。會刪除兩種情況下的備份檔案:原始檔案已經很久沒修改過了;原始檔案已經不存在了。
不建議停用備份功能,雖然現在有持久性撒消,但是資料多個備份總是會更安全。
還是把程式碼在這裡貼一份:
加入
試試好用不
這樣刪你躲不開:
-
開始(會被誤認為參數)(這是一個經典的坑).
正確的指令是
rm -f -- *~
。以上只解答本問題的表象(Y題)。對於對付vim的臨時文件的本質目標(X問題),也請以 @依雲 為代表的本站更多vim高手做解答