[powershell] PowerShell 탭 완성이 Bash처럼 작동하도록하는 방법

현재 디렉토리에 다음 파일이 있다고 가정 해 보겠습니다.

buildBar.bat
buildFoo.bat
buildHouse.bat

그리고 나는 내 명령 프롬프트에서 다음을 입력 ./bu한 후와 TAB.

  • Bash에서는 다음으로 확장됩니다. ./build

  • PowerShell에서는 ./buildBar.bat목록의 첫 번째 항목으로 확장됩니다 .

  • Cmd에서 동작은 PowerShell과 동일합니다.

Bash 동작을 선호합니다. PowerShell이 ​​Bash처럼 동작하도록하는 방법이 있습니까?



답변

새 버전의 PowerShell에는이 작업을 수행하는 데 사용할 수있는 PSReadline이 포함됩니다.

Set-PSReadlineKeyHandler -Key Tab -Function Complete

영구적으로 만들려면이 명령을 C : \ Users \ [User] \ Documents \ WindowsPowerShell \ profile.ps1에 넣습니다.


답변

이제 PowerShell에서 PSReadline을 사용하여 Bash 스타일 완성을 수행 할 수 있습니다.

PowerShell에서 Bash와 유사한 탭 완성 블로그 게시물을 확인하십시오 .


답변

실제로 귀하의 desiderata가 아니라 여기를 살펴보십시오.

PowerTab

하지만 PowerShell 콘솔을위한 최고의 탭 확장 기능이라고 생각합니다 !!!


답변

tab 이전 인수 / 매개 변수가 아닌 명령 이름 만 완성합니다.

또한 히스토리의 인수로 전체 명령을 자동 완성하려면 아래 키 바인딩을 설정하십시오.

Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

이제 명령 이름의 몇 문자를 입력하고 위 / 아래 화살표를 사용하여 히스토리에서이 명령 (인수 포함)을 자동 완성합니다.

실시간 절약.


답변

원하는대로 TabExpansion 함수를 수정하십시오. Tab 키를 다시 누르면 원래 키를 누른 위치에서 새로운 제안이 수정되면 끝까지 완료 될 수 있습니다. 나는 실제 행동을 강력히 선호하고 가능한 한 빨리 줄을 쓰길 원합니다. 마지막으로 와일드 카드 확장을 잊지 마세요. 예 : bu * h [Tab]이 자동으로 buildHouse.bat로 완료됩니다.


답변

파워 쉘 핵심으로 우리는 PSReadLine에 대한 PredictionSource 속성을 설정할 수 있습니다 역사를 자동 제안을 얻을 수 있습니다. 자세한 내용은 YouTube 동영상을 참조하십시오.
https://youtu.be/I0iIZe0dUNw


답변

# keep or reset to powershell default
Set-PSReadlineKeyHandler -Key Shift+Tab -Function TabCompletePrevious

# define Ctrl+Tab like default Tab behavior
Set-PSReadlineKeyHandler -Key Ctrl+Tab -Function TabCompleteNext

# define Tab like bash
Set-PSReadlineKeyHandler -Key Tab -Function Complete