Удалить окружающие пробелы в vim

Я использую awesome https://github.com/tpope/vim-surround плагин, чтобы окружать слова скобкой, например, я часто использую: viws<space><space>, чтобы окружать слово пробелами.

То, что мне не хватает, - это противоположность этого, т.е. удаление окружающих пространств вокруг слова.

Наиболее частое использование для меня - это аргументы функции, такие как foo (bar) vs foo (bar) в зависимости от стиля кода.

Кто-нибудь знает хороший способ сделать это?

Ответ 1

Примечание. Для этого решения требуется встроенный плагин, на который ссылается вопрос.

В вашей конкретной ситуации вы можете сделать следующее:

cs()

Это изменяет foo( bar ) на foo(bar), однако это не общее решение вашей проблемы.

Ответ 2

Я часто продуманно затягиваю в поисках плагинов vim, когда я мог просто определить для этого сопоставление.

nnoremap <leader>dd F<space>xf<space>x

ИЗМЕНИТЬ больше информации

  • <leader> общий ключ для пользовательских сопоставлений (, является хорошим)

  • dd для использования (любой другой мнемонический будет достаточно)

  • F<space>x искать назад для пробела, а затем удалить его

  • F<space>x искать вперед для пробела, а затем удалить его

Ответ 3

Возможно, просто BXElx в нормальном режиме.

Ответ 4

На самом деле идеальным решением для меня является отображение, предоставляемое @puk, но с учетом ожидаемых в первую очередь ключей @sarnold (чего можно было бы ожидать от плагина окружения, если бы это реализовано).

Это:

nnoremap ds<space> F<space>xf<space>x