petronny / pinyin-completion

complete path name based upon the pinyin acronym of Chinese characters
GNU General Public License v3.0
63 stars 13 forks source link

cd命令自动补全的bug #5

Closed Kzinux closed 9 years ago

Kzinux commented 9 years ago

当前环境:archlinux,zsh

当前目录test文件夹下有一个‘测试.txt'文件,输入命令 cd test/ ,然后按tab补全,会将测试.txt和test/作为候选项,测试.txt作为文件不应被列到cd补全列表里,test/作为上级目录也不应列到补全候选里。

如果不是中文文件名就没这个bug,比如当前目录test文件夹下有一个test.txt文件,输入 cd test/ ,按tab补全,zsh就会提示‘-- No Matches Found --’,不会将test.txt作为补全候选,也不会列出test/。

不知道描述清楚没,有需要另外信息请指教。

另外感谢petronny,简直是中文用户的神器。我这里也没有性能问题,感觉和没启用之前一样快。

petronny commented 9 years ago

cd 的确会把文件也列出来,因为中文补全是由user-expand补全出来的,并且不区分补全文件还是补全目录。我还没有简便的解决方法,我再调查几日。

如果仅仅是cd命令的话,我可以写一个针对cd的补全,让他只补全目录

现在pinyin-comp是补全可能的东西和原始字串,所以两个test/和/test/测试.txt都会出现。 关于为什么要添加原始字串请参见 #3

Kzinux commented 9 years ago

多谢解释,看了一会儿总算看明白为什么添加原始字串。

添加原始字串倒没什么,不影响操作。但是cd就挺麻烦的,文件少多按几下tab就回到目录了,文件多的时候就不方便了。

比如test目录下只有一个10个txt,没有目录,分别为测试1.txt——测试10.txt,输入命令 cd test/ ,按tab补全,命令就变成cd test/测试10.txt ,目录在最后面,只能按Backspace键删掉后面的测试10.txt。

cd

如果能修正cd就好了。