Powershell选项卡扩展函数有两个参数,一个是到目前为止的行,另一个是“当前单词”。函数应该返回当前单词的替换项。
从实验中,在我看来,当前单词被传递到函数中,没有任何引号,返回的单词被插入到与原始单词相同引号的行中。例如,如果我输入
PS> foo "bar"<TAB>
bar
传递给我的tab扩展函数(不带引号),我的返回值将以双引号放回行中。
这种行为在某些情况下会引起问题。例如,文件名的部分完成,我可以在其中键入
C:\Pro<TAB>
得到
"C:\Program Files"
,但我需要删除最后的引号以进一步展开(例如,通过键入
\Micro
此外,返回包含引号的扩展值可能非常混乱:
PS> function TabExpansion($line, $lastword) {
PS> "looks like '" + $lastword + "' when quoted"
PS> }
PS>
PS> Silly 'example'<TAB>
有没有办法避免或避免这种行为?
保罗。