【问题标题】:Fixing arrow keys in IEX in TMUX session在 TMUX 会话中修复 IEX 中的箭头键
【发布时间】:2020-02-08 20:41:46
【问题描述】:

我使用 TMUX 和 vim 处理一切,最近开始使用 Elixir。每当我运行 elixir 进程时,包括iex -S mix,我都不能使用错误键,因为它会打印出^[[A 用于向上箭头,^[[B 用于向下箭头等。

如何修复 TMUX 或 iex 以便它们可以正确地与箭头键通信?

编辑 1:

echo $TERM 的输出是tmux-256color。我的终端是按照本教程设置的:https://medium.com/@dubistkomisch/how-to-actually-get-italics-and-true-colour-to-work-in-iterm-tmux-vim-9ebe55ebc2be

我有三台机器设置了相同的终端和相同的配置文件(由 GitHub 存储库共享)。在两台机器(一台 iMac,一台 MacBook Prop)上,向上箭头起作用,而在一台机器(MacBook Air)上,向上箭头不起作用。我怎样才能找到在一台机器上不工作的地方?

编辑 2:

Elixir 和 erlang 版本是一样的:

Erlang/OTP 22 [erts-10.5.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Elixir 1.9.1 (compiled with Erlang/OTP 22)

【问题讨论】:

  • TMUX内部echo $TERM的输出是什么?
  • @JonasDellinger 用更多信息编辑了原始问题
  • mh 很遗憾,这似乎不是罪魁祸首:/
  • 您的机器上使用了哪些登录 shell? iTerm -> Preferences -> Profiles Tab -> General 部分中的设置是否不同?
  • 限制可能在iex。通常的解决方法是rlwrap

标签: bash elixir tmux xterm elixir-iex


【解决方案1】:

默认情况下,Elixir 的交互式 shell iex 不知道箭头键(用于命令历史)。根据其documentation,您可以在启动时启用它:

  • 从一个参数开始:

    iex --erl "-kernel shell_history enabled"

  • 从环境变量开始:

    export ERL_AFLAGS="-kernel shell_history enabled"

作为替代方案,rlwrap 可用于此(和其他程序)。

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多