2 Stimmen

Gleichheit/Identität (==/===) mit Leerzeichen auffüllen, falls erforderlich (vim)

Wenn es ein Tool gibt, mit dem ich meinen js-Code automatisch verschönern kann, würde ich dieses Paket viel lieber verwenden.

Ich möchte alles so erweitern, dass eine Aussage wie diese:

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

verwandelt sich in:

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

Im Moment möchte ich jedoch alle meine beengten = , == y === Aussagen in gepolsterte Versionen ihrer selbst verwandeln.

Ich habe versucht, etwas zu verwenden wie :%s/[^ ]==[^ ]/ == /g aber das Problem dabei ist, dass das vorangehende und das nachfolgende Zeichen abgeschnitten werden.

4voto

Johnsyweb Punkte 128606

In Vim könnten Sie etwas wie verwenden:

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

説明することです。

  • s - Ersatz
  • ! - Startmuster
  • \s* - null oder mehr Leerzeichen
  • \( - Startgruppe
  • [!<>=/*+-]\+ - eines oder mehrere von !<>=/*+-
  • \) - Ende der Gruppe
  • \s* null oder mehr Leerzeichen
  • ! Ende des Musters, Beginn der Ersetzung
  • <space>\1<space> - die abgestimmte Gruppe, aufgefüllt mit Leerzeichen
  • ! - Ende der Ersetzung
  • g - global auf einer Linie

Wenn Sie jedoch Ihren Code verschönern und sich an einen definierten Kodierungsstandard halten wollen, sollten Sie ein Tool wie Künstlerischer Stil .

2voto

chown Punkte 50364

Es würde mehrere Befehle erfordern, aber Sie könnten etwas wie folgt versuchen:

:%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..

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X