PowerShell 7 自动补全功能会将 .\ 添加到当前文件夹中的文件名中...这有时是一个问题

问题描述 投票:0回答:1

我在 Windows 11 上从 PowerShell 7 终端使用 pdflatex。

当我按“tab”自动补全当前文件夹中的文件名时,它会在开头添加

.\
(例如,我得到
pdflatex .\filename.tex
),pdflatex 无法理解。因此,我必须移动光标,删除开头的
.\
,然后按回车键,这不是很舒服,因为首先使用制表符的想法是少写。我能做什么?

我正在使用 PowerShell 7.4.1 和 pdflatex 3.141592653-2.6-1.40.25 (Tex Live 2023) 以及 kpathsea 版本 6.3.5。

逐步重现问题。

  • 在终端中写入
    pdflatex fil
  • 得到
    pdflatex .\filename.tex
    而不是预期的
    pdflatex filename.tex
  • 从 pdflatex 中得到以下错误:
> pdflatex .\filename.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
! Undefined control sequence.
<*> .\filename
          .tex
?
powershell pdflatex
1个回答
0
投票

大概您正在寻找当前位置中的

.tex
文件的补全,而不使用
.\
,在这种情况下,您可以使用
Register-ArgumentCompleter
-Native
开关:

Register-ArgumentCompleter -CommandName pdflatex -Native -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)

    Get-ChildItem -Filter *.tex |
        Where-Object { $_.Name.StartsWith($wordToComplete, [StringComparison]::InvariantCulture) } |
        ForEach-Object Name
}
© www.soinside.com 2019 - 2024. All rights reserved.