Windows 10 SSH远程Ubuntu 16.04时,粘贴Here文档Tab转成点的问题
解决从GitHub复制代码到SSH会话后Tab变为点的问题
我之前也碰到过一模一样的情况!这种问题大多是终端客户端的显示/粘贴设置,或者字符编码不匹配导致的,给你几个可行的解决办法:
1. 检查SSH客户端的空白字符显示设置
很多终端工具会有“显示不可见字符”的选项,开启后Tab会被渲染成点(·),先排查这个可能性:
- Putty:打开Putty配置窗口,依次进入
Terminal -> Features,找到「Display control characters」或「Show invisible characters」相关选项,若勾选则取消;另外到Window -> Appearance确认字体选用Consolas、Monaco这类等宽字体,避免Tab显示异常。 - MobaXterm:顶部菜单栏点击「View」,检查「Show invisible characters」是否处于勾选状态,是的话取消即可;也可进入「Settings -> Terminal」,将「Tab width」设置为默认的8,保证Tab的正常显示宽度。
2. 复制GitHub代码时选用Raw纯文本版本
网页端的GitHub代码块可能携带网页格式的隐藏标记,直接复制容易出现字符转换问题:
- 打开目标代码页面,点击代码块右上角的「Raw」按钮,进入纯文本代码页面后再全选复制,这样粘贴到SSH会话的就是原始Tab字符,不会被无端转换。
3. 调整远程Ubuntu的终端配置
远程机器的终端参数也可能影响输入显示:
- 登录Ubuntu后,先检查字符编码:执行命令
echo $LANG,若输出不是类似en_US.UTF-8,可临时设置:export LANG=en_US.UTF-8,也可修改/etc/locale.conf文件永久配置UTF-8编码。 - 调整终端Tab宽度:执行命令
stty tabs 8,确保系统将Tab识别为标准的8个空格宽度。
4. 关闭SSH客户端的粘贴自动转换功能
部分客户端会自动将Tab转换为空格或其他字符:
- Putty:进入
Connection -> Data,确认「Terminal-type string」设置为xterm(默认值),避免终端类型不兼容;再到Window -> Translation,将「Remote character set」选为「UTF-8」。 - MobaXterm:进入「Settings -> Terminal -> Paste」,取消「Convert tabs to spaces」这类自动转换选项,保持粘贴的原始字符格式。
试试上面的方法,应该能解决你的问题!
内容的提问来源于stack exchange,提问作者Arcticooling
相关产品推荐
相关产品推荐

