如何在Windows Terminal的sftp CLI中将Tab键行为从“插入制表符”改为“自动补全”
如何在Windows Terminal的sftp CLI中将Tab键行为从“插入制表符”改为“自动补全”
嗨,我完全理解你刚从Ubuntu转Windows 11的困扰——习惯了Ubuntu终端里sftp的Tab自动补全,突然变成插入制表符确实很影响操作流畅度。下面给你两种实用的解决办法,你可以根据自己的偏好选择:
方法一:用WSL的sftp(体验和Ubuntu完全一致,最省心)
Windows Terminal完美支持WSL(Windows子系统Linux),而WSL里的sftp和Ubuntu原生的功能完全相同,自带Tab自动补全:
- 如果还没装WSL,打开PowerShell输入
wsl --install,按提示选择Ubuntu发行版完成安装即可。 - 在Windows Terminal里打开Ubuntu(WSL)终端。
- 用
sftp user@hostname连接远程服务器,此时按Tab键就会自动补全文件/文件夹名称,和你在Ubuntu里的操作一模一样。
方法二:给Windows原生sftp补全功能(用rlwrap工具)
如果你更倾向于使用Windows原生的OpenSSH sftp,可以通过rlwrap工具为它添加Tab补全支持:
- 先安装
rlwrap:可以通过Chocolatey包管理器安装(若未装Chocolatey,先完成它的安装),打开管理员权限的PowerShell输入:choco install rlwrap - 安装完成后,不要直接输入
sftp启动,而是用rlwrap sftp user@hostname来开启sftp会话。 - 现在在这个sftp窗口里按Tab键,就会触发自动补全,而不是插入制表符了。
补充说明
Windows原生的OpenSSH sftp默认没有集成readline库(这是Ubuntu实现Tab补全的核心组件),所以才会默认将Tab键识别为制表符插入。上面两种方法本质上都是绕开或补充这个功能缺失,帮你找回熟悉的操作体验。
备注:内容来源于stack exchange,提问作者SimZhou
相关产品推荐
相关产品推荐

