首页 > 解决方案 > 在 TMUX 会话中修复 IEX 中的箭头键

问题描述

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

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

编辑1:

的输出echo $TERMtmux-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)

标签: bashelixirtmuxxtermelixir-iex

解决方案


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

  • 从一个参数开始:

    iex --erl "-kernel shell_history enabled"

  • 从环境变量开始:

    export ERL_AFLAGS="-kernel shell_history enabled"

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


推荐阅读