SublimeLinter 3在安装

时间:2015-10-08 22:19:18

标签: sublimetext3 xmllint sublimelinter

我正在尝试使用SublimeLinter3验证Sublime Text 3(便携式)中的xml文件。

我已经安装了SublimeLinter3以及sublimelinter-xml包。它们都出现在已安装的软件包中。

我已经安装了xmllint并将其添加到我的路径中。当我在控制台中键入xmllint时说"输入文件名",所以我知道安装了xmllint。

当我检查SublimeLinter首选项时,模式是后台,这意味着它应该始终检查每次更改。

但没有任何事情发生。编辑器中根本没有反馈,因为我可以提出任何类型的xml错误。是否有某种方式来启用它?

编辑:

以下是我的设置。用户设置为空。

{
"default": {
    "debug": false,
    "delay": 0.25,
    "error_color": "D02000",
    "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme",
    "gutter_theme_excludes": [],
    "lint_mode": "background",
    "mark_style": "outline",
    "no_column_highlights_line": false,
    "passive_warnings": false,
    "paths": {
        "linux": [],
        "osx": [],
        "windows": []
    },
    "python_paths": {
        "linux": [],
        "osx": [],
        "windows": []
    },
    "rc_search_limit": 3,
    "shell_timeout": 10,
    "show_errors_on_save": false,
    "show_marks_in_minimap": true,
    "syntax_map": {
        "python django": "python",
        "html 5": "html",
        "html (django)": "html",
        "html (rails)": "html",
        "javascript (babel)": "javascript",
        "php": "html"
    },
    "warning_color": "DDB700",
    "wrap_find": true
}

}

4 个答案:

答案 0 :(得分:0)

documentation for SublimeLinter非常广泛,但是非常值得您花时间阅读所有。您可以在Package Control page上找到SublimeLinter-xmllint的自述文件,其中包含指向主要SublimeLinter文档的相关部分的链接,用于设置和配置。

SublimeLinter的插件生态系统功能强大,可配置且可扩展,但遗憾的是,它并不一定能够开箱即用,因此通常需要进行一些设置和配置。但是,所提供的定制程度将弥补学习如何使一切正常工作所花费的时间。在不知道您的确切设置的情况下,我无法提供更具体的内容,但文档非常好。

答案 1 :(得分:0)

我在Sublimelinter和Sublimelinter-contrib-clang方面遇到了类似的问题。 Sublimelinter-php正在运行,但不是Sublimelinter-contrib-clang。不确定这是否会对xmlint有所帮助,但也许它值得一试。

有什么帮助我弄清楚是在检查控制台输出(View> Show Console),这帮助我弄清楚出了什么问题。几次搜索后,我似乎需要重新安装xcode的命令行工具。

我能够运行xcode-select --install,现在它正在为我工​​作。

答案 2 :(得分:0)

如果您或其他人仍需要此功能,请尝试此操作。您需要添加一些用户设置。

  1. 打开默认设置并将整个文件复制到用户设置(Preferences -> Package Settings -> SublimeLinter -> Settings – Default)。

  2. 在用户设置文件中,将顶级密钥从default更改为user

  3. 添加linters设置(如果它不存在)。它应该是这样的:

    "linters": {
        "xmllint": {
            "@disable": false,
            "args": [
                "--xinclude",
                "--postvalid",
                "--noout",
            ],
            "excludes": []
        }
    },
    

答案 3 :(得分:0)

我也遇到了同样的问题,下面显示了您需要的(在Linux和Windows上)Sublime Linter的最低用户设置。再次将debug设置为true,并查看控制台输出会很有帮助

  1. 您需要--valid args才能获取输出。
  2. 如果您有dtd文件的相对路径,则需要xmllinter在xml文件自己的目录中运行,因此需要“ working_dir”:“ $ file_path”,参数

  3. 并且您需要将选择器注释掉(默认复制到     sublimelinter设置中的空白字符串使xmllint     整理所有文件(不只是.xml文件)

以下是我的sublimelinter用户设置文件:

// SublimeLinter Settings - User
{
    // Set to true to print extra information in the console.
    "debug": true,

    // Linter specific settings.
    // More info: http://www.sublimelinter.com/en/stable/linter_settings.html
    // Linter specific settings except for 'styles' can also be changed
    // in sublime-project settings.
    // What settings are available is documented in the readme of the
    // specific linter plugin.
    // Example:
    "linters": {
        // The name of the linter you installed
        "xmllint": {
            // Disables the linter. The default here is 'not set'
            "disable": false,

            // Additional arguments for the command line. Either a string
            // or an array. If set to a string, we 'shlex.split' it*.
            // E.g. '--ignore D112' or ['--config', './.config/foo.ini']
            //
            // * Note: Use proper quoting around paths esp. on Windows!
            "args": ["--valid"],


            // Lint mode determines when the linter is run. The linter setting
            // will take precedence over the global setting.
            "lint_mode": "background",

            // // Determines for which views this linter will run.
            // use default selectors .. which should work
            // if we have blank selector then we lint all files, which we don't want
            // "selector": "",

            // The current working dir the lint job will run in.
            // we need this file path to get the relative dir that the .dtd file is stored in
            "working_dir": "$file_path",

        }
    },
}