Почему Y делает то же самое, что и yy?

Я использую vim уже несколько месяцев, и я привык использовать C и D для изменения и удаления всего, от курсора до конца строки. .

Рассмотрим строку ниже, где курсор находится на «b» в «баре»:

foo.bar("hello world")

Нажатие D в этой точке приведет к:

foo.

При нажатии C будет сделано то же самое, плюс начнется режим вставки с курсором. после периода.

Однако нажатие Y не делает интуитивно похожую вещь (копирование всего от курсора до конца строки). Вместо этого он копирует всю строку (так же, как уу).

Как заставить Y скопировать символы из курсора в конец строки вместо копирования всей строки, например, yy?

10
задан advait 19 August 2010 в 00:59
поделиться

2 ответа

nmap Y y$

Это делает то, что вы хотите?

EDIT

Причина, по которой Y делает то же самое, что и yy, вероятно, имеет отношение к следующему:

{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 предназначен для работы со строками, y предназначен для работы с отдельными символами?

.
4
ответ дан 4 December 2019 в 00:59
поделиться

Из этой конфигурации:

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

Я подозреваю, что поведение по умолчанию просто связано с некоторым историческим несоответствием.

7
ответ дан 4 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: