ทำไม Y จึงเป็นคำพ้องความหมายสำหรับ yy แทนที่จะเป็น y $
มีเหตุผลทางประวัติศาสตร์ที่เฉพาะเจาะจงสำหรับสิ่งนี้หรือไม่? ความเป็นมา - (คุณสามารถข้ามส่วนนี้ได้หากคุณเข้าใจคำถามนี้ไปแล้ว) ในฐานะที่เป็นสื่อกลาง / ขั้นสูง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 …