I Codezeile haben wie diese:Vim einfangenden Gruppen regex am Ende Kamel Fall Zeichenfolge mit Leerzeichen ersetzen
variableInCamelCase <- map["variableInCamelCase"]
ich es so machen müssen:
variable_In_Camel_Case <- map["variableInCameCase"]
Nur das erste Wort muss konvertiert werden, ich versuche eine Regex dafür zu finden, und ich muss es in Vim tun, aber ich kann es nicht. Ein regex wie diese:
var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;
"CSVFilesAreCoolButTXT".replace(rex, '$1$4_$2$3$5');
ist nicht gut, weil ich es nur auf dem ersten Wort tun müssen. Plus, ich brauche es für VIM, die eine spezielle Syntax verwendet, um eine Gruppe zu erfassen.
habe ich versucht, so etwas wie diese: in oder mit den für mein Problem s/\(\l\)\(\u\)/\1_\2/g
, die ([a-z])([A-Z])
äquivalent ist, aber ich kann es nicht ([A-Z])([A-Z])([a-z])
Es gibt jemand mit einem guten vim bereit regex setzen? Eine Erklärung wäre auch willkommen.
Dies ist das Beste, was ich bisher finden kann. Leider fügt es nach dem Variablennamen ein abschließendes '_ 'hinzu. Ich denke immer noch darüber nach, ob es einen Weg gibt. 's/\ v ([AZ]) ([AZ]) ([az]) | ([az]) ([AZ]) | (. * $)/\ 1 \ 4_ \ 2 \ 3 \ 5 \ 6/g' – eddiem
Dies ist eine extrem hack Lösung, aber Sie könnten tun 'qq: s/\ v^\ w {-} \ a \ zs \ u/_ &@qq @ q' –
DJMcMayhem
Tim Papst [abschaffen] (https : //github.com/tpope/vim-abolish) kann es für dich tun. –