У группы захвата Vim есть нежелательное пространство - PullRequest
2 голосов
/ 22 марта 2019

Суть в том, что я копирую вставку определения реквизита React в аргументы функции, чтобы мне не приходилось вводить имена переменных по одному:

// Select these 3 lines with V3j  
MyComponent.propTypes = {
  formName: PropTypes.string.isRequired,
  formPurpose: PropTypes.string.isRequired,
  formPlaceholder: PropTypes.string.isRequired,
};

<MyComponent
  // Past here with the output below  <-----------  expeted output
  formName={formName}
  formPurpose={formPurpose}
  formPlaceholder={formPlaceholder}
/>

Чтобы удалить : PropTypes.string.isRequired и изменить его на ={variableNameHere} Я использую следующее регулярное выражение Vim:

:'<,'>s/\(.*\)\zs:.*/={\1}/g

Это должно захватить имя переменной, удалить все после : и поместить захват в фигурные скобки на ={}.

Результат следующий:

formName={  formName}
formPurpose={  formPurpose}
formPlaceholder={  formPlaceholder}

После { есть нежелательное пространство, и я не могу понять, что это за пространство в регулярном выражении. Есть идеи?

1 Ответ

4 голосов
/ 22 марта 2019

Используйте

:'<,'>s/[[:blank:]]*\(.*\)\zs:.*/={\1}/g

Пробелы, которые вы получаете, являются ведущими пробелами перед вашим выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...