Perl tcsh自动完成并获取另一个自动完成的模式
到目前为止,有没有可能在tc shell完成的情况下获得匹配模式 我的意思是,假设命令a,然后执行:Perl tcsh自动完成并获取另一个自动完成的模式,perl,autocomplete,csh,tcsh,Perl,Autocomplete,Csh,Tcsh,到目前为止,有没有可能在tc shell完成的情况下获得匹配模式 我的意思是,假设命令a,然后执行: A[TAB] c1 c2 c3 Ac3[TAB]以下是我将如何处理它。首先,我将使用一个简单的xml解析脚本来打印路径。这里是我想到的一个(您可以使用perl轻松编写自己的一个,或者只使用这个): 最后,completeit(应该使用脚本和xml文件的绝对路径): 你能解释一下你用它做什么吗?@shx2当然,我想用某种格式的XML文件自动完成。你能举个具体的例子吗?xml中有什么? &
A[TAB]
c1
c2
c3
A
c3[TAB]
以下是我将如何处理它。首先,我将使用一个简单的xml解析脚本来打印路径。这里是我想到的一个(您可以使用perl轻松编写自己的一个,或者只使用这个):
最后,complete
it(应该使用脚本和xml文件的绝对路径):
你能解释一下你用它做什么吗?@shx2当然,我想用某种格式的XML文件自动完成。你能举个具体的例子吗?xml中有什么?
<xml>
<key name="c1"></key>
<key name="c2"></key>
<key name="c3">
<key name="c3-b2">
<key name="c3-xdr"></key>
</key>
</key>
</xml>
# xml_paths.py
import sys
from xml import sax
class PathHandler(sax.handler.ContentHandler):
def __init__(self):
self.path = []
def startElement(self, name, attrs):
if name == 'key':
self.path.append(attrs['name'])
print '/'.join(self.path)
def endElement(self, name):
if name == 'key':
self.path.pop()
sax.parse(sys.argv[1], PathHandler())
% complete A 'p#*#`python xml_paths.py a.xml`#'
% A <TAB>
c1 c2 c3 c3/c3-b2 c3/c3-b2/c3-xdr
% A c3/<TAB>
c3/c3-b2 c3/c3-b2/c3-xdr
% A c3/c3-b2
% python xml_paths.py a.xml
c1
c2
c3
c3/c3-b2
c3/c3-b2/c3-xdr