Пэд равенство / идентичность (== / ===) с пробелами при необходимости (vim) - PullRequest
2 голосов
/ 29 октября 2011

Если существует инструмент для автоматической предварительной настройки моего js-кода, я бы предпочел использовать этот пакет.

Я хочу расширить все так, чтобы утверждение было таким:

var n=x+(y+(z/k))-123;

превращается в:

var n = x + (y + (z / k)) - 123;

Однако на данный момент я хочу преобразовать все свои ограниченные операторы =, == и === в их мягкие версии.

Я пытался использовать что-то вроде :%s/[^ ]==[^ ]/ == /g, но проблема в том, что он обрезает предыдущий и последующий символы.

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

В Vim вы можете использовать что-то вроде:

:%s!\s*\([!<>=/*+-]\+\)\s*! \1 !g

Объяснение:

  • s - заменить
  • ! - запустить шаблон
  • \s* - ноль или более пробелов
  • \( - стартовая группа
  • [!<>=/*+-]\+ - один или несколько из !<>=/*+-
  • \) - конец группы
  • \s* ноль или более пробелов
  • ! конец шаблона, начало замены
  • <space>\1<space> - подходящая группа, дополненная пробелом
  • ! - Конец замены
  • g - глобально на линии

Но если вы хотите предварительно подтвердить код и придерживаться определенного стандарта кодированиялучше использовать такой инструмент, как художественный стиль .

2 голосов
/ 29 октября 2011

Это займет несколько команд, но вы можете попробовать что-то вроде:

:%s/\([^\s]\)\([+\/()-=]\)/\1 \2/g
:%s/\([+\/()-=]\)\([^\s]\)/\1 \2/g

:%s/\([^\s]\)==/\1 ==/g
:%s/==\([^\s]\)/== \1/g

Then do those last 2 for each: !=, >=, <=, etc..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...