V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lampxiongdi
V2EX  ›  Vim

急急 Vim 怎样使用 phpstrom 自定义的代码格式化规则!!

  •  
  •   lampxiongdi · 2018-05-28 18:35:44 +08:00 · 2582 次点击
    这是一个创建于 2357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚入职一家公司团队其他人都使用的 phpstrom 都用的一样的格式化规则(自定义的 不遵循什么 PSR2 和 symfony) 不打算转入 phpstrom 如何做到和其他同事保持一样的代码风格 求帮助

    9 条回复    2018-07-02 21:53:59 +08:00
    lampxiongdi
        1
    lampxiongdi  
    OP
       2018-05-28 18:42:17 +08:00
    求大神 给个方案!
    likaci
        2
    likaci  
       2018-05-28 18:48:00 +08:00
    要么自己写规则
    要么提交前用 ide 格式化一下
    要么 phpstrom 装 ideavim 插件呗

    入乡随俗吧 jb 家的 ide 好用的很
    cxbig
        3
    cxbig  
       2018-05-28 18:48:54 +08:00
    如果是基于 PhpStorm 的自定义,那不大好弄,如果是基于标准的 PSR-*系列,那常规插件还是不少的。
    为啥不转 PhpStorm ?你一样可以用 Vim Mode 的啊
    lampxiongdi
        4
    lampxiongdi  
    OP
       2018-05-28 18:52:41 +08:00
    @likaci 如何交给 IDE 处理? ideavim 插件阉割好多特性吧 还有一个 phpstrom 打开很慢的 占内存 写个 php 没必要用 IDE 啊
    lampxiongdi
        6
    lampxiongdi  
    OP
       2018-05-28 19:12:22 +08:00
    @likaci 我艹 牛逼 感谢感谢
    ruchee
        7
    ruchee  
       2018-05-28 20:15:44 +08:00
    安装 php-cs-fixer,然后安装对应的 Vim 插件

    cat ~/.php_cs
    ```php
    <?php

    return PhpCsFixer\Config::create()
    ->setRiskyAllowed(true)
    ->setRules([
    '@PSR2' => true, // 使用 PSR2 规范
    'array_syntax' => ['syntax' => 'short'], // 使用短数组语法
    'binary_operator_spaces' => ['align_equals' => true, 'align_double_arrow' => true], // 对齐 = 和 =>
    'ordered_imports' => true, // 导入语句排序
    'single_quote' => true, // 优先使用单引号字符串
    'blank_line_after_opening_tag' => true, // PHP 开标签下面保证有一个空行
    'trim_array_spaces' => true, // 单行数组去除头部和尾部的空白
    'trailing_comma_in_multiline_array' => true, // 多行数组确保子元素带尾部逗号
    'backtick_to_shell_exec' => true, // 将反引号转换为 shell_exec
    'dir_constant' => true, // 将 dirname(__FILE__) 转换为 __DIR__
    'function_to_constant' => true, // 将可以用常量替代的函数转换为常量
    'method_argument_space' => false, // 不要将存在换行的参数列表强制转换为一个参数一行
    ])
    ->setUsingCache(false)
    ->setFinder(
    PhpCsFixer\Finder::create()
    ->exclude('.git')
    ->exclude('.svn')
    ->exclude('.vagrant')
    ->exclude('.idea')
    ->exclude('.vscode')
    ->exclude('vendor')
    ->exclude('node_modules')
    ->in(__DIR__)
    );
    ```
    lampxiongdi
        8
    lampxiongdi  
    OP
       2018-05-28 22:53:08 +08:00 via iPhone
    @likaci 这个格式化太慢了。。。 本来打算保存就执行一次格式化 目前来看只能写完 统一执行一次了
    KentY
        9
    KentY  
       2018-07-02 21:53:59 +08:00
    回复只为头像一样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1934 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:19 · PVG 00:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.