linux – 不可读的zsh shell和backspace不能在Docker上的zsh shell上运行

linux – 不可读的zsh shell和backspace不能在Docker上的zsh shell上运行,第1张

概述我使用了FROM rails:onbuild图像 >您可以在此处查看错误/不可读的编码 >当我在测试后键入退格键时,它不起作用,它在shell上添加了空格 这是环境变量, 任何关于bug的想法? RUBY_MAJOR=2.2RUBY_VERSION=2.2.2RUBY_DOWNLOAD_SHA256=5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf8 我使用了FROM rails:onbuild图像

>您可以在此处查看错误/不可读的编码

>当我在测试后键入退格键时,它不起作用,它在shell上添加了空格

这是环境变量,

任何关于BUG的想法?

RUBY_MAJOR=2.2RUBY_VERSION=2.2.2RUBY_DOWNLOAD_SHA256=5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44GEM_HOME=/usr/local/bundleBUNDLE_APP_CONfig=/usr/local/bundleLANG=en_US.UTF-8LANGUAGE=en_US:enLC_ALL=en_US.UTF-8HOME=/rootLOGname=rootSHLVL=1PWD=/associate-appolDPWD=/associate-appZSH=/root/.oh-my-zshPAGER=lessLESS=-RLScolorS=Gxfxcxdxbxegedabagacad_=/usr/bin/env

DOCEKRfile(这是我的docker文件)

FROM rails:onbuildRUN apt-get update && apt-get -y upgradeRUN apt-get -y -qq --force-yes install \        build-essential \        tree \        locales \        ruby-dev \        vim \        vim-scripts \        git \        git-flow\        curl \        zsh \        sudo# Install ZshRUN git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh \      && cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc \      && chsh -s /bin/zshRUN sed -i -E "s/^plugins=\((.*)\)$/plugins=( git git-flow ruby tmux)/" ~/.zshrc# Make ssh dirRUN mkdir /root/.ssh/# copy over private key,and set permissionsADD ID_rsa /root/.ssh/ID_rsa# Create kNown_hostsRUN touch /root/.ssh/kNown_hosts# Add bitbuckets keyRUN ssh-keyscan bitbucket.org >> /root/.ssh/kNown_hostsRUN echo "alias ls='ls --color=auto'" >> /etc/zsh/zshrc && \    echo "alias ll='ls -halF'" >> /etc/zsh/zshrc && \    echo "alias ls='ls --color=auto'" >> /etc/profile && \    echo "alias ll='ls -halF'" >> /etc/zsh/zshrc# copy GEMfileworkdir /tmpcopY Gemfile GemfilecopY Gemfile.lock Gemfile.lockRUN bundle installRUN mkdir /associate-appworkdir /associate-appADD . /associate-appRUN locale-gen en_US.UTF-8  ENV LANG en_US.UTF-8  ENV LANGUAGE en_US:en  ENV LC_ALL en_US.UTF-8  CMD echo 'LC_ALL=en_US.UTF-8' >> ~/.zshrc && \    echo 'LANG=C.UTF-8' >> ~/.zshrc && \    echo 'LC_CTYPE=en_US.UTF-8' >> ~/.zshrc && \CMD ["zsh"]

stty -a

speed 38400 baud; rows 40; columns 164; line = 0;intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;lnext = ^V; flush = ^O; min = 1; time = 0;-parenb -parodd -CMSpar cs8 -hupcl -cstopb cread -clocal -crtscts-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0isig icanon IExten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
解决方法 您的本地设置不一致

LANG=en_US.UTF-8LANGUAGE=en_US:enLC_ALL=en_US.UTF-8

也就是说,LANGUAGE不使用UTF-8,而其他设置正在执行此 *** 作.

这可能是问题的一部分.

此外,一些终端实现了stty的iutf8设置.这告诉终端驱动程序如何调整多字节(UTF-8)字符的光标位置.您可以检查stty -a是否显示-iutf8(功能已禁用),如果不是,则启用它,例如,

stty -astty iutf8

当该功能可用时,终端驱动程序知道它应该考虑文本是否使用UTF-8(并且每列可能有多个字节).如果没有,它会将每个字节计为一列,当删除“最后”字符时,可能会执行以下 *** 作:

backspace space space

产生如上所示的效果.

最后,了解实际使用的终端会很高兴.例如,rxvt不支持UTF-8;可以使用/不使用UTF-8配置xterm. TERM的值在很大程度上是无关紧要的,因为你的shell可能会忽略它而支持内置行为.

总结

以上是内存溢出为你收集整理的linux – 不可读的zsh shell和backspace不能在Docker上的zsh shell上运行全部内容,希望文章能够帮你解决linux – 不可读的zsh shell和backspace不能在Docker上的zsh shell上运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1030784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存