我在 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 .\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
?
大概您正在寻找当前位置中的
.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
}