programing

Ctrl + D를 사용하여 종료하고 Ctrl + L을 사용하여 Powershell 콘솔의 cls로 이동합니다.

lovejava 2023. 9. 11. 21:18

Ctrl + D를 사용하여 종료하고 Ctrl + L을 사용하여 Powershell 콘솔의 cls로 이동합니다.

나는 만들기 위해 노력하고 있습니다.

+ DCTRL -D 파워셸 콘솔 종료

그리고.

+ LCTRL - 화면을 지웁니다.L

바시처럼

지금까지 본 바로는, 우리가 정의할 수 있는 것은

function ^D {exit}

즉, CTRL+D를 한 다음 Enter 키를 눌러야 작동합니다.

게다가, 그것은 내가 정의하는 것조차 허락하지 않습니다.

function ^L {exit}

기본 Powershell 콘솔에서 이러한 키 바인딩을 추가할 수 있는 방법이 있습니까?

오래된 질문이지만 PowerShell 5.1 및 PowerShell Core 6.x 이상의 경우:

Set-PSReadlineKeyHandler -Key ctrl+d -Function ViExit

GNU Bash 탭 완료 및 키 바인딩을 에뮬레이트하는 Powershell v3.0용라이브러리가 있습니다.역방향 증분 검색 작업의 경우 +까지 가능합니다.내가 원하던 바로 그.

외부 프로그램에 의존하는 것이 괜찮다면 AutoHotKey로 다음을 수행할 수 있습니다.

#IfWinActive ahk_class ConsoleWindowClass
^L::SendInput , {Esc}cls{Enter}
^D::SendInput , {Esc}exit{Enter}
#IfWinActive

위 내용은 PowerShell 또는 CMD 콘솔과 함께 작동합니다.그렇지 않으면 내가 생각할 수 있는 유일한 것은 P/Invoke 마법을 사용하는 것뿐입니다.SetWindowsHookEx.

편집: 다른 프로그램의 바로 가기 키를 전달하도록 AutoHotkey 스크립트를 고정했습니다.

키 바인딩은 PSReadLine에 의해 제어됩니다.PSReadLine의 기본 편집 모드는 Ctrl-D가 바인딩되지 않은 Windows 스타일입니다.

편집 모드를 Emacs로 설정

Set-PSReadlineOption -EditMode Emacs

또는 키를 묶었습니다.

Set-PSReadLineKeyHandler -Key 'Ctrl+d' -Function DeleteCharOrExit

PSeventing이라는 PowerShell 스냅인을 통해 이 기능을 수행할 수 있습니다(앞 페이지 데모 참조).

http://pseventing.codeplex.com/releases/view/66587

# clear screen in response to ctrl+L, unix style 
register-hotkeyevent "ctrl+L" -action { cls; write-host -nonewline (prompt) }

설정할 수 있습니다.PSReadline로.emacs모드는 다음과 함께 종료될 뿐만 아니라^D, 당신은 줄의 시작으로 갈 수 있을 것입니다.^A, 과의 끝^E

프로필에 포함:Set-PSReadlineOption -EditMode Emacs

사용하고 있습니다.cmder어떤 것을 사용합니까?ConEmu, 찾아내다profile.ps1와 함께<appdir>/vendor/그 경우에는 파일에 추가할 수 있습니다.

그렇지 않으면 기본 위치에 다음을 추가할 수 있습니다.powershell적재합니다.자습서 중 하나입니다.

언급URL : https://stackoverflow.com/questions/8360215/use-ctrl-d-to-exit-and-ctrl-l-to-cls-in-powershell-console