vim 代码规范工具php-cs-fixer.phar

(參考https://github.com/FriendsOfPHP/PHP-CS-Fixer)

INSTALL

curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer
sudo chmod a+x php-cs-fixer
sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

至此,你能够直接用php-cs-fixer格式化代码了

USAGE

(眼下支持的level有psr0, psr1, psr2,symfony,contrib)

  php-cs-fixer fix test.php --level=psr2
php-cs-fixer fix ./ --level=psr2

这并不能满足一个vimer的小心灵

vim-php-cs-fixer

INSTALL

Bundle 'stephpy/vim-php-cs-fixer

CONFIGURE

.vimrc(參考:https://github.com/stephpy/vim-php-cs-fixer)

" If php-cs-fixer is in $PATH, you don't need to define line below
" let g:php_cs_fixer_path = "~/php-cs-fixer.phar" " define the path to the php-cs-fixer.phar
let g:php_cs_fixer_level = "psr2" " which level ?(psr0, psr1, psr2, symfony)
let g:php_cs_fixer_config = "default" " configuration
let g:php_cs_fixer_php_path = "php" " Path to PHP
" If you want to define specific fixers:
"let g:php_cs_fixer_fixers_list = "linefeed,short_tag,indentation"
let g:php_cs_fixer_enable_default_mapping = 1 " Enable the mapping by default (<leader>pcd)
let g:php_cs_fixer_dry_run = 0 " Call command with dry-run option
let g:php_cs_fixer_verbose = 0 " Return the output of command if 1, else an inline information.

以上配置我们发现

let g:php_cs_fixer_enable_default_mapping = 1     " Enable the mapping by default (<leader>pcd)

这个配置快捷键为\pcd 实际操作中会发现极易出错,并且太长了吧

.vim/bundle/vim-php-cs-fixer/plugin/php-cs-fixer.vim

if(g:php_cs_fixer_enable_default_mapping == 1)
nnoremap <silent><leader>pcd :call PhpCsFixerFixDirectory()<CR>
nnoremap <silent><leader>pcf :call PhpCsFixerFixFile()<CR>
endif

能够发现

pcd是格式化文件夹

pcf是格式化文件

如今能够把pcd。和pcf换成自己喜欢的快捷键了

ps:是nomal模式,是一个快捷键的前缀默认是\,可在vim中用map命令查看

附录

psr0 [PSR-0] Classes must be in a path that matches their namespace, be at least one namespace deep, and the class name should match the file name.

encoding [PSR-1] PHP code MUST use only UTF-8 without BOM (remove BOM).

short_tag [PSR-1] PHP code must use the long <?php ?> tags or the short-echo <?

= ?> tags; it must not use the other tag variations.

braces [PSR-2] The body of each structure MUST be enclosed by braces. Braces should be properly placed. Body of braces should be properly indented.

elseif [PSR-2] The keyword elseif should be used instead of else if so that all control keywords looks like single words.

eof_ending [PSR-2] A file must always end with a single empty line feed.

function_call_space [PSR-2] When making a method or function call, there MUST NOT be a space between the method or function name and the opening parenthesis.

function_declaration [PSR-2] Spaces should be properly placed in a function declaration.

indentation [PSR-2] Code MUST use an indent of 4 spaces, and MUST NOT use tabs for indenting.

line_after_namespace [PSR-2] There MUST be one blank line after the namespace declaration.

linefeed [PSR-2] All PHP files must use the Unix LF (linefeed) line ending.

lowercase_constants [PSR-2] The PHP constants true, false, and null MUST be in lower case.

lowercase_keywords [PSR-2] PHP keywords MUST be in lower case.

method_argument_space [PSR-2] In method arguments and method call, there MUST NOT be a space before each comma and there MUST be one space after each comma.

multiple_use [PSR-2] There MUST be one use keyword per declaration.

parenthesis [PSR-2] There MUST NOT be a space after the opening parenthesis. There MUST NOT be a space before the closing parenthesis.

php_closing_tag [PSR-2] The closing ?> tag MUST be omitted from files containing only PHP.

single_line_after_imports [PSR-2] Each namespace use MUST go on its own line and there MUST be one blank line after the use statements block.

trailing_spaces [PSR-2] Remove trailing whitespace at the end of non-blank lines.

visibility [PSR-2] Visibility MUST be declared on all properties and methods; abstract and final MUST be declared before the visibility; static MUST be declared after the visibility.

blankline_after_open_tag [symfony] Ensure there is no code on the same line as the PHP open tag and it is followed by a blankline.

concat_without_spaces [symfony] Concatenation should be used without spaces.

double_arrow_multiline_whitespaces [symfony] Operator => should not be arounded by multi-line whitespaces.

duplicate_semicolon [symfony] Remove duplicated semicolons.

empty_return [symfony] A return statement wishing to return nothing should be simply "return".

extra_empty_lines [symfony] Removes extra empty lines.

include [symfony] Include and file path should be divided with a single space. File path should not be placed under brackets.

join_function [symfony] Implode function should be used instead of join function.

list_commas [symfony] Remove trailing commas in list function calls.

multiline_array_trailing_comma [symfony] PHP multi-line arrays should have a trailing comma.

namespace_no_leading_whitespace [symfony] The namespace declaration line shouldn't contain leading whitespace.

new_with_braces [symfony] All instances created with new keyword must be followed by braces.

no_blank_lines_after_class_opening [symfony] There should be no empty lines after class opening brace.

no_empty_lines_after_phpdocs [symfony] There should not be blank lines between docblock and the documented element.

object_operator [symfony] There should not be space before or after object T_OBJECT_OPERATOR.

operators_spaces [symfony] Binary operators should be arounded by at least one space.

phpdoc_indent [symfony] Docblocks should have the same indentation as the documented subject.

phpdoc_no_access [symfony] @access annotations should be omitted from phpdocs.

phpdoc_no_empty_return [symfony] @return void and @return null annotations should be omitted from phpdocs.

phpdoc_no_package [symfony] @package and @subpackage annotations should be omitted from phpdocs.

phpdoc_params [symfony] All items of the @param, @throws, @return, @var, and @type phpdoc tags must be aligned vertically.

phpdoc_scalar [symfony] Scalar types should always be written in the same form. "int", not "integer"; "bool", not "boolean"; "float", not "real" or "double".

phpdoc_separation [symfony] Annotations in phpdocs should be grouped together so that annotations of the same type immediately follow each other, and annotations of a different type are separated by a single blank line.

phpdoc_short_description [symfony] Phpdocs short descriptions should end in either a full stop, exclamation mark, or question mark.

phpdoc_to_comment [symfony] Docblocks should only be used on structural elements.

phpdoc_trim [symfony] Phpdocs should start and end with content, excluding the very first and last line of the docblocks.

phpdoc_type_to_var [symfony] @type should always be written as @var.

phpdoc_var_without_name [symfony] @var and @type annotations should not contain the variable name.

pre_increment [symfony] Pre incrementation/decrementation should be used if possible.

remove_leading_slash_use [symfony] Remove leading slashes in use clauses.

remove_lines_between_uses [symfony] Removes line breaks between use statements.

return [symfony] An empty line feed should precede a return statement.

self_accessor [symfony] Inside a classy element "self" should be preferred to the class name itself.

single_array_no_trailing_comma [symfony] PHP single-line arrays should not have trailing comma.

single_blank_line_before_namespace [symfony] There should be exactly one blank line before a namespace declaration.

single_quote [symfony] Convert double quotes to single quotes for simple strings.

spaces_before_semicolon [symfony] Single-line whitespace before closing semicolon are prohibited.

spaces_cast [symfony] A single space should be between cast and variable.

standardize_not_equal [symfony] Replace all <> with !=.

ternary_spaces [symfony] Standardize spaces around ternary operator.

trim_array_spaces [symfony] Arrays should be formatted like function/method arguments, without leading or trailing single line space.

unalign_double_arrow [symfony] Unalign double arrow symbols.

unalign_equals [symfony] Unalign equals symbols.

unary_operators_spaces [symfony] Unary operators should be placed adjacent to their operands.

unused_use [symfony] Unused use statements must be removed.

whitespacy_lines [symfony] Remove trailing whitespace at the end of blank lines.

align_double_arrow [contrib] Align double arrow symbols in consecutive lines.

align_equals [contrib] Align equals symbols in consecutive lines.

concat_with_spaces [contrib] Concatenation should be used with at least one whitespace around.

ereg_to_preg [contrib] Replace deprecated ereg regular expression functions with preg. Warning! This could change code behavior.

header_comment [contrib] Add, replace or remove header comment.

long_array_syntax [contrib] Arrays should use the long syntax.

multiline_spaces_before_semicolon [contrib] Multi-line whitespace before closing semicolon are prohibited.

newline_after_open_tag [contrib] Ensure there is no code on the same line as the PHP open tag.

no_blank_lines_before_namespace [contrib] There should be no blank lines before a namespace declaration.

ordered_use [contrib] Ordering use statements.

php4_constructor [contrib] Convert PHP4-style constructors to
__construct. Warning! This could change code behavior. phpdoc_order [contrib] Annotations in phpdocs should be ordered so that param annotations come first, then throws annotations, then return annotations. phpdoc_var_to_type [contrib] @var should always be written as @type. short_array_syntax [contrib] PHP arrays should use the PHP 5.4 short-syntax. short_echo_tag [contrib] Replace short-echo <?= with long format <?php echo syntax. strict [contrib] Comparison should be strict. Warning! This could change code behavior. strict_param [contrib] Functions should be used with $strict param. Warning! This could change code behavior.

vim php代码规范的更多相关文章

  1. 《手把手教你学C语言》学习笔记(4)---代码规范

    编程过程中需要遵守编译器的各种约定,例如以下代码: 1 #include <stdio.h> 2 3 int main(int argc, char **argv) 4 { 5 print ...

  2. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  3. vim格式化代码实际上就是 "缩进代码", 命令是等号=

    vim格式化代码实际上就是 "缩进代码", 命令是等号= 格式化就是 vim 根据 文件的类型, 自动的对代码进行 缩进 缩进的类型有多种, 都是用等号命令: = 全部格式化 : ...

  4. 谈谈PHP代码规范

    [转] http://www.syyong.com/php/Talk-about-PHP-code-specification.html 我向往这样一个php世界,里面没有代码规范之争.你我都一样,都 ...

  5. 2016 正确 sublime安装PHPcs PHPcodesniffer代码规范提示插件,修正网上部分不详细描述

    对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香!-------------------14:37 2016/3/212016 正确 sublime安装PHPcs PHPcodesniff ...

  6. C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义

    类型判断符号: C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...

  7. 作业三: 代码规范、代码复审、PSP

    分) 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我是个艺术家,手艺人,我有自己的规范和原则. 规范不能 ...

  8. 转!!Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  9. C#代码规范

    C#代码规范  一.文件命名 1 文件名 文件名统一使用帕斯卡命名法,以C#类名命名,拓展名小写. 示例: GameManager.cs 2 文件注释 每个文件头须包含注释说明,文件头位置指的是文件最 ...

随机推荐

  1. PHP判断远程文件是否存在的几种方法

    在做一个图片预览中图的东西,遇到一个问题,就是要判断远程文件是否存在(不是同一台服务器). 代码如下: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 ...

  2. SharePoint2010 部署步骤“激活功能”中出现错误:无法启动计算机“PCName”上的服务SPUserCodeV4

    在SharePoint2010开发中,选择部署类型为“部署为沙盒解决方案”,在部署代码是出现如下错误提示: 部署步骤“激活功能”中出现错误:无法启动计算机“PCName”上的服务SPUserCodeV ...

  3. web前端网页开发一般过程

    看见很多新手同学前端开发,效率比较慢.总是拿起代码就敲,不分析,没有逻辑,反而使效率变慢.所谓磨刀不误砍柴工,有一个良好的过程,才是最主要的: 1.分析平面效果图,在草稿纸上画出基本结构图 2.建立项 ...

  4. SQLiteLog (1) no such Column:

           今天在进入sqlite数据库查询的时候出现了这个问题,SQLiteLog (1) no such Column: BGZ 搜索得知这是因为数据库中没有这一列,我的sql语句为" ...

  5. ubuntu12.04 安装 opencv 2.4.8(非源代码编译)

    一:安装所须要的各种库,如GTK3.xx 安装GCC:sudo apt-get install build-essential 安装CMakesudo apt-get install cmake su ...

  6. Effective C++_笔记_条款06_若不想使用编译器自动生成的函数,就该明确拒绝

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 通常如果你不希望class支持某一特定机能,只要不声明对应函数就 ...

  7. dataStage 7.5.1A

    ------------------------------    DataStage Server License ------------------------------ Serial Num ...

  8. Beautiful Soup 中文文档

    Beautiful Soup 3.0 中文文档说明: http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html Be ...

  9. HDU 3584 三维树状数组

    三维树状数组模版.优化不动了. #include <set> #include <map> #include <stack> #include <cmath& ...

  10. CF 258B Little Elephant and Elections [dp+组合]

    给出1,2,3...m 任取7个互不同样的数a1,a2,a3,a4,a5,a6,a7 一个数的幸运度是数位上4或7的个数 比方244.470幸运度是2. 44434,7276727.4747,7474 ...