<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: 终端下拼音补全中文名称和路径</title>
	<atom:link href="http://linuxtoy.org/archives/chsdir.html/feed" rel="self" type="application/rss+xml" />
	<link>http://linuxtoy.org/archives/chsdir.html</link>
	<description>LinuxTOY 是一个致力于提供 Linux 相关资讯的专题站点。如果您发现了好用好玩的 Linux 东东并愿意发扬自由、分享的精神，可以点击顶部导航 Contact 按钮进行投稿。</description>
	<lastBuildDate>Tue, 22 May 2012 15:26:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: wxuyec</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-228623</link>
		<dc:creator>wxuyec</dc:creator>
		<pubDate>Wed, 10 Aug 2011 14:48:15 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-228623</guid>
		<description>&lt;p&gt;楼主你好，我从这里下载了最新版的
http://code.google.com/p/easyscripts/downloads/detail?name=chsdir&lt;em&gt;20110802.tar.gz&amp;can=2&amp;q=
然后用
bash install.sh
安装。但是不能用。例如我输入
ls b
然后按tab，得到的结果是，
ls b&lt;/em&gt;tilde
连正常的补全都不行了。我的系统是ubuntu10.04
谢谢&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>楼主你好，我从这里下载了最新版的
<a href="http://code.google.com/p/easyscripts/downloads/detail?name=chsdir" rel="nofollow">http://code.google.com/p/easyscripts/downloads/detail?name=chsdir</a><em>20110802.tar.gz&amp;can=2&amp;q=
然后用
bash install.sh
安装。但是不能用。例如我输入
ls b
然后按tab，得到的结果是，
ls b</em>tilde
连正常的补全都不行了。我的系统是ubuntu10.04
谢谢</p>]]></content:encoded>
	</item>
	<item>
		<title>By: BiFF</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-224689</link>
		<dc:creator>BiFF</dc:creator>
		<pubDate>Tue, 02 Aug 2011 03:32:49 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-224689</guid>
		<description>&lt;p&gt;没有遇到上面说的目录无法连续拼接的问题，请更新到最新版本后再测试
http://code.google.com/p/easyscripts/downloads/list
如果还有问题，可以wiki留言或或邮件提交patch，联系shaozx，Gmail~~
btw. 楼上的代码不是基本最新版本修改的，有点老了&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>没有遇到上面说的目录无法连续拼接的问题，请更新到最新版本后再测试
<a href="http://code.google.com/p/easyscripts/downloads/list" rel="nofollow">http://code.google.com/p/easyscripts/downloads/list</a>
如果还有问题，可以wiki留言或或邮件提交patch，联系shaozx，Gmail~~
btw. 楼上的代码不是基本最新版本修改的，有点老了</p>]]></content:encoded>
	</item>
	<item>
		<title>By: huying</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-223947</link>
		<dc:creator>huying</dc:creator>
		<pubDate>Sun, 31 Jul 2011 15:11:13 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-223947</guid>
		<description>&lt;p&gt;aaron所说chsdir在ubuntu 11.04上的那个问题很讨厌，希望楼主花点功夫帮我们解决一下。呵呵。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>aaron所说chsdir在ubuntu 11.04上的那个问题很讨厌，希望楼主花点功夫帮我们解决一下。呵呵。</p>]]></content:encoded>
	</item>
	<item>
		<title>By: huying</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-223945</link>
		<dc:creator>huying</dc:creator>
		<pubDate>Sun, 31 Jul 2011 15:08:02 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-223945</guid>
		<description>&lt;p&gt;贴的代码怎么乱了？
简单说一下吧，搜索匹配目录项之前，先&lt;em&gt;dir=os.path.expanduser(dir)，然后用&lt;/em&gt;dir去搜索匹配目录项。搜索到匹配项后，仍使用dir去组合成返回结果。原程序段返回之前要用os.path.isdir()去判断匹配项是否真正存在，送给os.path.isdir()的参数也要是扩展过的。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>贴的代码怎么乱了？
简单说一下吧，搜索匹配目录项之前，先<em>dir=os.path.expanduser(dir)，然后用</em>dir去搜索匹配目录项。搜索到匹配项后，仍使用dir去组合成返回结果。原程序段返回之前要用os.path.isdir()去判断匹配项是否真正存在，送给os.path.isdir()的参数也要是扩展过的。</p>]]></content:encoded>
	</item>
	<item>
		<title>By: huying</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-223941</link>
		<dc:creator>huying</dc:creator>
		<pubDate>Sun, 31 Jul 2011 15:01:37 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-223941</guid>
		<description>&lt;p&gt;楼上aaron说的问题确实存在，而且我看了一下，不太好改。&lt;/p&gt;

