vim
在ubuntu中使用时,我不小心按下了ctrl-z
,从而暂停了我的会话vim
。我正在编辑一个test
未保存的文件(我将其称为)。
当我再次在中打开文件时vim
,出现交换文件错误:
E325: ATTENTION
Found a swap file by the name ".test.swp"
Swap file ".test.swp" already exists!
.swp
文件(如果您确定其他git会话已消失)。我该怎么办?如果执行rm test.swp
该操作,则看不到该文件:
rm: cannot remove `test.swp': No such file or directory
编辑:我忘记了句号,test.swp
因此删除swp文件的正确方法是rm .test.swp
。
vim
。这与Ubuntu无关,因为发生的事情几乎是每个Unix OS的基本机制。通过按^ Z,您暂停(未结束)当前正在运行的vim会话。vim会话仍然存在,并等待信号再次将其置于前台。
要重新激活会话,请执行以下操作:如果直接从命令行启动了vim,请使用命令“ fg”(用于“ ForeGroung”),然后vim将再次出现。这适用于所有类似ksh / bourne的shell。对于t / csh,我不知道。仅当在与启动vim相同的终端会话的控制台(这是与vim会话相关的“控制终端”)的控制台上给出命令“ fg”时,此方法才有效。
如果vim是从窗口管理器的菜单中启动的(通常以gvim命名),那么您会有点不走运,因为(g)vim脱离了它的控制终端。
您要恢复的选项:如果上述条件有效,请使用“ fg”。这是最干净的方法。
如果(g)vim会话与控制终端分离,则可以通过执行“ ps -ef | grep vim”来检查。如果TTY的列(请参见输出的标题)显示“?” 没有控制终端了,我建议向该进程发送一个SIGHUB(请参见命令“ kill” /“ killall”的联机帮助页),然后将其发送给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文件,可以确保删除正确的文件。在UNIX之类的系统上,swp文件始终以点(隐藏文件)开头。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句