1 个不稳定版本
新 0.2.0 | 2024年8月24日 |
---|
在 文件系统 中排名第 190
28KB
498 行
CDW - 在 WSL 中更改 Windows 路径的目录 🚀
CDW (Windows 路径的 cd (更改目录)) 是一个功能强大且用户友好的命令行工具,无缝连接 Windows 和 WSL (Windows 子系统 for Linux) 文件系统。告别手动将 Windows 路径转换为 WSL 路径的麻烦,只需复制您的 Windows 路径即可!🎉
🌟 特点
- 🔄 无需费力即可将 Windows 路径转换为 WSL 路径
- 📂 使用 WSL 中的 Windows 风格路径更改目录
- 🐚 支持多个 shell (Bash, Zsh, Fish, PowerShell, Nushell, Xonsh 和 Sh)
- 🚀 简单的安装和设置
- 💡 智能壳检测
- 🔍 详细输出模式
- 🛠️ 不更改目录即可转换路径
- 🎨 可定制的 shell 函数
🚀 快速入门
从 Cargo 安装
-
使用 Cargo 安装 CDW
cargo install cdw
-
为您的 shell 初始化 CDW
cdw --init
-
重新启动您的 shell 或根据输出源您的 shell 配置文件
-
开始使用 CDW
cdw C:\Users\YourName\Documents
从源代码编译
-
克隆仓库
git clone https://github.com/aarmn/cdw.git
-
构建项目
cd cdw cargo build --release
-
为您的 shell 初始化 CDW
./target/release/cdw --init
-
重新启动您的 shell 或根据输出源您的 shell 配置文件。
-
开始使用 CDW
cdw C:\Users\YourName\Documents
🛠️ 使用方法
cdw [OPTIONS] [PATH]
选项
-i
,--init
: 初始化 shell 函数--init-all
: 为所有可用的 shell 初始化 shell 函数--init-display <SHELL>
: 显示特定 shell 的 shell 函数-
,--verbose
: 启用详细模式-
,--convert
: 转换路径而不更改目录--help
: 显示帮助信息
示例
# Change directory to a Windows path
cdw 'C:\Users\YourName\Documents' # using `'` is necessary in bash for `\` to be interpreted as raw string and remain unescaped, check your shells for more info on raw/unescaped strings
# Convert a Windows path to WSL path without changing directory
cdw -c D:\Projects\MyProject
# Initialize CDW for your current shell
cdw --init
# Display the shell function for Zsh
cdw --init-display zsh
# Initialize CDW for all shells available (🚧WIP)
cdw --init-all
每个 shell 中的原始字符串
Shell | 转义字符(非 N/A) | 支持空格而不需要转义反斜杠 | 示例 |
---|---|---|---|
xonsh | 无或 r"" 或 r'' | ❌ | cdw C: (: 和 \ 终止路径问题) 或 cdw r'C:\' 或 cdw r'C:\' |
bash | '' | ✅ | cdw'C:\' |
nushell | 无 | ❌ | cdw C:\ |
fish | 无 | ❌ | cdw C: (: 和 \ 结尾路径问题) |
sh/dash | '' | ✅ | cdw'C:\' |
zsh | '' | ✅ | cdw'C:\' |
powershell | 无 | ✅ | cdw C:\ |
🐚 支持的 Shell
- Bash
- Zsh
- Fish
- PowerShell
- Nushell
- Xonsh
- Sh (🚧WIP)
🎨 自定义
CDW 自动在 ~/.config/cdw/
创建特定 Shell 的函数和自动补全脚本。您可以自定义这些文件以满足您的需求。但请注意,通过调用 init
和 init-all
标志,它们将被覆盖。
🚧 当前限制
--init-all
功能目前正在开发中。- CDW 目前是
cd
的直接替换,但不支持cd
标志,因为它们很少使用。 - 如果您的文件名中包含
:
或\
,CDW 可能无法正确工作。这个限制已被认可,可能在未来的版本中解决。
✅ TODOs
- 为所有支持的 Shell 添加和稳定自动补全
- 在可能的 Shell 中实现文件自动补全
- 添加“不自动补全”模式
- 删除所有残留或完全支持
ksh
- 将 CDW 作为系统
cd
命令的直接替换(仅当使用 Windows 风格路径时激活,向下传递未知标志,测试与常见 Shell 中的 cd 标志是否冲突) - 在可能的直接替换解决方案中解决 Linux 中文件名包含
:
和\
的问题。 - 清理代码,使枚举成为传递 Shell 类型的数据结构,而不是字符串或 &str
- 为 rustdoc 编写代码文档
- 制作 lib.rs
- 使用原始字符串的空间问题
- 剪贴板应用
- 添加书签和快速 cd 功能(也许!)
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
📜 许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
🙏 致谢
特别感谢所有帮助改进 CDW 的贡献者和用户!
由 Aryan L. Horizon (AARMN) 用 ❤️ 制作
🌟 如果您发现 CDW 有用,请考虑在 GitHub 上给它一个 star!🌟
依赖项
~1.2–1.7MB
~32K SLoC