在tmux的ollama中,End和Home按钮无法使用,

cbwuti44  于 4个月前  发布在  其他
关注(0)|答案(5)|浏览(102)

问题是什么?
按下End键不会将光标移动到行尾,而是进入'~'字符。
Home键也有同样的问题。
这些是在tmux中的TERM环境变量:

$ env | grep TERM
COLORTERM=truecolor
TERM_PROGRAM_VERSION=3.3a
TERM=tmux-256color
TERM_PROGRAM=tmux

版本:0.3.6
操作系统:Linux
GPU:Nvidia
CPU:Intel
Ollama版本:0.3.6

mu0hgdu0

mu0hgdu01#

Ollama使用类似readline的命令行界面,home键为ctrl-a,end键为ctrl-e。

plicqrtu

plicqrtu2#

当在KDE的konsole、Xfce终端和xterm中运行ollama客户端时,Home和End按钮可以正常工作。然而,在tmux中,它们在ollama中无法正常工作。vim和libedit示例在tmux终端中正确处理了Home和End按钮。只有ollama似乎在tmux中的Home和End按钮有问题。

a7qyws3x

a7qyws3x3#

ollama实现了readline库的一个子集(不确定为什么他们采用了这种方法,而不是直接使用readline库)。tmux会更改发送的各种按键的代码,因此ollama的readline无法识别它们,它继续使用默认的ctrl-a、ctrl-e配置。如果你想要完全的readline兼容性,你可以将ollama Package 在一个实现完整readline功能的程序中。
首先,安装rlwrap。如果你使用的是基于debian的系统:

apt install -y rlwrap


如果你使用的是redhat或其他系统,请使用yum/dnf等工具找到并安装该程序。
现在为ollama创建一个别名并将其保存在~/.bash_aliases中:

alias ollama='rlwrap -a /usr/local/bin/ollama'


为了让rlwrap能够访问到ollama的历史记录,创建一个指向历史记录文件的符号链接:

ln -s .ollama/history ~/.ollama_history


现在当你运行ollama时,键盘输入将由`rlwrap`处理。
webghufk

webghufk4#

感谢使用rlwrap的解决方法。
我也尝试在Rio终端中使用ollama:https://raphamorim.io/rio/
在tmux和Rio终端中,ollama客户端都出现故障,请查看video screenshot以了解Rio终端的情况(tmux的行为相同)。
我认为ollama应该使用libedit或readline,因为这个问题会随着来自不同背景和环境的用户越来越多而不断出现。

xqnpmsa8

xqnpmsa85#

如果用户想要一个完整的文本CLI,那么有很多终端集成可供选择。

相关问题