ree*_*nes 8 unix linux vim bash terminal
vim在ubuntu中使用的时候,我不小心按了ctrl-z哪个暂停了我的会话vim.我正在编辑一个test未保存的文件(我称之为).
当我再次打开文件时vim,我得到了交换文件错误:
E325: ATTENTION
Found a swap file by the name ".test.swp"
Swap file ".test.swp" already exists!
Run Code Online (Sandbox Code Playgroud)
.swp文件(如果你确定其他git会话已经消失).我该怎么办?如果我执行rm test.swp它没有看到文件:
rm: cannot remove `test.swp': No such file or directory
Run Code Online (Sandbox Code Playgroud)
编辑:我忘记了句号test.swp
因此删除swp文件的正确方法是rm .test.swp.
vim.小智 11
这与Ubuntu无关,因为几乎每个Unix操作系统的基本机制都会发生.通过按下^ Z你暂停(未结束)当前正在运行的vim会话.vim会话仍在那里并等待信号再次将其置于前台.
要重新激活会话:如果直接从命令行启动vim - 使用命令"fg"(用于"ForeGroung"),vim将再次出现.这适用于所有类似ksh/bourne的shell.对于t/csh,我不知道.这仅在与启动vim的同一终端会话的控制台上给出命令"fg"时有效(这是与vim会话相关的"控制终端").
如果vim从窗口管理器的菜单中启动(主要是名称为gvim),那么你在这里有点运气,因为(g)vim与其控制终端分离.
您的恢复选项:如果条件有效,请使用"fg".这是最干净的方式.
如果(g)vim会话与控制终端分离,可以通过执行"ps -ef | grep vim"来检查.如果TTY的列(参见输出标题)显示"?" 没有控制终端了,我建议将进程发送给SIGHUB(请参阅命令"kill"/"killall"的manpage),然后再发送一个SIGKILL(如果它仍在那里).杀死vim(或任何其他任务)可能会导致数据不一致,因为在杀死vim之前没有"保存"命令.
在此之后,开始以相同的文件的新VIM,做一个"恢复"第一(通过vim,并看到根据SWP-文件提供的),保存文件,结束vim和与该文件再次启动,并做了"删除交换文件".这是杀死vim后最可能的方式.
为了避免在不想要的情况下意外地将vim放入背景中,将^ Z映射到另一个更"复杂"的键序列,这很难意外按下.您可以通过将以下行添加到.vimrc来停用^ Z命令:
map <C-z> ;
此外:您的RM-命令错过的点在.test.swp造成RM面前没有找到该文件...或删除其他文件,该文件命名,而不是".test.swp" test.swp.通过vim删除swp文件,您一定要删除正确的文件.Swp文件总是以UNIX(类似系统)上的点(隐藏文件)开头.