เกี่ยวกับฟังก์ชัน PSReadLine
คำอธิบายสั้น ๆ
PSReadLine มอบประสบการณ์การแก้ไขบรรทัดคำสั่งที่ได้รับการปรับปรุงในคอนโซล PowerShell
คำอธิบายแบบยาว
PowerShell 7.3 มาพร้อมกับ PSReadLine 2.2.6 เวอร์ชันปัจจุบันคือ PSReadLine 2.3.4 PSReadLine เวอร์ชันปัจจุบันสามารถติดตั้งและใช้งานได้บน Windows PowerShell 5.1 และใหม่กว่า สำหรับคุณสมบัติบางอย่าง คุณต้องใช้งาน PowerShell 7.2 หรือสูงกว่า
บทความนี้จะบันทึกฟังก์ชันต่างๆ ที่ได้รับจาก PSReadLine 2.3.4 ฟังก์ชันเหล่านี้สามารถเชื่อมโยงกับการกดแป้นพิมพ์เพื่อให้เข้าถึงและเรียกใช้ได้ง่าย
การใช้คลาส Microsoft.PowerShell.PSConsoleReadLine
ฟังก์ชันต่อไปนี้มีอยู่ในคลาส Microsoft.PowerShell.PSConsoleReadLine
ฟังก์ชั่นการแก้ไขขั้นพื้นฐาน
ยกเลิก
ยกเลิกการกระทำปัจจุบัน เช่น การค้นหาประวัติส่วนเพิ่ม
- โหมด Emacs:
Ctrl+g - โหมดแทรก Vi:
Ctrl+g - โหมดคำสั่ง Vi:
<Ctrl+g>
ยอมรับและรับถัดไป
พยายามดำเนินการอินพุตปัจจุบัน หากสามารถดำเนินการได้ (เช่น AcceptLine) ให้เรียกคืนรายการถัดไปจากประวัติในครั้งต่อไปที่ ReadLine ถูกเรียก
- โหมด Emacs:
Ctrl+o
AcceptLine
พยายามดำเนินการอินพุตปัจจุบัน หากอินพุตปัจจุบันไม่สมบูรณ์ (เช่น ไม่มีวงเล็บปิด วงเล็บเหลี่ยม หรือเครื่องหมายคำพูด) จากนั้นพร้อมท์การดำเนินการต่อจะแสดงในบรรทัดถัดไป และ PSReadLine จะรอคีย์เพื่อแก้ไขอินพุตปัจจุบัน
- โหมด Windows:
Enter - โหมด Emacs:
Enter - โหมดแทรก Vi:
Enter
AddLine
พรอมต์ความต่อเนื่องจะแสดงในบรรทัดถัดไป และ PSReadLine รอให้คีย์แก้ไขอินพุตปัจจุบัน สิ่งนี้มีประโยชน์ในการป้อนอินพุตหลายบรรทัดเป็นคำสั่งเดียว แม้ว่าบรรทัดเดียวจะเป็นอินพุตที่สมบูรณ์ด้วยตัวมันเองก็ตาม
- โหมด Windows:
Shift+Enter - โหมด Emacs:
Shift+Enter - โหมดแทรก Vi:
Shift+Enter - โหมดคำสั่ง Vi:
<Shift+Enter>
ย้อนกลับลบChar
ลบอักขระหน้าเคอร์เซอร์
- โหมด Windows:
Backspace,Ctrl+h - โหมด Emacs:
Backspace,Ctrl+Backspace,Ctrl+h - โหมดแทรก Vi:
Backspace - โหมดคำสั่ง Vi:
<X>,<d,h>
ย้อนกลับลบอินพุต
Like BackwardKillInput - ลบข้อความตั้งแต่จุดจนถึงจุดเริ่มต้นของอินพุต แต่จะไม่ใส่ข้อความที่ถูกลบใน kill-ring
- โหมด Windows:
Ctrl+Home - โหมดแทรก Vi:
Ctrl+u,Ctrl+Home - โหมดคำสั่ง Vi:
<Ctrl+u>,<Ctrl+Home>
ย้อนกลับลบบรรทัด
เช่นเดียวกับ BackwardKillLine - ลบข้อความจากจุดไปยังจุดเริ่มต้นของบรรทัด แต่จะไม่ใส่ข้อความที่ถูกลบใน kill-ring
- โหมดคำสั่ง Vi:
<d,0>
ย้อนกลับลบWord
ลบคำก่อนหน้า
- โหมดคำสั่ง Vi:
<Ctrl+w>,<d,b>
ถอยหลังฆ่าอินพุต
ล้างข้อความตั้งแต่เริ่มต้นอินพุตจนถึงเคอร์เซอร์ ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
- โหมด Emacs:
Ctrl+u,Ctrl+x,Backspace
ย้อนกลับKillLine
ล้างข้อความตั้งแต่จุดเริ่มต้นของบรรทัดตรรกะปัจจุบันจนถึงเคอร์เซอร์ ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
- ฟังก์ชั่นไม่มีขอบเขต
ย้อนหลังKillWord
ล้างอินพุตตั้งแต่จุดเริ่มต้นของคำปัจจุบันจนถึงเคอร์เซอร์ หากเคอร์เซอร์อยู่ระหว่างคำ ข้อมูลจะถูกล้างตั้งแต่เริ่มต้นคำก่อนหน้าจนถึงเคอร์เซอร์ ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
- โหมด Windows:
Ctrl+Backspace,Ctrl+w - โหมด Emacs:
Alt+Backspace,Escape,Backspace - โหมดแทรก Vi:
Ctrl+Backspace - โหมดคำสั่ง Vi:
<Ctrl+Backspace>
ย้อนกลับแทนที่Char
แทนที่อักขระที่อยู่หน้าเคอร์เซอร์
- โหมดคำสั่ง Vi:
<c,h>
CancelLine
ยกเลิกอินพุตปัจจุบัน โดยปล่อยอินพุตไว้บนหน้าจอ แต่กลับไปที่โฮสต์ เพื่อให้พรอมต์ได้รับการประเมินอีกครั้ง
- โหมดแทรก Vi:
Ctrl+c - โหมดคำสั่ง Vi:
<Ctrl+c>
CapitalizeWord
เพิ่มใน PSReadLine 2.3.0
แปลงอักขระตัวแรกของคำถัดไปเป็นตัวพิมพ์ใหญ่ และอักขระที่เหลือเป็นตัวพิมพ์เล็ก
- โหมด Emacs:
Alt+c,Escape,c
สำเนา
คัดลอกภูมิภาคที่เลือกไปยังคลิปบอร์ดของระบบ หากไม่ได้เลือกภูมิภาค ให้คัดลอกทั้งบรรทัด
- โหมด Windows:
Ctrl+C
คัดลอกหรือยกเลิกLine
หากเลือกข้อความ ให้คัดลอกไปที่คลิปบอร์ด ไม่เช่นนั้นจะยกเลิกบรรทัด
- โหมด Windows:
Ctrl+c - โหมด Emacs:
Ctrl+c
ตัด
ลบภูมิภาคที่เลือกโดยวางข้อความที่ถูกลบในคลิปบอร์ดของระบบ
- โหมด Windows:
Ctrl+x
DeleteChar
ลบอักขระใต้เคอร์เซอร์
- โหมด Windows:
ลบ - โหมด Emacs:
ลบ - โหมดแทรก Vi:
ลบ - โหมดคำสั่ง Vi:
<Delete>,<x>,<d,l>,<d,Spacebar>
DeleteCharOrExit
ลบอักขระใต้เคอร์เซอร์ หรือหากบรรทัดว่าง ให้ออกจากกระบวนการ
- โหมด Emacs:
Ctrl+d
ลบEndOfBuffer
ลบไปที่จุดสิ้นสุดของบัฟเฟอร์หลายบรรทัด
- โหมดคำสั่ง Vi:
<d,G>
ลบEndOfWord
ลบไปที่ท้ายคำ
- โหมดคำสั่ง Vi:
<d,e>
DeleteLine
ลบบรรทัดโลจิคัลปัจจุบันของบัฟเฟอร์หลายบรรทัด เปิดใช้งานการเลิกทำ
- โหมดคำสั่ง Vi:
<d,d>,<d,_>
DeleteLineToFirstChar
ลบออกจากอักขระที่ไม่เว้นว่างตัวแรกของบรรทัดโลจิคัลปัจจุบันในบัฟเฟอร์หลายบรรทัด
- โหมดคำสั่ง Vi:
<d,^>
ลบNextLines
ลบบรรทัดโลจิคัลปัจจุบันและถัดไปในบัฟเฟอร์หลายบรรทัด
- โหมดคำสั่ง Vi:
<d,j>
ลบบรรทัดก่อนหน้า
ลบบรรทัดโลจิคัลที่ร้องขอก่อนหน้านี้และบรรทัดโลจิคัลปัจจุบันในบัฟเฟอร์หลายบรรทัด
- โหมดคำสั่ง Vi:
<d,k>
DeleteRelativeLines
ลบจากจุดเริ่มต้นของบัฟเฟอร์จนถึงบรรทัดโลจิคัลปัจจุบันในบัฟเฟอร์หลายบรรทัด
เช่นเดียวกับคำสั่ง Vi ส่วนใหญ่ คำสั่ง <d,g,g> สามารถขึ้นหน้าด้วยอาร์กิวเมนต์ตัวเลขที่ระบุหมายเลขบรรทัดสัมบูรณ์ ซึ่งประกอบขึ้นเป็นช่วงของบรรทัดร่วมกับหมายเลขบรรทัดปัจจุบัน ที่จะถูกลบ หากไม่ได้ระบุ อาร์กิวเมนต์ตัวเลขจะมีค่าเริ่มต้นเป็น 1 ซึ่งอ้างอิงถึงบรรทัดโลจิคัลบรรทัดแรกในบัฟเฟอร์หลายบรรทัด
จำนวนบรรทัดจริงที่จะลบออกจากหลายบรรทัดจะถูกคำนวณเป็นผลต่างระหว่างหมายเลขบรรทัดแบบลอจิคัลปัจจุบันและอาร์กิวเมนต์ตัวเลขที่ระบุ ซึ่งอาจเป็นค่าลบได้ ดังนั้นส่วน relative ของชื่อเมธอด
- โหมดคำสั่ง Vi:
<d,g,g>
ลบถึงสิ้นสุด
ลบไปที่ท้ายบรรทัด
- โหมดคำสั่ง Vi:
<D>,<d,$>
DeleteWord
ลบคำถัดไป
- โหมดคำสั่ง Vi:
<d,w>
DowncaseWord
เพิ่มใน PSReadLine 2.3.0
แปลงคำถัดไปเป็นตัวพิมพ์เล็ก
- โหมด Emacs:
Alt+l,Escape,l
ไปข้างหน้าลบอินพุต
เช่นเดียวกับ KillLine - ลบข้อความจากจุดไปยังจุดสิ้นสุดของอินพุต แต่จะไม่ใส่ข้อความที่ถูกลบใน kill-ring
- โหมด Windows:
Ctrl+End - โหมดแทรก Vi:
Ctrl+End - โหมดคำสั่ง Vi:
<Ctrl+End>
ไปข้างหน้าลบบรรทัด
ลบข้อความจากจุดไปยังจุดสิ้นสุดของบรรทัดโลจิคัลปัจจุบัน แต่ไม่ได้ใส่ข้อความที่ถูกลบใน kill-ring
- ฟังก์ชั่นไม่มีขอบเขต
แทรกบรรทัดด้านบน
บรรทัดว่างใหม่จะถูกสร้างขึ้นเหนือบรรทัดปัจจุบัน โดยไม่คำนึงถึงตำแหน่งเคอร์เซอร์บนบรรทัดปัจจุบัน เคอร์เซอร์ย้ายไปที่จุดเริ่มต้นของบรรทัดใหม่
- โหมด Windows:
Ctrl+Enter
แทรกบรรทัดด้านล่าง
บรรทัดว่างใหม่จะถูกสร้างขึ้นใต้บรรทัดปัจจุบัน ไม่ว่าเคอร์เซอร์จะอยู่ที่ใดบนบรรทัดปัจจุบันก็ตาม เคอร์เซอร์ย้ายไปที่จุดเริ่มต้นของบรรทัดใหม่
- โหมด Windows:
Shift+Ctrl+Enter
InvertCase
กลับกรณีของอักขระปัจจุบันและย้ายไปยังอักขระถัดไป
- โหมดคำสั่ง Vi:
<~>
KillLine
ล้างอินพุตตั้งแต่เคอร์เซอร์จนถึงจุดสิ้นสุดของอินพุต ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
- โหมด Emacs:
Ctrl+k
KillRegion
ฆ่าข้อความระหว่างเคอร์เซอร์และเครื่องหมาย
- ฟังก์ชั่นไม่มีขอบเขต
KillWord
ล้างอินพุตตั้งแต่เคอร์เซอร์จนถึงท้ายคำปัจจุบัน หากเคอร์เซอร์อยู่ระหว่างคำ ข้อมูลจะถูกล้างออกจากเคอร์เซอร์จนถึงจุดสิ้นสุดของคำถัดไป ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
- โหมด Windows:
Alt+d,Ctrl+Delete - โหมด Emacs:
Alt+d,Escape,d - โหมดแทรก Vi:
Ctrl+Delete - โหมดคำสั่ง Vi:
<Ctrl+Delete>
แปะ
วางข้อความจากคลิปบอร์ดของระบบ
- โหมด Windows:
Ctrl+v,Shift+Insert - โหมดแทรก Vi:
Ctrl+v - โหมดคำสั่ง Vi:
<Ctrl+v>
มันเป็นสิ่งสำคัญ
เมื่อใช้ฟังก์ชัน วาง เนื้อหาทั้งหมดของบัฟเฟอร์คลิปบอร์ดจะถูกวางลงในบัฟเฟอร์อินพุตของ PSReadLine บัฟเฟอร์อินพุตจะถูกส่งไปยังตัวแยกวิเคราะห์ PowerShell อินพุตที่วางโดยใช้วิธีการวาง คลิกขวา ของแอปพลิเคชันคอนโซลจะถูกคัดลอกไปยังบัฟเฟอร์อินพุตทีละอักขระ บัฟเฟอร์อินพุตจะถูกส่งผ่านไปยัง parser เมื่อมีการคัดลอกอักขระขึ้นบรรทัดใหม่ ดังนั้นอินพุตจะถูกแยกวิเคราะห์ทีละบรรทัด ความแตกต่างระหว่างวิธีการวางส่งผลให้มีพฤติกรรมการดำเนินการที่แตกต่างกัน
PasteAfter
วางคลิปบอร์ดไว้หลังเคอร์เซอร์ โดยเลื่อนเคอร์เซอร์ไปที่ท้ายข้อความที่วาง
- โหมดคำสั่ง Vi:
<p>
PasteBefore
วางคลิปบอร์ดไว้หน้าเคอร์เซอร์ โดยเลื่อนเคอร์เซอร์ไปที่ท้ายข้อความที่วาง
- โหมดคำสั่ง Vi:
<P>
เติมหน้าและยอมรับ
นำหน้า '#' และยอมรับบรรทัด
- โหมดคำสั่ง Vi:
<#>
ทำซ้ำ
เลิกทำการเลิกทำ
- โหมด Windows:
Ctrl+y - โหมดแทรก Vi:
Ctrl+y - โหมดคำสั่ง Vi:
<Ctrl+y>
ทำซ้ำคำสั่งสุดท้าย
ทำซ้ำการแก้ไขข้อความครั้งล่าสุด
- โหมดคำสั่ง Vi:
<.>
ReplaceChar
แทนที่อักขระปัจจุบันด้วยชุดอักขระถัดไปที่พิมพ์
- โหมดคำสั่ง Vi:
<c,l>,<c,Spacebar>
แทนที่CharInPlace
แทนที่อักขระปัจจุบันด้วยอักขระเพียงตัวเดียว
- โหมดคำสั่ง Vi:
<r>
RevertLine
เปลี่ยนอินพุตทั้งหมดกลับเป็นอินพุตปัจจุบัน
- โหมด Windows:
Escape - โหมด Emacs:
Alt+r,Escape,r
ShellBackwardKillWord
ล้างอินพุตตั้งแต่จุดเริ่มต้นของคำปัจจุบันจนถึงเคอร์เซอร์ หากเคอร์เซอร์อยู่ระหว่างคำ ข้อมูลจะถูกล้างตั้งแต่เริ่มต้นคำก่อนหน้าจนถึงเคอร์เซอร์ ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
ฟังก์ชั่นไม่มีขอบเขต
ShellKillWord
ล้างอินพุตตั้งแต่เคอร์เซอร์จนถึงท้ายคำปัจจุบัน หากเคอร์เซอร์อยู่ระหว่างคำ ข้อมูลจะถูกล้างออกจากเคอร์เซอร์จนถึงจุดสิ้นสุดของคำถัดไป ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
ฟังก์ชั่นไม่มีขอบเขต
SwapCharacters
สลับอักขระปัจจุบันและอักขระก่อนหน้า
- โหมด Emacs:
Ctrl+t - โหมดแทรก Vi:
Ctrl+t - โหมดคำสั่ง Vi:
<Ctrl+t>
เลิกทำ
เลิกทำการแก้ไขก่อนหน้า
- โหมด Windows:
Ctrl+z - โหมด Emacs:
Ctrl+_,Ctrl+x,Ctrl+u - โหมดแทรก Vi:
Ctrl+z - โหมดคำสั่ง Vi:
<Ctrl+z>,<u>
UndoAll
เลิกทำการแก้ไขก่อนหน้าทั้งหมดสำหรับบรรทัด
- โหมดคำสั่ง Vi:
<U>
UnixWordRubout
ล้างอินพุตตั้งแต่จุดเริ่มต้นของคำปัจจุบันจนถึงเคอร์เซอร์ หากเคอร์เซอร์อยู่ระหว่างคำ ข้อมูลจะถูกล้างตั้งแต่เริ่มต้นคำก่อนหน้าจนถึงเคอร์เซอร์ ข้อความที่เคลียร์แล้วจะถูกวางไว้ในวงแหวนสังหาร
- โหมด Emacs:
Ctrl+w
UpcaseWord
เพิ่มใน PSReadLine 2.3.0
แปลงคำถัดไปเป็นตัวพิมพ์ใหญ่
- โหมด Emacs:
Alt+u,Escape,u
ตรวจสอบและยอมรับสาย
พยายามดำเนินการอินพุตปัจจุบัน หากอินพุตปัจจุบันไม่สมบูรณ์ (เช่น ไม่มีวงเล็บปิด วงเล็บเหลี่ยม หรือเครื่องหมายคำพูด) จากนั้นพร้อมท์การดำเนินการต่อจะแสดงในบรรทัดถัดไป และ PSReadLine จะรอคีย์เพื่อแก้ไขอินพุตปัจจุบัน
- โหมด Emacs:
Ctrl+m
ViAcceptLine
ยอมรับบรรทัดและสลับไปที่โหมดแทรก
- โหมดคำสั่ง Vi:
<Enter>
ViAcceptLineOrExit
เช่นเดียวกับ DeleteCharOrExit ในโหมด Emacs แต่ยอมรับบรรทัดแทนการลบอักขระ
- โหมดแทรก Vi:
Ctrl+d - โหมดคำสั่ง Vi:
<Ctrl+d>
ViAppendLine
มีการแทรกบรรทัดใหม่ไว้ใต้บรรทัดปัจจุบัน
- โหมดคำสั่ง Vi:
<o>
ViBackwardDeleteGlob
ลบคำก่อนหน้า โดยใช้ช่องว่างเป็นตัวคั่นคำเท่านั้น
- โหมดคำสั่ง Vi:
<d,B>
ViBackwardGlob
ย้ายเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำก่อนหน้า โดยใช้เพียงช่องว่างเป็นตัวคั่น
- โหมดคำสั่ง Vi:
<B>
ViBackwardReplaceGlob
ลบย้อนกลับไปยังจุดเริ่มต้นของคำก่อนหน้า โดยคั่นด้วยช่องว่าง และเข้าสู่โหมดแทรก
- โหมดคำสั่ง Vi:
<c,B>
ViBackwardReplaceLine
แทนที่บรรทัดด้านซ้ายของเคอร์เซอร์และแทนที่บรรทัดทั้งหมดจนถึงจุดเริ่มต้น
- โหมดคำสั่ง Vi:
<c,0>
ViBackwardReplaceLineToFirstChar
แทนที่บรรทัดด้านซ้ายของเคอร์เซอร์และอักขระทั้งหมดยกเว้นอักขระตัวเดียวที่จุดเริ่มต้นของบรรทัด
- โหมดคำสั่ง Vi:
<c,^>
ViBackwardแทนที่คำ
แทนที่คำก่อนหน้า
- โหมดคำสั่ง Vi:
<c,B>
ViDeleteBrace
ค้นหาวงเล็บปีกกา วงเล็บ หรือวงเล็บเหลี่ยมที่ตรงกัน แล้วลบเนื้อหาทั้งหมดภายใน รวมทั้งวงเล็บปีกกาด้วย
- โหมดคำสั่ง Vi:
<d,%>
ViDeleteEndOfGlob
ลบไปที่ท้ายคำ
- โหมดคำสั่ง Vi:
<d,E>
ViDeleteGlob
ลบ glob ถัดไป (คำที่คั่นด้วยช่องว่าง)
- โหมดคำสั่ง Vi:
<d,W>
ViDeleteToBeforeChar
ลบจนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<d,t>
ViDeleteToBeforeCharBackward
ลบจนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<d,T>
ViDeleteToChar
ลบจนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<d,f>
ViDeleteToCharBackward
ลบย้อนกลับจนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<d,F>
ViInsertAtเริ่มต้น
สลับไปที่โหมดแทรกและวางเคอร์เซอร์ไว้ที่จุดเริ่มต้นของบรรทัด
- โหมดคำสั่ง Vi:
<I>
ViInsertAtEnd
สลับไปที่โหมดแทรกและวางเคอร์เซอร์ที่ท้ายบรรทัด
- โหมดคำสั่ง Vi:
<A>
ViInsertLine
มีการแทรกบรรทัดใหม่เหนือบรรทัดปัจจุบัน
- โหมดคำสั่ง Vi:
<O>
ViInsertWithผนวก
ผนวกจากตำแหน่งบรรทัดปัจจุบัน
- โหมดคำสั่ง Vi:
<a>
ViInsertWithDelete
ลบอักขระปัจจุบันและสลับไปที่โหมดแทรก
- โหมดคำสั่ง Vi:
<s>
ViJoinLines
รวมบรรทัดปัจจุบันและบรรทัดถัดไป
- โหมดคำสั่ง Vi:
<J>
ViReplaceBrace
แทนที่อักขระทั้งหมดระหว่างอักขระปีกกาปัจจุบันกับคู่ที่ตรงกัน
- โหมดคำสั่ง Vi:
<c,%>
ViReplaceEndOfGlob
ลบไปที่ท้ายคำ โดยคั่นด้วยช่องว่าง และเข้าสู่โหมดแทรก
- โหมดคำสั่ง Vi:
<c,E>
Viแทนที่EndOfWord
ลบไปที่ท้ายคำ โดยคั่นด้วยช่องว่างและตัวคั่นทั่วไป แล้วเข้าสู่โหมดแทรก
- โหมดคำสั่ง Vi:
<c,E>
ViReplaceGlob
ลบไปที่จุดเริ่มต้นของคำถัดไป โดยคั่นด้วยช่องว่าง และเข้าสู่โหมดแทรก
- โหมดคำสั่ง Vi:
<c,W>
ViReplaceLine
ลบบรรทัดคำสั่งทั้งหมด
- โหมดคำสั่ง Vi:
<S>,<c,c>
ViReplaceToBeforeChar
แทนที่จนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<c,t>
ViReplaceToBeforeCharBackward
แทนที่จนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<c,T>
ViReplaceToChar
ลบจนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<c,f>
ViReplaceToCharBackward
แทนที่จนกว่าจะได้รับอักขระ
- โหมดคำสั่ง Vi:
<c,F>
ViReplaceToEnd
แทนที่อักขระจากตำแหน่งเคอร์เซอร์ไปที่ท้ายบรรทัด
- โหมดคำสั่ง Vi:
<c,$>,<C>
ViReplaceจนกระทั่งEsc
แทนที่อักขระปัจจุบันจนกว่าจะมีการป้อน Escape หรือบรรทัดได้รับการยอมรับ
- โหมดคำสั่ง Vi:
<r>
ViReplaceWord
แทนที่คำปัจจุบัน
- โหมดคำสั่ง Vi:
<c,W>
ViYankBeginningOfLine
ดึงจากจุดเริ่มต้นของบัฟเฟอร์ถึงเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,0>
ViYankEndOfGlob
ดึงจากเคอร์เซอร์ไปยังจุดสิ้นสุดของ WORD
- โหมดคำสั่ง Vi:
<y,E>
ViYankEndOfWord
ดึงจากเคอร์เซอร์ไปที่ท้ายคำ
- โหมดคำสั่ง Vi:
<y,e>
วิยังก์ซ้าย
อักขระ Yank ทางด้านซ้ายของเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,h>
ไวยังไลน์
ดึงบัฟเฟอร์ทั้งหมด
- โหมดคำสั่ง Vi:
<y,y>
ViYankNextGlob
ดึงจากเคอร์เซอร์ไปยังจุดเริ่มต้นของคำถัดไป
- โหมดคำสั่ง Vi:
<y,W>
ViYankNextWord
ดึงคำที่อยู่หลังเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,w>
ViYankPercent
ดึงเข้า/จากวงเล็บปีกกาที่ตรงกัน
- โหมดคำสั่ง Vi:
<y,%>
ViYankPreviousGlob
ดึงจากจุดเริ่มต้นของ WORD ไปจนถึงเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,B>
ViYankPreviousWord
ดึงคำที่อยู่หน้าเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,b>
วิยังค์ไรท์
ดึงอักขระไว้ข้างใต้และทางด้านขวาของเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,l>,<y,Spacebar>
ViYankToEndOfLine
ดึงจากเคอร์เซอร์ไปยังจุดสิ้นสุดของบัฟเฟอร์
- โหมดคำสั่ง Vi:
<y,$>
ViYankToFirstChar
ดึงจากอักขระที่ไม่ใช่ช่องว่างตัวแรกไปยังเคอร์เซอร์
- โหมดคำสั่ง Vi:
<y,^>
งัด
เพิ่มข้อความที่ถูกฆ่าล่าสุดลงในอินพุต
- โหมด Emacs:
Ctrl+y
YankLastArg
ดึงข้อโต้แย้งสุดท้ายจากบรรทัดประวัติก่อนหน้า เมื่อมีการเรียกใช้อาร์กิวเมนต์ครั้งแรก จะมีพฤติกรรมเหมือนกับ YankNthArg หากมีการเรียกใช้หลายครั้ง มันจะวนซ้ำตามประวัติและหาเรื่องจะกำหนดทิศทางแทน (ค่าลบจะกลับทิศทาง)
- โหมด Windows:
Alt+. - โหมด Emacs:
Alt+.,Alt+_,Escape,.,Escape,_
YankNthArg
ดึงอาร์กิวเมนต์แรก (หลังคำสั่ง) จากบรรทัดประวัติก่อนหน้า ด้วยอาร์กิวเมนต์ ให้ดึงอาร์กิวเมนต์ที่ n (เริ่มจาก 0) ถ้าอาร์กิวเมนต์เป็นลบ ให้เริ่มจากอาร์กิวเมนต์สุดท้าย
- โหมด Emacs:
Ctrl+Alt+y,Escape,Ctrl+y
YankPop
หากการดำเนินการก่อนหน้านี้คือ Yank หรือ YankPop ให้แทนที่ข้อความที่ถูกดึงก่อนหน้านี้ด้วยข้อความที่ถูกฆ่าถัดไปจาก kill-ring
- โหมด Emacs:
Alt+y,Escape,y
ฟังก์ชั่นการเสร็จสิ้น
สมบูรณ์
พยายามทำให้ข้อความที่อยู่รอบๆ เคอร์เซอร์สมบูรณ์ หากมีการดำเนินการที่เป็นไปได้หลายครั้ง ระบบจะใช้คำนำหน้าที่ชัดเจนที่ยาวที่สุดเพื่อทำให้เสร็จสมบูรณ์ หากพยายามทำให้สำเร็จโดยชัดเจนและยาวนานที่สุด รายการของความสำเร็จที่เป็นไปได้จะปรากฏขึ้น
- โหมด Emacs:
Tab
MenuComplete
พยายามทำให้ข้อความที่อยู่รอบๆ เคอร์เซอร์สมบูรณ์ หากมีการดำเนินการที่เป็นไปได้หลายครั้ง ระบบจะใช้คำนำหน้าที่ชัดเจนที่ยาวที่สุดเพื่อทำให้เสร็จสมบูรณ์ หากพยายามทำให้สำเร็จโดยชัดเจนและยาวนานที่สุด รายการของความสำเร็จที่เป็นไปได้จะปรากฏขึ้น
- โหมด Windows:
Ctrl+@,Ctrl+Spacebar - โหมด Emacs:
Ctrl+Spacebar
PossibleCompletions
แสดงรายการความสำเร็จที่เป็นไปได้
- โหมด Emacs:
Alt+= - โหมดแทรก Vi:
Ctrl+Spacebar - โหมดคำสั่ง Vi:
<Ctrl+Spacebar>
แท็บเสร็จสมบูรณ์ถัดไป
พยายามเติมข้อความรอบๆ เคอร์เซอร์ให้สมบูรณ์ด้วยข้อความถัดไปที่สามารถทำได้
- โหมด Windows:
แท็บ - โหมดคำสั่ง Vi:
<Tab>
แท็บเสร็จสมบูรณ์ก่อนหน้า
พยายามเติมข้อความที่อยู่รอบๆ เคอร์เซอร์ให้สมบูรณ์ด้วยข้อความที่มีอยู่ก่อนหน้านี้
- โหมด Windows:
Shift+Tab - โหมดคำสั่ง Vi:
<Shift+Tab>
ViTab เสร็จสมบูรณ์ถัดไป
สิ้นสุดกลุ่มแก้ไขปัจจุบัน หากจำเป็น และเรียกใช้ TabCompleteNext
- โหมดแทรก Vi:
Tab
ViTab เสร็จสมบูรณ์ก่อนหน้า
สิ้นสุดกลุ่มแก้ไขปัจจุบัน หากจำเป็น และเรียกใช้ TabCompletePrevious
- โหมดแทรก Vi:
Shift+Tab
ฟังก์ชั่นการเคลื่อนไหวของเคอร์เซอร์
BackwardChar
เลื่อนเคอร์เซอร์ไปทางซ้ายหนึ่งอักขระ นี่อาจเลื่อนเคอร์เซอร์ไปที่บรรทัดก่อนหน้าของอินพุตหลายบรรทัด
- โหมด Windows:
ลูกศรซ้าย - โหมด Emacs:
ลูกศรซ้าย,Ctrl+b
BackwardWord
เลื่อนเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำปัจจุบัน หรือหากอยู่ระหว่างคำ ให้เลื่อนเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำก่อนหน้า ขอบเขตของคำถูกกำหนดโดยชุดอักขระที่กำหนดค่าได้
- โหมด Windows:
Ctrl+ลูกศรซ้าย - โหมด Emacs:
Alt+b,Escape,b - โหมดแทรก Vi:
Ctrl+ลูกศรซ้าย - โหมดคำสั่ง Vi:
<Ctrl+LeftArrow>
อักขระที่กำหนดขอบเขตของคำได้รับการกำหนดค่าในคุณสมบัติ WordDelimiters ของวัตถุ PSConsoleReadLineOptions หากต้องการดูหรือเปลี่ยนแปลงคุณสมบัติ WordDelimiters โปรดดู Get-PSReadLineOption และ Set-PSReadLineOption
จุดเริ่มต้นของบรรทัด
หากอินพุตมีหลายบรรทัด ให้ย้ายไปยังจุดเริ่มต้นของบรรทัดปัจจุบัน หรือหากอยู่ที่จุดเริ่มต้นของบรรทัดแล้ว ให้ย้ายไปยังจุดเริ่มต้นของอินพุต หากอินพุตมีบรรทัดเดียว ให้ย้ายไปยังจุดเริ่มต้นของอินพุต
- โหมด Windows:
หน้าแรก - โหมด Emacs:
หน้าแรก,Ctrl+a - โหมดแทรก Vi:
หน้าแรก - โหมดคำสั่ง Vi:
<Home>
สิ้นสุดบรรทัด
หากอินพุตมีหลายบรรทัด ให้ย้ายไปยังจุดสิ้นสุดของบรรทัดปัจจุบัน หรือหากอยู่ที่ท้ายบรรทัดแล้ว ให้ย้ายไปยังจุดสิ้นสุดของอินพุต หากอินพุตมีบรรทัดเดียว ให้ย้ายไปยังจุดสิ้นสุดของอินพุต
- โหมด Windows:
สิ้นสุด - โหมด Emacs:
End,Ctrl+e - โหมดแทรก Vi:
End
ForwardChar
เลื่อนเคอร์เซอร์ไปทางขวาหนึ่งอักขระ นี่อาจเลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไปของอินพุตหลายบรรทัด
- โหมด Windows:
ลูกศรขวา - โหมด Emacs:
ลูกศรขวา,Ctrl+f
ForwardWord
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดสิ้นสุดของคำปัจจุบัน หรือหากอยู่ระหว่างคำ ให้เลื่อนไปยังจุดสิ้นสุดของคำถัดไป ขอบเขตของคำถูกกำหนดโดยชุดอักขระที่กำหนดค่าได้
- โหมด Emacs:
Alt+f,Escape,f
อักขระที่กำหนดขอบเขตของคำได้รับการกำหนดค่าในคุณสมบัติ WordDelimiters ของวัตถุ PSConsoleReadLineOptions หากต้องการดูหรือเปลี่ยนแปลงคุณสมบัติ WordDelimiters โปรดดู Get-PSReadLineOption และ Set-PSReadLineOption
GotoBrace
ไปที่วงเล็บปีกกา วงเล็บ หรือวงเล็บเหลี่ยมที่ตรงกัน
- โหมด Windows:
Ctrl+] - โหมดแทรก Vi:
Ctrl+] - โหมดคำสั่ง Vi:
<Ctrl+]>
GotoColumn
ย้ายไปยังคอลัมน์ที่ระบุโดยหาเรื่อง
- โหมดคำสั่ง Vi:
<|>
ไปที่FirstNonBlankOfLine
เลื่อนเคอร์เซอร์ไปที่อักขระตัวแรกที่ไม่เว้นว่างในบรรทัด
- โหมดคำสั่ง Vi:
<^>,<>
ย้ายไปที่EndOfLine
เลื่อนเคอร์เซอร์ไปที่ส่วนท้ายของอินพุต
- โหมดคำสั่ง Vi:
<End>,<$>
MoveToFirstLine
ไปที่บรรทัดแรกในคำสั่งหลายบรรทัด
- โหมดคำสั่ง Vi:
<g,g>
MoveToLastLine
ไปที่บรรทัดสุดท้ายในคำสั่งหลายบรรทัด
- โหมดคำสั่ง Vi:
<G>
NextLine
เลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไป
- ฟังก์ชั่นไม่มีขอบเขต
NextWord
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดเริ่มต้นของคำถัดไป ขอบเขตของคำถูกกำหนดโดยชุดอักขระที่กำหนดค่าได้
- โหมด Windows:
Ctrl+ลูกศรขวา - โหมดแทรก Vi:
Ctrl+ลูกศรขวา - โหมดคำสั่ง Vi:
<Ctrl+RightArrow>
อักขระที่กำหนดขอบเขตของคำได้รับการกำหนดค่าในคุณสมบัติ WordDelimiters ของวัตถุ PSConsoleReadLineOptions หากต้องการดูหรือเปลี่ยนแปลงคุณสมบัติ WordDelimiters โปรดดู Get-PSReadLineOption และ Set-PSReadLineOption
ถัดไปคำสิ้นสุด
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดสิ้นสุดของคำปัจจุบัน หรือหากอยู่ระหว่างคำ ให้เลื่อนไปยังจุดสิ้นสุดของคำถัดไป ขอบเขตของคำถูกกำหนดโดยชุดอักขระที่กำหนดค่าได้
- โหมดคำสั่ง Vi:
<e>
อักขระที่กำหนดขอบเขตของคำได้รับการกำหนดค่าในคุณสมบัติ WordDelimiters ของวัตถุ PSConsoleReadLineOptions หากต้องการดูหรือเปลี่ยนแปลงคุณสมบัติ WordDelimiters โปรดดู Get-PSReadLineOption และ Set-PSReadLineOption
PreviousLine
เลื่อนเคอร์เซอร์ไปที่บรรทัดก่อนหน้า
- ฟังก์ชั่นไม่มีขอบเขต
เชลล์BackwardWord
เลื่อนเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำปัจจุบัน หรือหากอยู่ระหว่างคำ ให้เลื่อนเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำก่อนหน้า ขอบเขตของ Word ถูกกำหนดโดยโทเค็น PowerShell
- ฟังก์ชั่นไม่มีขอบเขต
เชลล์ฟอร์เวิร์ดเวิร์ด
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดเริ่มต้นของคำถัดไป ขอบเขตของ Word ถูกกำหนดโดยโทเค็น PowerShell
- ฟังก์ชั่นไม่มีขอบเขต
เชลล์เน็กซ์เวิร์ด
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดสิ้นสุดของคำปัจจุบัน หรือหากอยู่ระหว่างคำ ให้เลื่อนไปยังจุดสิ้นสุดของคำถัดไป ขอบเขตของ Word ถูกกำหนดโดยโทเค็น PowerShell
- ฟังก์ชั่นไม่มีขอบเขต
ViBackwardChar
เลื่อนเคอร์เซอร์ไปทางซ้ายหนึ่งอักขระในโหมดแก้ไข Vi นี่อาจเลื่อนเคอร์เซอร์ไปที่บรรทัดก่อนหน้าของอินพุตหลายบรรทัด
- โหมดแทรก Vi:
ลูกศรซ้าย - โหมดคำสั่ง Vi:
<LeftArrow>,<Backspace>,<h>
ViBackwardWord
เลื่อนเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำปัจจุบัน หรือหากอยู่ระหว่างคำ ให้เลื่อนเคอร์เซอร์กลับไปที่จุดเริ่มต้นของคำก่อนหน้า ขอบเขตของคำถูกกำหนดโดยชุดอักขระที่กำหนดค่าได้
- โหมดคำสั่ง Vi:
<b>
อักขระที่กำหนดขอบเขตของคำได้รับการกำหนดค่าในคุณสมบัติ WordDelimiters ของวัตถุ PSConsoleReadLineOptions หากต้องการดูหรือเปลี่ยนแปลงคุณสมบัติ WordDelimiters โปรดดู Get-PSReadLineOption และ Set-PSReadLineOption
ViEndOfGlob
เลื่อนเคอร์เซอร์ไปที่ท้ายคำนี้ โดยคั่นด้วยช่องว่าง
- โหมดคำสั่ง Vi:
<E>
ViEndOfPreviousGlob
ย้ายไปยังจุดสิ้นสุดของคำก่อนหน้า โดยใช้เพียงช่องว่างเป็นตัวคั่นคำ
- ฟังก์ชั่นไม่มีขอบเขต
ViForwardChar
เลื่อนเคอร์เซอร์ไปทางขวาหนึ่งอักขระในโหมดแก้ไข Vi นี่อาจเลื่อนเคอร์เซอร์ไปที่บรรทัดถัดไปของอินพุตหลายบรรทัด
- โหมดแทรก Vi:
ลูกศรขวา - โหมดคำสั่ง Vi:
<RightArrow>,<Spacebar>,<l>
ViGotoBrace
คล้ายกับ GotoBrace แต่เป็นแบบอักขระแทนที่จะเป็นแบบโทเค็น
- โหมดคำสั่ง Vi:
<%>
ViNextGlob
ย้ายไปยังคำถัดไป โดยใช้เพียงช่องว่างเป็นตัวคั่นคำ
- โหมดคำสั่ง Vi:
<W>
ViNextWord
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดเริ่มต้นของคำถัดไป ขอบเขตของคำถูกกำหนดโดยชุดอักขระที่กำหนดค่าได้
- โหมดคำสั่ง Vi:
<w>
อักขระที่กำหนดขอบเขตของคำได้รับการกำหนดค่าในคุณสมบัติ WordDelimiters ของวัตถุ PSConsoleReadLineOptions หากต้องการดูหรือเปลี่ยนแปลงคุณสมบัติ WordDelimiters โปรดดู Get-PSReadLineOption และ Set-PSReadLineOption
ฟังก์ชั่นประวัติศาสตร์
จุดเริ่มต้นของประวัติศาสตร์
ย้ายไปยังรายการแรกในประวัติศาสตร์
- โหมด Emacs:
Alt+<
ClearHistory
ล้างประวัติใน PSReadLine สิ่งนี้ไม่ส่งผลกระทบต่อประวัติ PowerShell
- โหมด Windows:
Alt+F7
จุดสิ้นสุดของประวัติศาสตร์
ย้ายไปยังรายการสุดท้าย (อินพุตปัจจุบัน) ในประวัติ
- โหมด Emacs:
Alt+>
ประวัติการค้นหาไปข้างหน้า
ทำการค้นหาล่วงหน้าแบบค่อยเป็นค่อยไปผ่านประวัติศาสตร์
- โหมด Windows:
Ctrl+s - โหมด Emacs:
Ctrl+s - โหมดแทรก Vi:
Ctrl+s - โหมดคำสั่ง Vi:
<Ctrl+s>
ประวัติศาสตร์ค้นหาย้อนหลัง
แทนที่อินพุตปัจจุบันด้วยรายการ 'ก่อนหน้า' จากประวัติ PSReadLine ที่ตรงกับอักขระระหว่างจุดเริ่มต้นและอินพุตและเคอร์เซอร์
- โหมด Windows: <รหัส>F8
ประวัติศาสตร์ค้นหาไปข้างหน้า
แทนที่อินพุตปัจจุบันด้วยรายการ 'ถัดไป' จากประวัติ PSReadLine ที่ตรงกับอักขระระหว่างจุดเริ่มต้นและอินพุตและเคอร์เซอร์
- โหมด Windows:
Shift+F8
NextHistory
แทนที่อินพุตปัจจุบันด้วยรายการ 'ถัดไป' จากประวัติ PSReadLine
- โหมด Windows:
DownArrow - โหมด Emacs:
DownArrow,Ctrl+n - โหมดแทรก Vi:
DownArrow - โหมดคำสั่ง Vi:
<DownArrow>,<j>,<+>
PreviousHistory
แทนที่อินพุตปัจจุบันด้วยรายการ 'ก่อนหน้า' จากประวัติ PSReadLine
- โหมด Windows:
UpArrow - โหมด Emacs:
UpArrow,Ctrl+p - โหมดแทรก Vi:
UpArrow - โหมดคำสั่ง Vi:
<UpArrow>,<k>,<->
ประวัติการค้นหาแบบย้อนกลับ
ทำการค้นหาย้อนหลังแบบค่อยเป็นค่อยไปผ่านประวัติศาสตร์
- โหมด Windows:
Ctrl+r - โหมด Emacs:
Ctrl+r - โหมดแทรก Vi:
Ctrl+r - โหมดคำสั่ง Vi:
<Ctrl+r>
ViSearchHistoryย้อนหลัง
พร้อมต์สำหรับสตริงการค้นหาและเริ่มการค้นหาตาม AcceptLine
- โหมดคำสั่ง Vi:
</>
ฟังก์ชั่นเบ็ดเตล็ด
CaptureScreen
เริ่มการจับภาพหน้าจอแบบโต้ตอบ - ลูกศรขึ้น/ลงเลือกบรรทัด ป้อนคัดลอกข้อความที่เลือกไปยังคลิปบอร์ดเป็นข้อความและ HTML
- ฟังก์ชั่นไม่มีขอบเขต
ClearScreen
ล้างหน้าจอและวาดเส้นปัจจุบันที่ด้านบนของหน้าจอ
- โหมด Windows:
Ctrl+l - โหมด Emacs:
Ctrl+l - โหมดแทรก Vi:
Ctrl+l - โหมดคำสั่ง Vi:
<Ctrl+l>
DigitArgument
เริ่มอาร์กิวเมนต์หลักใหม่เพื่อส่งผ่านไปยังฟังก์ชันอื่นๆ คุณสามารถใช้สิ่งนี้เป็นตัวคูณสำหรับฟังก์ชันถัดไปที่ถูกเรียกใช้โดยการกดปุ่ม ตัวอย่างเช่น การกด <Alt+1> <Alt+0> จะตั้งค่า digit-argument เป็น 10 จากนั้นให้กด # คีย์ส่งอักขระ # จำนวน 10 ตัว (##########) ไปยังบรรทัดอินพุต ในทำนองเดียวกัน คุณสามารถใช้สิ่งนี้กับการดำเนินการอื่นๆ เช่น <Delete> หรือ Left-Arrow
- โหมด Windows:
Alt+0,Alt+1,Alt+2,Alt+3,Alt+4,Alt+5,Alt+6,Alt+7,Alt+8, <รหัส>Alt+9,Alt+- - โหมด Emacs:
Alt+0,Alt+1,Alt+2,Alt+3,Alt+4,Alt+5,Alt+6,Alt+7,Alt+8, <รหัส>Alt+9,Alt+- - โหมดคำสั่ง Vi:
<0>,<1>,<2>,<3>,<4>, <รหัส><5>, <รหัส><6>, <รหัส><7>, <รหัส><8>, <รหัส><9>
InvokePrompt
ลบพรอมต์ปัจจุบันและเรียกใช้ฟังก์ชันพร้อมต์เพื่อแสดงพรอมต์อีกครั้ง มีประโยชน์สำหรับตัวจัดการคีย์แบบกำหนดเองที่เปลี่ยนสถานะ ตัวอย่างเช่น เปลี่ยนไดเร็กทอรีปัจจุบัน
- ฟังก์ชั่นไม่มีขอบเขต
เลื่อนการแสดงผลลง
เลื่อนการแสดงผลลงหนึ่งหน้าจอ
- โหมด Windows:
PageDown - โหมด Emacs:
PageDown
เลื่อนแสดงDownLine
เลื่อนหน้าจอลงหนึ่งบรรทัด
- โหมด Windows:
Ctrl+PageDown - โหมด Emacs:
Ctrl+PageDown
ScrollDisplayToCursor
เลื่อนการแสดงผลไปที่เคอร์เซอร์
- โหมด Emacs:
Ctrl+End
ScrollDisplayTop
เลื่อนการแสดงผลไปด้านบน
- โหมด Emacs:
Ctrl+Home
เลื่อนการแสดงผลขึ้น
เลื่อนการแสดงผลขึ้นหนึ่งหน้าจอ
- โหมด Windows:
PageUp - โหมด Emacs:
PageUp
ScrollDisplayUpLine
เลื่อนการแสดงผลขึ้นหนึ่งบรรทัด
- โหมด Windows:
Ctrl+PageUp - โหมด Emacs:
Ctrl+PageUp
แสดงคำสั่งช่วยเหลือ
แสดงมุมมองของวิธีใช้ cmdlet แบบเต็ม เมื่อเคอร์เซอร์อยู่ที่ส่วนท้ายของพารามิเตอร์ที่ขยายจนสุด การกดปุ่ม <F1> จะทำให้การแสดงความช่วยเหลืออยู่ที่ตำแหน่งของพารามิเตอร์นั้น
วิธีใช้จะแสดงบนบัฟเฟอร์หน้าจอสำรองโดยใช้เพจเจอร์จาก Microsoft.PowerShell.Pager เมื่อคุณออกจากเพจเจอร์ คุณจะกลับสู่ตำแหน่งเคอร์เซอร์เดิมบนหน้าจอเดิม เพจเจอร์นี้ใช้งานได้เฉพาะในแอปพลิเคชันเทอร์มินัลสมัยใหม่ เช่น Windows Terminal
- โหมด Windows: <รหัส>F1
- โหมด Emacs:
F1 - โหมดแทรก Vi:
F1 - โหมดคำสั่ง Vi:
<F1>
ShowKeyBindings
แสดงคีย์ที่ถูกผูกไว้ทั้งหมด
- โหมด Windows:
Ctrl+Alt+? - โหมด Emacs:
Ctrl+Alt+? - โหมดแทรก Vi:
Ctrl+Alt+?
แสดงความช่วยเหลือพารามิเตอร์
ให้ความช่วยเหลือแบบไดนามิกสำหรับพารามิเตอร์โดยแสดงไว้ใต้บรรทัดคำสั่งปัจจุบัน เช่น MenuComplete เคอร์เซอร์ต้องอยู่ที่ส่วนท้ายของชื่อพารามิเตอร์ที่ขยายเต็มเมื่อคุณกดปุ่ม <Alt+h>
- โหมด Windows:
Alt+h - โหมด Emacs:
Alt+h - โหมดแทรก Vi:
Alt+h - โหมดคำสั่ง Vi:
<Alt+h>
ViCommandMode
สลับโหมดการทำงานปัจจุบันจาก Vi-Insert เป็น Vi-Command
- โหมดแทรก Vi:
Escape
ViDigitArgumentInChord
เริ่มอาร์กิวเมนต์หลักใหม่เพื่อส่งผ่านไปยังฟังก์ชันอื่นในขณะที่อยู่ในคอร์ดใดคอร์ดหนึ่งของ vi
- ฟังก์ชั่นไม่มีขอบเขต
ViEdit มองเห็นได้
แก้ไขบรรทัดคำสั่งในตัวแก้ไขข้อความที่ระบุโดย $env:EDITOR หรือ $env:VISUAL
- โหมด Emacs:
Ctrl+x,Ctrl+e - โหมดคำสั่ง Vi:
<v>
ViExit
ออกจากเชลล์
- ฟังก์ชั่นไม่มีขอบเขต
ViInsertMode
สลับไปที่โหมดแทรก
- โหมดคำสั่ง Vi:
<i>
อะไรคือคีย์
อ่านคีย์แล้วบอกฉันว่าคีย์นั้นผูกไว้กับอะไร
- โหมด Windows:
Alt+? - โหมด Emacs:
Alt+?
ฟังก์ชั่นการทำนาย
ยอมรับถัดไปข้อเสนอแนะ
ยอมรับคำถัดไปของคำแนะนำแบบอินไลน์หรือคำแนะนำที่เลือก
- ฟังก์ชั่นไม่มีขอบเขต
AcceptSuggestion
เมื่อใช้ InlineView เป็นรูปแบบมุมมองสำหรับการคาดคะเน ให้ยอมรับคำแนะนำแบบอินไลน์ปัจจุบัน
- ฟังก์ชั่นไม่มีขอบเขต
NextSuggestion
เมื่อใช้ ListView เป็นรูปแบบมุมมองสำหรับการคาดคะเน ให้ไปที่คำแนะนำถัดไปในรายการ
- ฟังก์ชั่นไม่มีขอบเขต
PreviousSuggestion
เมื่อใช้ ListView เป็นรูปแบบมุมมองสำหรับการคาดคะเน ให้ไปที่คำแนะนำก่อนหน้าในรายการ
- ฟังก์ชั่นไม่มีขอบเขต
เคล็ดลับเครื่องมือ ShowFullPrediction
แสดงคำแนะนำเครื่องมือของรายการที่เลือกในปัจจุบันในมุมมองแบบเต็ม
- โหมด Windows: <รหัส>F4
- โหมด Emacs:
F4 - โหมดแทรก Vi:
F4
SwitchPredictionView
สลับรูปแบบมุมมองสำหรับการคาดคะเนระหว่าง InlineView และ ListView
- โหมด Windows: <รหัส>F2
- โหมด Emacs:
F2 - โหมดแทรก Vi:
F2
ฟังก์ชั่นการค้นหา
CharacterSearch
อ่านอักขระและค้นหาการปรากฏครั้งถัดไปของอักขระนั้น หากมีการระบุอาร์กิวเมนต์ ให้ค้นหาไปข้างหน้า (หรือย้อนกลับหากเป็นค่าลบ) สำหรับเหตุการณ์ที่ n
- โหมด Windows: <รหัส>F3
- โหมด Emacs:
Ctrl+] - โหมดแทรก Vi:
F3 - โหมดคำสั่ง Vi:
<F3>
ค้นหาตัวละครย้อนหลัง
อ่านอักขระและค้นหาย้อนหลังเพื่อดูอักขระตัวนั้นที่ปรากฏครั้งถัดไป หากมีการระบุอาร์กิวเมนต์ ให้ค้นหาย้อนหลัง (หรือส่งต่อหากเป็นค่าลบ) สำหรับเหตุการณ์ที่ n
- โหมด Windows:
Shift+F3 - โหมด Emacs:
Ctrl+Alt+] - โหมดแทรก Vi:
Shift+F3 - โหมดคำสั่ง Vi:
<Shift+F3>
ทำซ้ำ LastCharSearch
ทำซ้ำการค้นหาตัวอักษรที่บันทึกไว้ล่าสุด
- โหมดคำสั่ง Vi:
<;>
ทำซ้ำLastCharSearchBackwards
ทำซ้ำการค้นหาอักขระที่บันทึกไว้ล่าสุด แต่ในทิศทางตรงกันข้าม
- โหมดคำสั่ง Vi:
<,>
RepeatSearch
ทำซ้ำการค้นหาครั้งสุดท้ายในทิศทางเดิมเหมือนเมื่อก่อน
- โหมดคำสั่ง Vi:
<n>
ทำซ้ำการค้นหาย้อนกลับ
ทำซ้ำการค้นหาครั้งสุดท้ายในทิศทางเดิมเหมือนเมื่อก่อน
- โหมดคำสั่ง Vi:
<N>
SearchChar
อ่านตัวละครถัดไปแล้วค้นหามันไปข้างหน้า
- โหมดคำสั่ง Vi:
<f>
ค้นหาCharย้อนกลับ
อ่านตัวอักษรถัดไปแล้วค้นหาโดยย้อนกลับ
- โหมดคำสั่ง Vi:
<F>
ค้นหาCharBackwardWithBackoff
อ่านอักขระถัดไปแล้วค้นหา ย้อนกลับ และถอยออกจากอักขระ
- โหมดคำสั่ง Vi:
<T>
ค้นหา CharWithBackoff
อ่านตัวละครถัดไปแล้วค้นหา เดินหน้า จากนั้นถอยออกจากตัวละคร
- โหมดคำสั่ง Vi:
<t>
SearchForward
พร้อมต์สำหรับสตริงการค้นหาและเริ่มการค้นหาตาม AcceptLine
- โหมดคำสั่ง Vi:
<?>
ฟังก์ชั่นการเลือก
ExchangePointAndMark
เคอร์เซอร์วางอยู่ที่ตำแหน่งของเครื่องหมาย และเครื่องหมายถูกย้ายไปยังตำแหน่งของเคอร์เซอร์
- โหมด Emacs:
Ctrl+x,Ctrl+x
SelectAll
เลือกทั้งบรรทัด
- โหมด Windows:
Ctrl+a
เลือกBackwardChar
ปรับการเลือกปัจจุบันเพื่อรวมอักขระก่อนหน้า
- โหมด Windows:
Shift+ลูกศรซ้าย - โหมด Emacs:
Shift+ลูกศรซ้าย
เลือกย้อนกลับเส้น
ปรับการเลือกปัจจุบันเพื่อรวมตั้งแต่เคอร์เซอร์จนถึงจุดเริ่มต้นของบรรทัด
- โหมด Windows:
Shift+Home - โหมด Emacs:
Shift+Home
เลือกBackwardWord
ปรับการเลือกปัจจุบันเพื่อรวมคำก่อนหน้า
- โหมด Windows:
Shift+Ctrl+ลูกศรซ้าย - โหมด Emacs:
Alt+B
เลือกCommandArgument
ทำการเลือกอาร์กิวเมนต์คำสั่งด้วยภาพ การเลือกข้อโต้แย้งมีขอบเขตอยู่ภายในบล็อกสคริปต์ ขึ้นอยู่กับตำแหน่งเคอร์เซอร์ ค้นหาจากบล็อกสคริปต์ด้านในสุดไปยังบล็อกสคริปต์ด้านนอกสุด และหยุดเมื่อพบข้อโต้แย้งใดๆ ในขอบเขตบล็อกสคริปต์
ฟังก์ชันนี้ให้เกียรติ DigitArgument โดยถือว่าค่าอาร์กิวเมนต์บวกหรือลบเป็นออฟเซ็ตไปข้างหน้าหรือข้างหลังจากอาร์กิวเมนต์ที่เลือกในปัจจุบัน หรือจากตำแหน่งเคอร์เซอร์ปัจจุบันเมื่อไม่ได้เลือกอาร์กิวเมนต์
- โหมด Windows:
Alt+a - โหมด Emacs:
Alt+a
เลือกส่งต่อChar
ปรับการเลือกปัจจุบันเพื่อรวมอักขระถัดไป
- โหมด Windows:
Shift+ลูกศรขวา - โหมด Emacs:
Shift+ลูกศรขวา
เลือกไปข้างหน้าWord
ปรับการเลือกปัจจุบันเพื่อรวมคำถัดไปโดยใช้ ForwardWord
- โหมด Emacs:
Alt+F
SelectLine
ปรับการเลือกปัจจุบันเพื่อรวมตั้งแต่เคอร์เซอร์จนถึงท้ายบรรทัด
- โหมด Windows:
Shift+End - โหมด Emacs:
Shift+End
เลือกNextWord
ปรับการเลือกปัจจุบันเพื่อรวมคำถัดไป
- โหมด Windows:
Shift+Ctrl+ลูกศรขวา
เลือกShellBackwardWord
ปรับการเลือกปัจจุบันเพื่อรวมคำก่อนหน้าโดยใช้ ShellBackwardWord
- ฟังก์ชั่นไม่มีขอบเขต
เลือกShellForwardWord
ปรับการเลือกปัจจุบันเพื่อรวมคำถัดไปโดยใช้ ShellForwardWord
- ฟังก์ชั่นไม่มีขอบเขต
เลือกShellNextWord
ปรับการเลือกปัจจุบันเพื่อรวมคำถัดไปโดยใช้ ShellNextWord
- ฟังก์ชั่นไม่มีขอบเขต
SetMark
ทำเครื่องหมายตำแหน่งปัจจุบันของเคอร์เซอร์เพื่อใช้ในคำสั่งแก้ไขที่ตามมา
- โหมด Emacs:
Ctrl+@
API การสนับสนุนการผูกคีย์แบบกำหนดเอง
ฟังก์ชันต่อไปนี้เป็นแบบสาธารณะใน Microsoft.PowerShell.PSConsoleReadLine แต่ไม่สามารถผูกเข้ากับคีย์ได้โดยตรง ส่วนใหญ่มีประโยชน์ในการผูกคีย์แบบกำหนดเอง
void AddToHistory(string command)
เพิ่มบรรทัดคำสั่งลงในประวัติโดยไม่ต้องดำเนินการ
void ClearKillRing()
เคลียร์วงแหวนสังหาร ส่วนใหญ่จะใช้สำหรับการทดสอบ
void Delete(int start, int length)
ลบอักขระความยาวตั้งแต่เริ่มต้น การดำเนินการนี้รองรับการเลิกทำ/ทำซ้ำ
void Ding()
ดำเนินการ Ding ตามความต้องการของผู้ใช้
void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
[ref] ParseError[] parseErrors, [ref] int cursor)
ฟังก์ชันทั้งสองนี้ดึงข้อมูลที่เป็นประโยชน์เกี่ยวกับสถานะปัจจุบันของบัฟเฟอร์อินพุต แบบแรกมักใช้กับกรณีธรรมดามากกว่า ส่วนที่สองจะใช้หากการเชื่อมโยงของคุณกำลังทำสิ่งที่ก้าวหน้ากว่าด้วย Ast
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(string[] Chord)
ฟังก์ชันทั้งสองนี้ถูกใช้โดย Get-PSReadLineKeyHandler อันแรกใช้เพื่อรับการเชื่อมโยงคีย์ทั้งหมด ส่วนที่สองใช้เพื่อรับการเชื่อมโยงคีย์เฉพาะ
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
ฟังก์ชันนี้ใช้โดย Get-PSReadLineOption และอาจไม่มีประโยชน์มากนักในการผูกคีย์แบบกำหนดเอง
void GetSelectionState([ref] int start, [ref] int length)
หากไม่มีการเลือกบนบรรทัดคำสั่ง ฟังก์ชันจะส่งกลับ -1 ทั้งในจุดเริ่มต้นและความยาว หากมีการเลือกบนบรรทัดคำสั่ง ระบบจะส่งคืนจุดเริ่มต้นและความยาวของการเลือก
void Insert(char c)
void Insert(string s)
แทรกอักขระหรือสตริงที่เคอร์เซอร์ การดำเนินการนี้รองรับการเลิกทำ/ทำซ้ำ
string ReadLine(runspace remoteRunspace,
System.Management.Automation.EngineIntrinsics engineIntrinsics)
นี่คือจุดเริ่มต้นหลักของ PSReadLine ไม่รองรับการเรียกซ้ำ จึงไม่มีประโยชน์ในการผูกคีย์แบบกำหนดเอง
void RemoveKeyHandler(string[] key)
ฟังก์ชันนี้ถูกใช้โดย Remove-PSReadLineKeyHandler และอาจไม่มีประโยชน์มากนักในการผูกคีย์แบบกำหนดเอง
void Replace(int start, int length, string replacement)
แทนที่อินพุตบางส่วน การดำเนินการนี้รองรับการเลิกทำ/ทำซ้ำ ควรใช้วิธีนี้มากกว่า Delete ตามด้วย Insert เนื่องจากจะถือเป็นการดำเนินการเดียวในการเลิกทำ
void SetCursorPosition(int cursor)
เลื่อนเคอร์เซอร์ไปที่ออฟเซ็ตที่กำหนด การเคลื่อนไหวของเคอร์เซอร์ไม่ได้รับการติดตามเพื่อเลิกทำ
void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)
ฟังก์ชันนี้เป็นวิธีการช่วยเหลือที่ใช้โดย cmdlet Set-PSReadLineOption แต่อาจมีประโยชน์สำหรับการผูกคีย์แบบกำหนดเองที่ต้องการเปลี่ยนการตั้งค่าชั่วคราว
bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
int defaultNumericArg)
วิธีการช่วยเหลือนี้ใช้สำหรับการเชื่อมโยงแบบกำหนดเองที่ให้เกียรติ DigitArgument การโทรทั่วไปดูเหมือนว่า
[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
[ref]$numericArg, 1)
หมายเหตุ
ลักษณะการทำงานของเหตุการณ์ OnIdle
เมื่อมีการใช้งาน PSReadLine เหตุการณ์ OnIdle จะเริ่มทำงานเมื่อ
ReadKey()หมดเวลา (ไม่ต้องพิมพ์ใน 300ms) เหตุการณ์สามารถส่งสัญญาณได้ในขณะที่ผู้ใช้อยู่ระหว่างการแก้ไขบรรทัดคำสั่ง ตัวอย่างเช่น ผู้ใช้กำลังอ่านวิธีใช้เพื่อตัดสินใจว่าจะใช้พารามิเตอร์ใดเริ่มต้นใน PSReadLine 2.2.0-beta4 ลักษณะการทำงาน OnIdle เปลี่ยนไปเพื่อส่งสัญญาณเหตุการณ์เฉพาะเมื่อมีการหมดเวลา
ReadKey()และบัฟเฟอร์การแก้ไขปัจจุบันว่างเปล่า
ดูเพิ่มเติม
- about_PSReadLine