Vim崩溃后未保存的文件通常可通过交换文件恢复:先用ls -a | grep "\.swp\|\.swo\|\.swn"定位.filename.swp,再执行vim -r filename或vim -r .filename.swp恢复,恢复后需:w filename保存并:q!退出,配合set directory=~/.vim/swap//等配置可提升安全性。

vim 崩溃后未保存的文件,通常能通过交换文件(swap file)恢复。关键在于找到并正确使用 .swp 或 .swo 等临时交换文件。
确认交换文件是否存在
vim 在编辑时会自动生成隐藏的交换文件,一般位于原文件同目录下,命名格式为 .filename.swp(例如编辑 notes.txt,交换文件可能是 .notes.txt.swp)。如果原文件目录不可写,vim 会 fallback 到系统临时目录(如 /tmp/),可用以下命令查找:
find ~/ -name ".*.swp" -type f 2>/dev/null | grep -i notes-
ls -a | grep "\.swp\|\.swo\|\.swn"(在疑似目录中执行)
用 vim 自动检测并恢复
直接用 vim 打开原文件名(即使文件还存在),vim 启动时若发现交换文件,会弹出提示,例如:
Found a swap file by the name ".notes.txt.swp"
此时可按:
– Enter:打开文件并进入恢复模式(显示 [RECOVER])
– R:强制恢复(推荐)
– D:查看交换文件与当前文件差异
– Q:退出不恢复
手动恢复交换文件内容
若自动提示未出现,或想跳过交互,可手动加载交换文件:
-
vim -r notes.txt:列出所有可恢复的 session(含该文件的 swap) -
vim -r .notes.txt.swp:直接从指定 swap 文件恢复 - 恢复后务必先
:w filename.txt保存为新文件,再:q!退出,避免覆盖原文件或再次写入损坏的 swap
预防下次崩溃丢失
日常可做几项简单配置提升安全性:
- 在
~/.vimrc中添加:set swapfile<br>set directory=~/.vim/swap//<br>set backup<br>set backupdir=~/.vim/backup//
(将所有 swap 和 backup 集中到统一可读写目录) - 启用定时写入:
set updatetime=1000(每秒自动更新交换文件) - 配合
:wall或:wa快速保存所有已修改缓冲区


















