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

GVIM 求几个插件

  •  
  •   dxcqcv · 2015-08-19 06:01:27 +08:00 · 3820 次点击
    这是一个创建于 3144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要实现 JS HTML CSS php python 语法检验,注释快捷键,折叠函数和 DIV 等标签快捷键 ,感觉自动折叠 DIV 最难

    例子
    比如 HTML 中这种错误
    <div id="one class="miss"></div>
    CSS 中这种错
    .
    .other {}

    47 条回复    2015-08-30 08:31:49 +08:00
    rundis
        1
    rundis  
       2015-08-19 07:07:45 +08:00
    你需要 SBT3
    jsfaint
        3
    jsfaint  
       2015-08-19 08:45:17 +08:00
    装 syntastic ,然后 npm install -g jsxhint
    FrankFang128
        4
    FrankFang128  
       2015-08-19 08:52:33 +08:00
    WebStorm + IdeaVIM ,你最终的选择。
    FrankFang128
        5
    FrankFang128  
       2015-08-19 08:56:31 +08:00


    FrankFang128
        6
    FrankFang128  
       2015-08-19 08:57:55 +08:00
    折叠 div 在 WebStorm 是基础功能了
    xiaohanqing
        7
    xiaohanqing  
       2015-08-19 09:16:20 +08:00
    语法检查,折叠这些功能默认是有的,快速注释可以用 tcomment 。
    :help fdm
    :help syntax
    luoqeng
        8
    luoqeng  
       2015-08-19 10:03:07 +08:00
    spf13
    chenfjm
        9
    chenfjm  
       2015-08-19 10:51:00 +08:00
    dxcqcv
        10
    dxcqcv  
    OP
       2015-08-19 19:23:12 +08:00
    @rundis 全称是什么
    @luoqeng 全称是什么
    dxcqcv
        11
    dxcqcv  
    OP
       2015-08-19 21:13:41 +08:00
    @FrankFang128 第一个 CSS 错误没出现错误提示呀
    FrankFang128
        12
    FrankFang128  
       2015-08-19 21:54:59 +08:00 via Android
    @dxcqcv 黄块,样式完全自定制
    rundis
        13
    rundis  
       2015-08-20 11:14:18 +08:00 via iPhone
    @dxcqcv sublime text3
    livelazily
        14
    livelazily  
       2015-08-20 12:02:34 +08:00
    折叠的话:
    zfi{
    zfi[
    zfit
    这几个基本够用了
    dxcqcv
        15
    dxcqcv  
    OP
       2015-08-20 20:26:39 +08:00
    @livelazily 用 zfit 折叠 div 会出现折叠不全的问题,你遇到过吗,比如最后多一个</div>出来
    livelazily
        16
    livelazily  
       2015-08-20 23:27:09 +08:00 via Android
    @dxcqcv 我自己写 HTML 一般都是前端 js 模板文件,都很模块化,用到折叠的情况不多,还没试过你说的情况。 zfit 匹配错误可以试试用 vitzf ,依旧错误的话试试装个 matchit https://github.com/vim-scripts/matchit.zip 看看有没有改善
    livelazily
        17
    livelazily  
       2015-08-20 23:32:22 +08:00 via Android
    dxcqcv
        18
    dxcqcv  
    OP
       2015-08-21 14:30:51 +08:00
    @livelazily

    nerdcommenter 这个能增加文件识别类型吗,比如和 dotnet 开发的时候会有 cshtml 文件

    matchit 装好后有改善,但似乎很依赖对齐,不过还行,非常感谢

    JS 生成 HTML 不都拼字符串吗?比如 str = '<div>...',你用什么 js 模板文件,好奇问问。
    livelazily
        19
    livelazily  
       2015-08-21 15:13:41 +08:00   ❤️ 1
    @dxcqcv 增加文件类型请查看 :h NERDCustomDelimiters

    前端模板很多啊, angularjs 里面就有, backbonejs 依赖的 underscorejs 里也有简单实现 http://underscorejs.org/#template

    更多示例:
    http://garann.github.io/template-chooser/

    开发时都是写小的 html, 再通过 build 工具生成为 js 文件,加载到页面, 然后再用模板引擎渲染
    dxcqcv
        20
    dxcqcv  
    OP
       2015-08-21 16:29:46 +08:00
    @jsfaint 有 CSS 的语法检查器吗?我装了 syntastic
    jsfaint
        21
    jsfaint  
       2015-08-21 20:24:06 +08:00
    @dxcqcv syntastic 目前支持的 css checker 有 csslint , phpcs , prettycss , recess
    需要单独配一下,如果用 youcompleteme ,它会帮你配好,如果不用就需要自己在 vimrc 里面写
    dxcqcv
        22
    dxcqcv  
    OP
       2015-08-25 10:50:58 +08:00
    @jsfaint 配置搞定,问下你的 HTML 校验用 validator 吗?我用后打开 html 好卡,换用 jshint 和 w3 都检验不出错误
    @livelazily 你有遇到过在同一个文件里需要不同类型注释的情况吗?比如在 html 里注释 css 和 js
    livelazily
        23
    livelazily  
       2015-08-25 12:32:08 +08:00
    @dxcqcv 混合类型的情况插件还不支持, github 上一堆提 issue 的...
    jsfaint
        24
    jsfaint  
       2015-08-25 13:02:55 +08:00
    @dxcqcv 我用 mac ,自带有个叫 tidy 的命令
    你在 vim 里面打:SyntasticInfo ,可以看到有效的 checker ,以及当前使用的 checker
    dxcqcv
        25
    dxcqcv  
    OP
       2015-08-25 14:05:23 +08:00
    @jsfaint 恩, w3, validator , jshint 都能用,但 w3 和 jshint 检查 html 不报错, validator 报错但打开文件太慢太卡,最后那个 tidy-html5 死活装不上,要用 cmake 命令,而不是简单的 pathogen 就 OK 了, mac 自带 tidy 呀真是幸福,我在研究下 tidy-html5
    dxcqcv
        26
    dxcqcv  
    OP
       2015-08-25 14:05:48 +08:00
    @livelazily 非常感谢
    jsfaint
        27
    jsfaint  
       2015-08-25 15:02:02 +08:00
    @dxcqcv tidy-html5 的 github 上给了个链接 http://www.htacg.org/binaries/
    编译好的 tidy~~
    dxcqcv
        28
    dxcqcv  
    OP
       2015-08-25 15:47:34 +08:00
    @jsfaint 我试了很多方法装 tidy 和 tidy-html5 , npm 装, pathogen 装,用你链接里的 msi 装,但装好后, SyntasticInfo 里没有 tidy ,也不知道为什么
    livelazily
        29
    livelazily  
       2015-08-25 18:22:59 +08:00
    @dxcqcv 是不是没添加到 PATH 啊
    dxcqcv
        30
    dxcqcv  
    OP
       2015-08-26 09:33:19 +08:00
    @livelazily 不会啊,我都是 npm install -g 安装的,全局都会有,就 tidy-html5 装不出来, jshint 什么都没问题
    jsfaint
        31
    jsfaint  
       2015-08-26 12:32:58 +08:00
    @dxcqcv 我直接去下了一个 tidy-html5 的 zip ,解压扔到 PATH 下
    然后用 Vim 打开一个 html 文件,执行 :SyntasticInfo 就可以看到 Currently enabled checker: tidy
    PS: V2EX 我至今不会贴图……
    dxcqcv
        32
    dxcqcv  
    OP
       2015-08-26 14:07:40 +08:00
    @jsfaint 我在 gvim 中输入:echo $PATH ,后显示 http://7xlcrz.com1.z0.glb.clouddn.com/vimPath.png
    其中是有 vim74 的
    然后我在 vim74 中仍解压后的 tidy-html5 ,如图 http://7xlcrz.com1.z0.glb.clouddn.com/vimPath02.png
    最后:SyntasticInfo ,就是不出现 tidy ,图 http://7xlcrz.com1.z0.glb.clouddn.com/vimPath03.png
    dxcqcv
        33
    dxcqcv  
    OP
       2015-08-26 14:09:46 +08:00
    我试试 markdown 语法
    @jsfaint 我在 gvim 中输入:echo $PATH ,后显示![img1]( http://7xlcrz.com1.z0.glb.clouddn.com/vimPath.png )
    其中是有 vim74 的
    然后我在 vim74 中仍解压后的 tidy-html5 ,如图![img2]( http://7xlcrz.com1.z0.glb.clouddn.com/vimPath02.png )

    最后:SyntasticInfo ,就是不出现 tidy ,图![img3]( http://7xlcrz.com1.z0.glb.clouddn.com/vimPath03.png )
    dxcqcv
        34
    dxcqcv  
    OP
       2015-08-26 14:27:33 +08:00
    还有一点,虽然能看到 w3 和 validator 但启用这 2 个一点错误也不会报, NND , windows 下真是坑
    dxcqcv
        35
    dxcqcv  
    OP
       2015-08-26 15:13:27 +08:00
    而且我装了 curl
    jsfaint
        36
    jsfaint  
       2015-08-27 09:04:36 +08:00
    @dxcqcv 可能不同的 checker 优先级不同,要么直接写到 vimrc 里面指定用哪个 checker ,要么把 w3 拿掉试试
    let g:syntastic_html_checkers=["tidy"]
    dxcqcv
        37
    dxcqcv  
    OP
       2015-08-27 09:31:06 +08:00
    @jsfaint 但不应该在 available checkers 里没有 tidy ,这是最奇怪的地方
    dxcqcv
        38
    dxcqcv  
    OP
       2015-08-27 09:38:28 +08:00
    @jsfaint 强制 tidy 后,再 syntasticInfo 显示 Currently enabled checkers 是-
    jsfaint
        39
    jsfaint  
       2015-08-27 10:14:44 +08:00
    @dxcqcv
    我这边看到是这样的
    dxcqcv
        40
    dxcqcv  
    OP
       2015-08-27 13:06:27 +08:00
    @jsfaint 除了重装系统,我什么都做了,怎莫办, tidy 就是不出来,也没有错误提示,我都不知道漏了什么

    顺便,你的 COMMAND 那根黄色的提示条是什么插件,挺漂亮的
    jsfaint
        41
    jsfaint  
       2015-08-27 14:40:16 +08:00
    @dxcqcv 你开一个 cmd ,直接运行 tidy ,能成功么?
    那个是[vim-airline]( https://github.com/bling/vim-airline )
    dxcqcv
        42
    dxcqcv  
    OP
       2015-08-27 15:04:53 +08:00
    @jsfaint 不行,不是内部命令也不是外部命令,但 curl --version 有版本
    jsfaint
        43
    jsfaint  
       2015-08-27 15:44:54 +08:00
    @dxcqcv 开 cmd 不能直接运行说明你的 tidy 就有问题啊,要么不在 PATH 里面,要么本身的可执行文件就有问题。 windows 的话你直接到目录下运行 tidy , linux 就检查下有没有 x 属性
    dxcqcv
        44
    dxcqcv  
    OP
       2015-08-27 16:10:58 +08:00
    @jsfaint 直接在目录里也无法运行 tidy ,打开后什么都没有,我是官网 msi 安装的,如图

    http://7xlcrz.com1.z0.glb.clouddn.com/tidy01.jpg
    jsfaint
        45
    jsfaint  
       2015-08-28 11:34:42 +08:00   ❤️ 1
    @dxcqcv 结合上面的某个截图,你的 tidy 根本不在 PATH 里面啊……
    你如果想放 Vim 目录下,就直接把 tidy.exe 和 gvim.exe 扔到同一个目录,不要多加一层 bin 目录……
    dxcqcv
        46
    dxcqcv  
    OP
       2015-08-28 13:58:54 +08:00
    @jsfaint 搞定了,多了层 bin 就不行,非常感谢
    jsfaint
        47
    jsfaint  
       2015-08-30 08:31:49 +08:00
    @dxcqcv 恭喜~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3238 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:56 · PVG 21:56 · LAX 06:56 · JFK 09:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.