&lt;p&gt;最新415的版本在ubuntu 11.04上还有另一个问题，不支持~/开头的中文目录名自动补全。比如：要进入$HOME/视频这个目录，命令行上输入 cd ~/sp 无法自动补全。&lt;/p&gt;

&lt;p&gt;我看了一下，原因在于以往bash传给&lt;em&gt;filedir()函数的是已经扩展过的路径名，比如~/sp，传到&lt;/em&gt;filedir()函数时已经变成$HOME/sp。而11.04版的bash&lt;em&gt;completion取消了这种修改，由&lt;/em&gt;filedir()函数自己来处理这类路径名。&lt;/p&gt;

&lt;p&gt;这个问题比较简单。解决办法是稍微修改一下chsdir。附上我修改的版本：&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt;== &#039;&lt;strong&gt;main&lt;/strong&gt;&#039;:
    if len(sys.argv) != 3 :
        sys.exit(1)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;dironly = sys.argv[1]

cur = sys.argv[2].replace(&quot;\\&quot;,&quot;&quot;)
for k in LIST_TEST.keys():
    cur = cur.replace( k, LIST_TEST.get(k) )

idx=None; _cur=cur
if len(cur)&gt;1 and cur[-1:] &gt;&#039;0&#039; and cur[-1:] i and len(_file_py) &gt; j :
        if _file_py[j] == &quot;`&quot; and _name_py[i] != &quot;`&quot;:
            end = _file_py.index(&quot;`&quot;,j+1)
            if _file_py.find( _name_py[i], j, end ) &gt; 0 :
                i+=1; j=end+1
                continue
        else:
            if _name_py[i] == _file_py[j] or  _file_py[i] == &quot;?&quot;:
                i+=1; j+=1
                continue;
        if _name_py[i]!=l[i] : break
    if len(_name_py) == i :
        tmp = (dir+&quot;/&quot;+l).replace(&quot;.//&quot;,&quot;&quot;)
&lt;/code&gt;&lt;/pre&gt;

&lt;h1&gt;以下这行我改了一下，核验目录是否存在前也需要扩展一下。&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;        if dironly == &quot;x-d&quot; and not os.path.isdir(os.path.expanduser(tmp)): 
            continue
        ret.append( tmp )

try:
    locale.setlocale(locale.LC_ALL,&quot;&quot;)
except:
    pass

ret.sort(key=locale.strxfrm)
if idx and len(ret) &gt; idx-1:
    print ret[idx-1]
else:
    print &quot;\n&quot;.join(ret)
&lt;/code&gt;&lt;/pre&gt;
</description>
		<content:encoded><![CDATA[<p>楼上aaron说的问题确实存在，而且我看了一下，不太好改。</p>

<p>最新415的版本在ubuntu 11.04上还有另一个问题，不支持~/开头的中文目录名自动补全。比如：要进入$HOME/视频这个目录，命令行上输入 cd ~/sp 无法自动补全。</p>

<p>我看了一下，原因在于以往bash传给<em>filedir()函数的是已经扩展过的路径名，比如~/sp，传到</em>filedir()函数时已经变成$HOME/sp。而11.04版的bash<em>completion取消了这种修改，由</em>filedir()函数自己来处理这类路径名。</p>

<p>这个问题比较简单。解决办法是稍微修改一下chsdir。附上我修改的版本：</p>

<p>if <strong>name</strong>== '<strong>main</strong>':
    if len(sys.argv) != 3 :
        sys.exit(1)</p>

<pre><code>dironly = sys.argv[1]

cur = sys.argv[2].replace("\\","")
for k in LIST_TEST.keys():
    cur = cur.replace( k, LIST_TEST.get(k) )

idx=None; _cur=cur
if len(cur)&amp;gt;1 and cur[-1:] &amp;gt;'0' and cur[-1:] i and len(_file_py) &amp;gt; j :
        if _file_py[j] == "`" and _name_py[i] != "`":
            end = _file_py.index("`",j+1)
            if _file_py.find( _name_py[i], j, end ) &amp;gt; 0 :
                i+=1; j=end+1
                continue
        else:
            if _name_py[i] == _file_py[j] or  _file_py[i] == "?":
                i+=1; j+=1
                continue;
        if _name_py[i]!=l[i] : break
    if len(_name_py) == i :
        tmp = (dir+"/"+l).replace(".//","")
</code></pre>

<h1>以下这行我改了一下，核验目录是否存在前也需要扩展一下。</h1>

<pre><code>        if dironly == "x-d" and not os.path.isdir(os.path.expanduser(tmp)): 
            continue
        ret.append( tmp )

try:
    locale.setlocale(locale.LC_ALL,"")
except:
    pass

ret.sort(key=locale.strxfrm)
if idx and len(ret) &amp;gt; idx-1:
    print ret[idx-1]
else:
    print "\n".join(ret)
</code></pre>]]></content:encoded>
	</item>
	<item>
		<title>By: aaron</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-219688</link>
		<dc:creator>aaron</dc:creator>
		<pubDate>Tue, 19 Jul 2011 02:31:56 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-219688</guid>
		<description>&lt;p&gt;ubuntu11.04上就不好用了！&lt;/p&gt;

