开发者

Why does Y do the same thing as yy?

I've been using vim for several months now and I've gotten used to using C and D to change and delete everything from the cursor to the end of the line.

Consider the line below where the cursor is on the 'b' in 'bar':

foo.bar("hello world")

Hitting D at this point will yield:

foo.

While hitting C will do the same plus start insert mode with the cursor after the period.

However, pressing Y doesn't do the intuitively similar thing (copying everything from the cursor to the end of the line). Instead, it copies the entire line (just like yy).

How do I make 开发者_如何学编程Y copy the characters from the cursor to the end of the line instead of copying the entire line like yy?


From this configuration:

" make Y effect to end of line instead of whole line
map Y y$

I suspect the default behaviour is simply due to some historical inconsistency.


nmap Y y$

Does that do what you want?

EDIT

The reason why Y does the same thing as yy probably has something to do with this:

{Visual}["x]y           Yank the highlighted text [into register x] (for
                        {Visual} see |Visual-mode|).  {not in Vi}

                                                        *v_Y*
{Visual}["x]Y           Yank the highlighted lines [into register x] (for
                        {Visual} see |Visual-mode|).  {not in Vi}

Y is meant to act on lines, y is meant to act on individual characters?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