LINUX.ORG.RU

Если это буг, то подтвердите, если это феатуре, то в чем её польза?

 ,


1

2

Возьмите любую портянку с разной длиной строк, например:

nnoremap <silent> S :set opfunc=PasteReplace<CR>g@
function! PasteReplace(type, ...)
    if a:0
        silent exe "normal! `<" . a:type . "`>p"
    elseif a:type == 'line'
        silent exe "normal! '[V']p"
    elseif a:type == 'block'
        silent exe "normal! `[\<C-V>`]p"
    else
        silent exe "normal! `[v`]p"
    endif
endfunction
nmap SS S$

  • Максимально выделите вертикальный блок по доступной ширине, чтобы он оказался как-бы рваным, например от if до endif, пример: http://i.imgur.com/2gyfYBM.png
  • Удалите содержимое S-d , пример: http://i.imgur.com/ExYP5PT.png
  • Верните содержимое u
  • Верните прошлое выделение gv

Что вы видите? Вим забыл прошлое выделение и выделил блок по всей длине? Для меня например это критично.

Это и в виме и в неовиме.



Последнее исправление: slon (всего исправлений: 1)

Вим забыл прошлое выделение и выделил блок по всей длине?

Не так чтобы забыл. Выделил то его правильно и нужном режиме, но почему-то до конца строк (как если бы $ было нажато). Если сделать hl или подобное движение, то выделение становится оригинальным.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Если сделать hl или подобное движение

Это мне не нужно, тем более в макросах.

slon
() автор топика

Удалите содержимое S-d

Почему S-d? Почему не d? Ты зачем выделял именно вертикальный блок?

P. S. Воспроизводится, но, ИМХО, S-d здесь не применимо.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 3)
Ответ на: комментарий от Kroz

Потому что в данном случае это не имеет значения, мне нужно удалить строки, а не выделенное, но выделением. Макросы, макросы.

slon
() автор топика

Это и в виме и в неовиме.

Ну не знаю, в Evil’е все в порядке.

Zmicier ★★★★★
()

Что вы видите? Вим забыл прошлое выделение и выделил блок по всей длине?

Да, вим повел себя так же. VIM - Vi IMproved 8.0.

Но команды dugv выделяют блок правильно.

andreyu ★★★★★
()
Последнее исправление: andreyu (всего исправлений: 1)
Ответ на: комментарий от slon

Ааа, да, так воспроизводиться. Но эмм суть то в чём ты блочно выделяешь чтобы блочно удалить как бэ ээм, но ты блочно выделяешь удаляя всё, следовательно ты выделяешь как бы всё для удаления, следовательно и выделено то что ты удалил. Всё нормально и логично. Блочно выделяешь блочно удаляй. Всё выделяешь всё удаляй и наоборот, в рамках контекста всё верно работает. Я не знаю что тебе не нравиться.

Dron ★★★★★
()
Ответ на: комментарий от Dron

Суть в том, что я выделяю то, что выделяю и прошу вот это:

:h index

|gv|		gv		   reselect the previous Visual area

Но если прав ты, то нужно менять документацию и делать приметки, вот Мельник и Ко в баге определят, как поступить в данном случае.

slon
() автор топика
Последнее исправление: slon (всего исправлений: 1)
Ответ на: комментарий от slon

Баг-то может и не баг, но недоработка. Если будешь репортить в neovim, то дай ссылку в тред, я покручусь там в RO.

r3lgar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.