Я читаю вики и помещаю это в мой vimrc:

autocmd FileType less,sass,yml,css,html,php,twig autocmd BufWritePre <buffer> :%s/\s\+$//e

Теперь проблема заключается в том, что всякий раз, когда я сохраняю & ломаюсь: он повторяет смесь последней замены и замены. Если, например, я делаю :s/foo/bar а затем сохраняю, & кажется, делает :s/foo// . Я хотел бы это сделать :s/foo/bar/ . Как я могу восстановить эту функциональность?

2 ответа2

1

Вам следует избегать использования :substitute , так как в настоящее время нет простого способа сохранить и восстановить последнюю строку замены; :help function-undo-search здесь не помогает.

Большинство плагинов (как показано на указанной вики-странице) также страдают от этой проблемы. В качестве обходного пути можно использовать call setline(substitute(getline(lnum)), '\s\+$', '', '') в цикле по всем строкам, но это, вероятно, намного медленнее, чем :substitute .

1

Попробуйте изменить часть :%s... вашей команды auto на:

:call setline(1, map(getline(1,'$'), 'substitute(v:val,"\\s\\+$","","")'))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .