Shell 如何使用tcsh在提示符中显示vi模式

Shell 如何使用tcsh在提示符中显示vi模式,shell,prompt,vi,tcsh,Shell,Prompt,Vi,Tcsh,在终端shell中工作时,我使用vi键绑定来保持shell和vim编辑器之间的连续性。由于IT需求,我现在需要从bash和zsh切换到tcsh,我正在考虑在tcsh中重新创建一些配置。我现在遇到的最大的摩擦点是,我无法在提示符中查看我当前使用的vi模式,这可能导致我在工作时出现意外行为。通过zsh和bash,有很多关于如何实现这一点的信息。我没有找到任何关于tcsh的信息,除了。我没能找到唯一能提供答案的答案。在使用tcsh shell时,如何检索我的vi模式(插入/正常模式)?我认为这可能非常

在终端shell中工作时,我使用vi键绑定来保持shell和vim编辑器之间的连续性。由于IT需求,我现在需要从bash和zsh切换到tcsh,我正在考虑在tcsh中重新创建一些配置。我现在遇到的最大的摩擦点是,我无法在提示符中查看我当前使用的vi模式,这可能导致我在工作时出现意外行为。通过zsh和bash,有很多关于如何实现这一点的信息。我没有找到任何关于tcsh的信息,除了。我没能找到唯一能提供答案的答案。在使用tcsh shell时,如何检索我的vi模式(插入/正常模式)?

我认为这可能非常棘手;这些障碍是,你需要1)以某种方式获取当前的vi模式(不确定如何获取?可能会覆盖标准的键绑定,设置一个变量,然后使用它;这本身就是一种黑客行为)和2)以某种方式在
$prompt
中显示,但由于无法在提示符中求值,因此这也很困难(通常的策略是连接到特殊的
precmd
/
postmd
别名,该别名生成重新设置
提示符的脚本,但这对行编辑不起作用,因此也不确定如何执行)。我担心您在这里可能运气不佳:-(tl;dr是说tcsh是一种有很多限制的旧shell;它对于交互使用来说并不是非常糟糕(实际上有一些很好的特性),但如果你想用bash或zsh做更高级的定制工作,那么事情很快就会变得非常困难和丑陋。我不知道你的IT部门有什么样的需求/动机,但我个人会尝试让他们改变它,或者只是通过使用静态编译的
zsh
二进制文件来绕过它。我不知道这些是否是你的选择。如果不是,我认为最简单的可能是接受这一点,如果你的生活从现在开始变得更糟糕一点:-(宇宙并不总是善良的。我认为这可能真的很棘手和有问题;障碍是你需要1)以某种方式获得当前的vi模式(不知道怎么做?可能会覆盖标准的键绑定,设置一个变量,然后使用它;这本身就有点麻烦了)和2)以某种方式在
$prompt
中显示它,但由于无法在提示符中求值任何内容,因此这也很困难(通常的策略是连接到特殊的
precmd
/
postmd
别名,该别名生成重新设置
提示符的脚本,但这对行编辑不起作用,因此也不确定如何执行)。我担心您在这里可能运气不佳:-(tl;dr是说tcsh是一种有很多限制的旧shell;它对于交互使用来说并不是非常糟糕(实际上有一些很好的特性),但如果你想用bash或zsh做更高级的定制工作,那么事情很快就会变得非常困难和丑陋。我不知道你的IT部门有什么样的需求/动机,但我个人会尝试让他们改变它,或者只是通过使用静态编译的
zsh
二进制文件来绕过它。我不知道这些是否是你的选择。如果不是,我想最简单的可能是接受这一点,如果你的生活从现在开始变得更糟糕一点:-(宇宙并不总是善良的。