是否有特定的历史原因?
背景 -(如果您已经理解了这个问题,则可以跳过此部分。)
作为中级/高级vi用户会知道,y是在“抽出”命令它猛拉(份)由下面的移动命令指定的文本。*因此ye猛拉到字的结束时,y0从光标位置猛拉到行的开始,y_拖动整个当前行,y$从光标位置拖动到当前行的末尾,依此类推。
的d(删除)命令和c(变化)命令都可以与所有这些运动的被使用。
dd是的同义词,d_并删除整个当前行。同样,cc是的同义词c_,并将更改当前行(即它将删除所有文本,并在行的开头将您置于插入模式)。**
“ yank”命令遵循此约定;yy会像一样拉动整个当前行y_。
还有另一组同义词:D是的同义词,d$将从光标位置到行尾将其删除。  C是的同义词c$,它将文本从光标位置更改到行尾,使您进入插入模式以键入新文本。
但是,Y是或的另一个同义词,它将使整行yyy_(而不是象从Cand D模式中所期望的那样)从光标移至行的结尾。
我了解在Vim中一直保持这种方式来保持与向后的兼容性vi,如Vim帮助中所述:help Y:
如果您希望“ Y”从光标到行尾(更合逻辑,但不兼容Vi),请使用“:map Y y $”。
因此,这是来自的延期vi。精细。
但是,为什么命令最初是这样设计的?有没有逻辑呢?
*具体来说,它将文本放置在寄存器0中,并将未命名的寄存器指向寄存器0。
**尽管这不是有关我的问题,S是另一个同义词cc或c_。