Вим совпадают с косвенными утверждениями? - PullRequest
0 голосов
/ 05 декабря 2018

В javascript мы можем заменить все автономные синглы i на i0:

str = 'if (i < 10 && i1 > 0) { life++; i-- }'
str.replace(/(?<=\W)i(?=\W)/g, 'i0') // => if (i0 < 10 && i1 > 0) { life++; i0-- }

Как это сделать в vim?

1 Ответ

0 голосов
/ 05 декабря 2018
  1. Нет, вы не можете сделать это в JavaScript (пока).Взгляд в прошлое - очень недавняя особенность;очевидно, только Chrome поддерживает это сейчас?

  2. Ваше регулярное выражение в любом случае нарушено: оно не соответствует i в начале или конце строки.

  3. Правильное регулярное выражение в любом случае не требует упреждающего просмотра: /\bi\b/ (\b является границей слова)

  4. Это было для JavaScript;в vim это \<i\> (\< = начало слова, \> = конец слова)

  5. Тем не менее, vim поддерживает просмотр вперед / назад: \W\@<=i\W\@= (или альтернативно \W\zsi\ze\W)

...