vi/vim打开文件时的警告信息
摘自鸟哥的Linux私房菜,很多都是直接引用,讲的很仔细的,也算是自己解决的一个小问题
当我们在使用 vim 编辑时, vim 会在与被编辑的档案的目录下,再建立一个名为 .filename.swp 的档案。如果你的系统因为某些原因断线了, 导致你编辑的档案还没有储存,这个时候 .filename.swp 就能够发会救援的功能了。同时,也因为这个,你会遇到再次打开文件并且编辑时不能正常保存,然后每次打开都会报错的现象,如下图:
由于暂存盘存在的关系,因此 vim 会主动的判断你的这个档案可能有些问题,在上面的图示中 vim 提示两点主要的问题与解决方案,分别是这样的:
问题一:可能有其他人或程序同时在编辑这个档案:
由于 Linux 是多人多任务的环境,因此很可能有很多人同时在编辑同一个档案。如果在多人共同编辑的情况下, 万一大家同时储存,那么这个档案的内容将会变的乱七八糟!为了避免这个问题,因此 vim 会出现这个警告窗口! 解决的方法则是:
找到另外那个程序或人员,请他将该 vim 的工作结束,然后你再继续处理。
如果你只是要看该档案的内容并不会有任何修改编辑的行为,那么可以选择开启成为只读(O)档案, 亦即上述画面反白部分输入英文『 o 』即可,其实就是 [ O ]pen Read-Only 的选项啦!
问题二:在前一个 vim 的环境中,可能因为某些不知名原因导致 vim 中断 (crashed):
这就是常见的不正常结束 vim 产生的后果。解决方案依据不同的情况而不同喔!常见的处理方法为:
如果你之前的 vim 处理动作尚未储存,此时你应该要按下『R』,亦即使用 ®ecover 的项目, 此时 vim 会载入 .1.txt.swp 的内容,让你自己来决定要不要储存!这样就能够救回来你之前未储存的工作。 不过那个 .1.txt.swp 并不会在你结束 vim 后自动删除,所以你离开 vim 后还得要自行删除.1.txt.swp 才能避免每次打开这个档案都会出现这样的警告!
如果你确定这个暂存盘是没有用的,那么你可以直接按下『D』删除掉这个暂存盘,亦即 (D)elete it 这个项目即可。 此时 vim 会载入 1.txt ,并且将旧的.1.txt.swp 删除后,建立这次会使用的新的.1.txt.swp 喔!
至于这个发现暂存盘警告讯息的画面中,有出现六个可用按钮,各按钮的说明如下:
[ O ]pen Read-Only:打开此档案成为只读档, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。一般来说,在上课时,如果你是登入到同学的计算机去看他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式;
( E )dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入暂存档的内容。不过很容易出现两个使用者互相改变对方的档案等问题!不好不好!
( R )ecover:就是加载暂存盘的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个暂存档喔!
( D )elete it:你确定那个暂存档是无用的!那么开启档案前会先将这个暂存盘删除! 这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!哈哈!
( Q )uit:按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
( A )bort:忽略这个编辑行为,感觉上与 quit 非常类似! 也会送你回到命令提示字符就是啰!