【已解决】vim编辑状态下手残按了ctrl + z,怎么办?

编程入门 行业动态 更新时间:2024-10-04 15:29:13

【已解决】vim编辑状态下手残<a href=https://www.elefans.com/category/jswz/34/1450891.html style=按了ctrl + z,怎么办?"/>

【已解决】vim编辑状态下手残按了ctrl + z,怎么办?

文章目录

  • 一、问题过程描述
  • 二、解决
  • 三、拓展学习
    • 作业与进程的区别与联系:
    • nohup 和 & 的区别和联系


一、问题过程描述

不小心手残,按了ctrl + z,显示:

[1]+  Stopped                 vi db.json

输入vi db.json,显示了如下提示:

E325: ATTENTION
Found a swap file by the name ".db.json.swp"owned by: AImooc-Oliver   dated: Sun Jan 17 17:54:21 2021file name: /e/Projects/j-server/db.jsonmodified: YESuser name: AImooc-Oliver   host name: DESKTOP-QU2CUOVprocess ID: 163 (STILL RUNNING)
While opening file "db.json"dated: Sun Dec 12 17:51:26 2103(1) Another program may be editing the same file.  If this is the case,be careful not to end up with two different instances of the samefile when making changes.  Quit, or continue with caution.
(2) An edit session for this file crashed.If this is the case, use ":recover" or "vim -r db.json"to recover the changes (see ":help recovery").If you did this already, delete the swap file ".db.json.swp"to avoid this message.Swap file ".db.json.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

Using swap file ".db.json.swp"
Original file "/e/Projects/j-server/db.json"
Recovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
You may want to delete the .swp file now.Press ENTER or type command to continue

原来ctrl + z是强制将进程挂起,后台运行,会生成一个后缀为.swp的隐藏文件,接下来每次vi db.json都会显示上面那个界面。。。

二、解决

两种解决方案:

  • ctrl+z 退出后,在显示[1]+ Stopped vi db.json时,终端直接输入fg 1(中括号中显示的数字,即作业号,若只有一个,作业号可忽略)这样就会重回vim编辑界面了,然后正常退出即可。
  • ls -a 一下,会看到隐藏的.swp文件 删除了此文件即可,再次使用vim打开文件就不会出现上述界面了。

三、拓展学习

Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行。比如一个需要长时间运行的命令,我们就希望把它放入后台,这样就不会阻塞当前的操作;而一些服务型的命令进程我们则希望能把它们长期运行于后台。

进程前后台操作用到以下命令或按键:

  • Ctrl+C:终止并退出当前命令的执行,回到SHELL
  • Ctrl+Z:暂停当前命令的执行,将该进程放入后台,回到SHELL
  • jobs:查看当前在后台执行的任务,可查看任务编号(查看进程号pid需搭配选项 -l):
[2]+   210 Stopped                 vi db.json
  • &:运行命令时,在命令末尾加上&可让命令在后台执行
  • fg n:将命令进程号码为N的命令进程放到前台执行
  • bg n:将命令进程号码为N的命令进程放到后台执行(不论它之前的状态时运行中还是暂停)
  • [nohup + 命令]:():不挂断地运行命令,该命令的输出信息将不会显示到终端。该命令可以在你退出帐户/关闭终端之后继续运行相应的作业。

注:

  • 这几个命令都是与系统任务有关
  • 注意区分进程号作业号
  • 使用nohup时,在缺省情况下该进程的所有输出都被重定向到当前目录的nohup.out文件中,若当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

作业与进程的区别与联系:

  • 联系:
    • 一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
    • 用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。
  • 区别:
    • 进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。
    • [ ]中的数字是作业号(或称任务编号),在用kill杀死作业的时候用kill %[ num]
    • pid 是进程号,在用kill杀死进程的时候可以直接用kill -pid。

nohup 和 & 的区别和联系

用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如断开SSH连接都不会影响运行;

&是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出

经常连用:

nohup COMMAND &

后台运行的程序即守护进程


拓展阅读:

  • 【linux】bg和fg命令的学习

更多推荐

【已解决】vim编辑状态下手残按了ctrl + z,怎么办?

本文发布于:2024-02-28 08:13:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769037.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:按了   状态   编辑   vim   ctrl

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!