Я нашел, что это наиболее точная реализация того, что я ожидал от поведения, противоположного J
nnoremap S i<cr><esc>^mwgk:silent! s/\v +$//<cr>:noh<cr>`w
Он делает упрощенную новую строку в курсоре, обрабатывает любые пробелы в предыдущей строке, если они есть, и затем возвращает курсор в правильную позицию.
i - это одно из наиболее распространенных предлагаемых решений, оно не удаляет непробельные символы под вашим курсор, но он также оставляет вас с пробелом
^ mw - перейти к началу новой строки и создать отметку под w
gk - перейти на одну строку вверх
: молчать! s / \ v + $ // - регулярное выражение заменяет любые пробелы в конце строки
: noh - Очистить любой поиск, выделяющий, что регулярное выражение могло включить
& # x60; w - вернуть отметку под w
По существу сочетает в себе лучшее из обоих r и i
Примечание: у меня есть эта привязка к S , которая потенциально перезаписывает полезный ключ, но это синоним cc , и поскольку я не использую его так часто, как делит Я в порядке с перезаписью этого.