Заменить все пробелы символом подчеркивания в выбранном блоке

#vim

#vim

Вопрос:

Я хочу заменить все пробелы символом подчеркивания в текущем выделенном блоке, т.Е. Не применять его ко всей странице.

Как я могу это сделать?

Ответ №1:

Когда в визуальном режиме введите:

 :s/%V /_/g
  

см. http://vim.wikia.com/wiki/VimTip438

Комментарии:

1. Со связанной страницы: Для фактического поиска в пределах визуального выделения вам нужно будет использовать атом %V или использовать маркеры, определенные визуальным выделением с атомами %>'< и %<‘>. Это лучше всего сделать, оставив визуальный выбор с <Esc> перед вводом поиска. Возможно, вы захотите рассмотреть сопоставление, чтобы автоматически оставить визуальный выбор и ввести соответствующие атомы.

2. это фактически выдает ошибку, когда в выделенном элементе нет пробелов, поэтому его нельзя использовать, например, в макросе

Ответ №2:

Вы можете перейти в визуальный режим (набрав v в командном режиме), а затем выбрать требуемый текст и после этого войти в командный режим (набрав «:»). Это автоматически вставит диапазон выбора, а затем вы сможете выполнить необходимую замену.

  • Перейдите в визуальный режим, набрав v
  • Выделите необходимый текст.
  • Введите : для перехода в командный режим. В приведенном ниже приглашении вы найдете:'<,’>
  • Конечная команда будет выглядеть так: ‘<,’> s / /_/g

Комментарии:

1. это не работает. При этом вы замените все пробелы от первой строки выделения до последней строки. Если выделение начинается с середины строки, все пробелы до этого также заменяются.