มีเหตุผลทางประวัติศาสตร์ที่เฉพาะเจาะจงสำหรับสิ่งนี้หรือไม่?
ความเป็นมา - (คุณสามารถข้ามส่วนนี้ได้หากคุณเข้าใจคำถามนี้ไปแล้ว)
ในฐานะที่เป็นสื่อกลาง / ขั้นสูงviผู้ใช้จะรู้ว่าyคือ "งัดคำสั่ง" มัน yanks (สำเนา) ข้อความที่ระบุโดยคำสั่งการเคลื่อนไหวต่อไป. * ดังนั้นyeyanks ไปยังจุดสิ้นสุดของคำ, y0yanks จากตำแหน่งเคอร์เซอร์ไปยังจุดเริ่มต้นของบรรทัดy_ดึงเส้นปัจจุบันทั้งหมดy$ออกจากตำแหน่งเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัดปัจจุบันเป็นต้น
dคำสั่ง (ลบ) และcคำสั่ง (เปลี่ยนแปลง) ทั้งสองจะสามารถนำมาใช้กับทุกการเคลื่อนไหวเหล่านี้เช่นกัน
ddเป็นคำพ้องสำหรับd_และลบบรรทัดปัจจุบันทั้งหมด ในทำนองเดียวกันccก็เป็นคำพ้องความหมายสำหรับc_และจะเปลี่ยนบรรทัดปัจจุบัน (เช่นมันจะลบข้อความทั้งหมดและทำให้คุณอยู่ในโหมดแทรกที่จุดเริ่มต้นของบรรทัด). **
คำสั่ง "กระชาก" เป็นไปตามอนุสัญญานี้ จะงัดบรรทัดปัจจุบันทั้งหมดเช่นเดียวกับyyy_
มีอีกหนึ่งชุดของคำพ้องความหมาย: Dเป็นคำพ้องความหมายสำหรับd$และจะลบจากตำแหน่งเคอร์เซอร์ไปยังจุดสิ้นสุดของบรรทัด Cเป็นคำพ้องความหมายc$และจะเปลี่ยนข้อความจากตำแหน่งเคอร์เซอร์เป็นจุดสิ้นสุดของบรรทัดวางคุณในโหมดแทรกเพื่อพิมพ์ข้อความใหม่
อย่างไรก็ตามYเป็นคำพ้องความหมายอื่นสำหรับyyหรือy_และจะดึงทั้งบรรทัดไม่ใช่เฉพาะจากเคอร์เซอร์จนถึงท้ายบรรทัดตามที่คุณคาดหวังจากCและDรูปแบบ
ฉันเข้าใจว่าใน Vim มันถูกเก็บไว้เป็นวิธีนี้เพื่อรักษาความเข้ากันได้ย้อนหลังกับviตามที่กล่าวไว้ในความช่วยเหลือ Vim ภายใต้:help Y:
หากคุณต้องการให้ "Y" ทำงานจากเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัด (ซึ่งมีเหตุผลมากกว่า แต่ไม่รองรับ Vi) ให้ใช้ ": map Y y $"
viดังนั้นนี่คือสิ่งที่หลงเหลือมาจาก ละเอียด.
แต่ทำไมคำสั่งจึงออกแบบมาตั้งแต่แรก? มีเหตุผลอะไรกับมันบ้างไหม?
* โดยเฉพาะมันจะวางข้อความใน register 0 และชี้ไปยัง register ที่ไม่มีชื่อที่ register 0
** ถึงแม้ว่ามันไม่ได้เกี่ยวข้องกับคำถามของฉันSเป็นคำพ้องอีกหรือccc_