发现了这个问题,这是我看到的: 尝试编辑 .vimrc 文件时出现交换文件错误消息?
但就我而言,我可以删除交换文件,尝试编辑文件并按 Ctrl-Z,然后得到以下结果:
[6]+ Stopped vi /etc/xinetd.d/tftp
[root@localhost ~]# vi /etc/xinetd.d/tftp
[7]+ Stopped vi /etc/xinetd.d/tftp
[root@localhost ~]#
因此,出于某种原因,某些东西不允许我保存此配置文件。我是 Linux 新手,使用 vi 来处理所有配置文件(包括这个),但我第一次看到这个。就是无法保存 - 一直给出 [x]+ 已停止的错误。
答案1
这是完全正常的行为(即不是在类似的 shell 中,Ctrl-Z 暂停程序并将控制权返回给父 shell。与此同时,bash
程序的执行(就您而言)将停止。您可以键入以恢复执行。vi
fg
您收到交换文件错误的原因是因为您现在有多个vi
同时编辑同一个文件的实例;交换文件的全部目的就是让您注意这种情况,因为这几乎不是您希望发生的事情。
由于您似乎vi
打开了一大堆实例(其中 7 个——这就是 [7]+ 所表示的),因此最好只是逐个正常关闭它们:键入fg
以调出最后一个实例,然后按 Escape 并键入:q!
以正常关闭它。重复操作直到fg
显示“没有这样的工作”。然后删除可能仍然存在的任何交换文件(rm /etc/xinetd.d/.tftp.sw*
),然后再次打开文件。在 中vi
,写入和退出文件的命令是 Escape + :wq
。撤消更改的命令(我的直觉告诉我这可能是您按 Ctrl-Z 的原因)是 Escape + u
。
vi
是所谓的模式编辑器: 在正常模式(通过按 Esc 键访问),单个键被映射到命令。在插入模式(在正常模式下按i
或访问a
),您可以插入文本。有关更多信息,请参阅例如本快速指南。