技术解析

Mintty(Cygwin)快速定位目录的问题
0
2021-07-27 03:55:31
idczone
目的是实现Windows右键菜单“在此处打开Cygwin”。


网上搜到的都是使用cygwin bash启动,如下:
%Cygwin%\bin\bash -login -c "cd '%1'; exec bash -rcfile ~/.bashrc"


我尝试从Mintty(%Cygwin%\bin\mintty)启动,但没成功,试了半天,得到了一个买一送一的结果:

%Cygwin%\bin\bash -login -c "cd '%1'; mintty"

这显然不是我要的,因为多了一个多余的bash窗口。


请问有没有办法直接从mintty.exe启动并定位到指定目录,谢谢了。


P.S.找不到更合适的节点了……
我的方法:
cygwin-here.bat:
off
set _T=%cd%
set _V=%1
E:
chdir E:\cygwin\bin
bash --login -i

~/.bash_profile:
export _T=${_T//\\//}
if [[ $_T == "" ]]; then
export _T=~
fi
cd "$_T"
export _V=${_V//\\//}
if [[ $_V != "" ]]; then
vim "$_V"
fi
思路是传递个环境变量,顺便实现了传递给 vim 方便编辑。
借助 Listary 在当前目录运行 bat 的手段。

注意一下,缩进坏了…

没记错的话,可以使用chere添加

什么cmd.exe mintty console2都弱爆了,我用ConEmu这种事会随便跟别人说吗

我是这样的
D:\cygwin\bin\mintty -i /Cygwin-Terminal.ico -e /bin/bash --login -i -c "cd '%1';exec bash"

传递环境变量这个思路不错,mark。
完美解决了,thx。P.S.执行两次bash有点郁闷囧

刚刚发现这样子没法Tab键补全~/.ssh/config和/etc/hosts中主机名;
默认情况下是可以补全的;
一般我定位到很长的路径下,除了一些麻烦的操作外,最主要的还是使用scp和sftp,而这两个正好需要到主机名配置。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服