代码之家  ›  专栏  ›  技术社区  ›  ivand58

用VIM在C中应用“Yoda条件”的最短方法是什么

vim
  •  1
  • ivand58  · 技术社区  · 6 年前

    == 是吗?

    x.y.z == 78 改组后应该变成 78 == x.y.z

    3 回复  |  直到 6 年前
        1
  •  0
  •   Kent    6 年前

    x foo bar x.y.z == 78 foo bar

    dE2Evbp3BP
    

    您可以一步一步地按这些键来查看发生了什么。

    cxE2Wcxe
    
        2
  •  1
  •   builder-7000    6 年前

    您可以使用以下替换:

    %s/\v(%(\w|\.)+)\s*\=\=\s*(%(\w|\.)+)/\2 == \1/gc
    

    if (x.y.z == 78 && a.b.c == 55)
    

    if (78 == x.y.z && 55 == a.b.c)
    

    == !=

    %s/\v(%(\w|\.)+)\s*(!\=|\=\=)\s*(%(\w|\.)+)/\3 \2 \1/gc
    
        3
  •  0
  •   Luc Hermitte    6 年前

    :%s/\(\S.\{-}\)\(\s*\)==\(\s*\)\(.*\)/\4\2==\3\1/