&lt;p&gt;ls w
以前为：ls 文件夹/
现在为：ls 文件夹&lt;/p&gt;

&lt;p&gt;这样就没法方便的目录连接起来了，比如：
ls 文件夹/文件夹1/文件夹2/文件.txt&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>ubuntu11.04上就不好用了！</p>

<p>ls w
以前为：ls 文件夹/
现在为：ls 文件夹</p>

<p>这样就没法方便的目录连接起来了，比如：
ls 文件夹/文件夹1/文件夹2/文件.txt</p>]]></content:encoded>
	</item>
	<item>
		<title>By: BiFF</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-189805</link>
		<dc:creator>BiFF</dc:creator>
		<pubDate>Wed, 19 Jan 2011 07:36:03 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-189805</guid>
		<description>&lt;p&gt;http://code.google.com/p/easyscripts/downloads/list&lt;/p&gt;

&lt;p&gt;下载最新版本&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><a href="http://code.google.com/p/easyscripts/downloads/list" rel="nofollow">http://code.google.com/p/easyscripts/downloads/list</a></p>

<p>下载最新版本</p>]]></content:encoded>
	</item>
	<item>
		<title>By: adaptee</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-173202</link>
		<dc:creator>adaptee</dc:creator>
		<pubDate>Wed, 10 Nov 2010 04:02:15 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-173202</guid>
		<description>&lt;p&gt;伸手党, 求zsh老手写个支持 chsdir 的widget~&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>伸手党, 求zsh老手写个支持 chsdir 的widget~</p>]]></content:encoded>
	</item>
	<item>
		<title>By: ys_sunshine</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-133216</link>
		<dc:creator>ys_sunshine</dc:creator>
		<pubDate>Wed, 23 Dec 2009 08:03:58 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-133216</guid>
		<description>&lt;p&gt;唉。。不知道为什么，我也用不了。。。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>唉。。不知道为什么，我也用不了。。。</p>]]></content:encoded>
	</item>
	<item>
		<title>By: jiqing</title>
		<link>http://linuxtoy.org/archives/chsdir.html#comment-132393</link>
		<dc:creator>jiqing</dc:creator>
		<pubDate>Thu, 17 Dec 2009 01:31:18 +0000</pubDate>
		<guid isPermaLink="false">http://linuxtoy.org/?p=3562#comment-132393</guid>
		<description>&lt;p&gt;确实是实用的好东西。&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>确实是实用的好东西。</p>]]></content:encoded>
	</item>
</channel>
</rss>

