【发布时间】:2010-10-05 11:17:23
【问题描述】:
Powershell 选项卡扩展函数采用 2 个参数,即到目前为止的行和“当前单词”。该函数应返回当前单词的替换。
从实验来看,在我看来,当前单词被传递给函数时没有任何引号,并且返回的单词被插入到与原始单词相同的行中。因此,例如,如果我输入
PS> foo "bar"<TAB>
我会将字符串bar 传递给我的标签扩展函数(不带引号),我的返回值将放回双引号中。
这种行为在某些情况下会导致问题。例如,文件名的部分补全,我可能输入 C:\Pro<TAB> 以获取 "C:\Program Files",但随后我需要删除最后的引号以进一步扩展(例如,通过输入 \Micro 然后再次按 TAB。
此外,返回包含引号的扩展值可能会非常混乱:
PS> function TabExpansion($line, $lastword) {
PS> "looks like '" + $lastword + "' when quoted"
PS> }
PS>
PS> Silly 'example'<TAB>
这会导致引号不平衡。
有没有办法避免或解决这种行为?
保罗。
【问题讨论】: