ค้นหาเว็บไซต์

เกี่ยวกับฟังก์ชัน 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

บทความที่เกี่ยวข้อง