加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何检查它是否仍处于Vim shell模式

发布时间:2020-12-15 21:45:50 所属栏目:安全 来源:网络整理
导读:在 vim中,键入:sh将切换到 shell,exit可退出 shell并返回vim.是否有任何命令检查它是否处于vim shell模式?这样我就不会意外地vim再次打开同一个文件.我想避免以下情况: vim myfile :sh退出 vim myfile //得到另一个vim实例的警告正在编辑同一个文件 这些
在 vim中,键入:sh将切换到 shell,exit可退出 shell并返回vim.是否有任何命令检查它是否处于vim shell模式?这样我就不会意外地vim再次打开同一个文件.我想避免以下情况:

vim myfile> :sh>退出> vim myfile //得到另一个vim实例的警告正在编辑同一个文件

这些是正常情况:
vim myfile> :sh>退出//继续编辑
vim myfile> :wq> vim myfile //继续编辑

解决方法

除了@ a3nm的答案,你能做的就是

>使用pstree -h:它将输出当前分支highligted的进程树,你需要检查的是高亮显示中是否有vim.
>另一种可能性是ps t:它将使用当前终端显示所有进程,并且当你在里面时应该在列表中显示vim:sh.如果你想知道你运行vim的参数,ps -oargs可能会更有用.

这些方法更可靠,因为您可以覆盖VIMRUNTIME,VIM和MYVIMRC环境变量以进行一些自定义(BTW,它们由vim定义用于vimscripts,而不是:sh).它们也适用于允许您运行子shell的其他进程,但不定义任何环境变量.

我还建议考虑使用< C-z>在正常模式下:或者挂起/:在Ex中停止,因为这些使用shell vim是从而不是创建新的.此行为使您可以访问在运行vim之前键入的命令的历史记录,还可以编写更复杂且耗时的shell配置,而无需每次都等待.

如果您使用< C-z>两种方法仍然有效,但第一种方法不会突出显示vim,因为它与pstree本身处于同一级别(具有相同的父级),可能只是在图形中的pstree之下或之上.这也启用了第三种方法:内置作业shell.

为了从< C-z>恢复.你应该使用fg(zsh和bash中的单个%也可以使用),然后输入更少然后退出(但更多然后< C-d>).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读