มีเหตุผลทางประวัติศาสตร์ที่เฉพาะเจาะจงสำหรับสิ่งนี้หรือไม่?
ความเป็นมา - (คุณสามารถข้ามส่วนนี้ได้หากคุณเข้าใจคำถามนี้ไปแล้ว)
ในฐานะที่เป็นสื่อกลาง / ขั้นสูงvi
ผู้ใช้จะรู้ว่าy
คือ "งัดคำสั่ง" มัน yanks (สำเนา) ข้อความที่ระบุโดยคำสั่งการเคลื่อนไหวต่อไป. * ดังนั้นye
yanks ไปยังจุดสิ้นสุดของคำ, y0
yanks จากตำแหน่งเคอร์เซอร์ไปยังจุดเริ่มต้นของบรรทัดy_
ดึงเส้นปัจจุบันทั้งหมดy$
ออกจากตำแหน่งเคอร์เซอร์จนถึงจุดสิ้นสุดของบรรทัดปัจจุบันเป็นต้น
d
คำสั่ง (ลบ) และc
คำสั่ง (เปลี่ยนแปลง) ทั้งสองจะสามารถนำมาใช้กับทุกการเคลื่อนไหวเหล่านี้เช่นกัน
dd
เป็นคำพ้องสำหรับd_
และลบบรรทัดปัจจุบันทั้งหมด ในทำนองเดียวกันcc
ก็เป็นคำพ้องความหมายสำหรับc_
และจะเปลี่ยนบรรทัดปัจจุบัน (เช่นมันจะลบข้อความทั้งหมดและทำให้คุณอยู่ในโหมดแทรกที่จุดเริ่มต้นของบรรทัด). **
คำสั่ง "กระชาก" เป็นไปตามอนุสัญญานี้ จะงัดบรรทัดปัจจุบันทั้งหมดเช่นเดียวกับyy
y_
มีอีกหนึ่งชุดของคำพ้องความหมาย: 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
เป็นคำพ้องอีกหรือcc
c_