【问题标题】:textmate >> vim for python - teething troubles: especially indentingtextmate >> vim for python - 初期问题:尤其是缩进
【发布时间】:2010-11-22 22:56:59
【问题描述】:

我(尝试)从 textmate 转到 vim [确切地说是 macvim] 作为我的主要编辑器。我已经安装了 snipmate - 想知道您是否建议我安装其他插件?

特别是我似乎在缩进方面遇到了很多麻烦(<< 似乎真的做了一些非常奇怪/不可预测的事情),我似乎无法找到解决方案 - 是否有我需要的插件让它正常工作?

谢谢!

【问题讨论】:

    标签: python vim textmate macvim


    【解决方案1】:

    对于源代码,

    :h =
    

    简而言之,在您希望使用的块内的正常模式下:

    • =a{ 重新缩进一个块。 =a}=aB 也可以。
    • =2a{ 重新缩进此块及其外部块。
    • 如果您碰巧站在大括号上,那么 =% 将重新缩进到匹配的大括号。
    • >a{ 增加这个块的缩进。
    • <a{ 减少该块的缩进。
    • . 重复上一条命令,因此<a{. 将该块的缩进减少了两次。

    确保您设置了filetype,以便 Vim 识别文件类型。毕竟缩进是文件类型的一个功能。

    对于文本,

    :h gq
    
    • gq{ 将格式化此段落。
    • gq( 将格式化这句话。
    • gqgq 将格式化这一行。
    • gggqG 将格式化整个文档。

    【讨论】:

    • 您能否更具体地说明合适的工作流程?假设要取消缩进一个块?
    • 顺便说一句,我看你是个蟒蛇人。在 Python 中,缩进参与语义和程序逻辑。 Vim 不会为你编程。有时它可以看到一定范围的行必须至少以某种方式缩进,以使程序在漂亮的同时有效。但在 Python 中,您经常需要使用 <> 命令进一步缩进以调整事物的语义。
    • 例如,在 Python 中,if True: \ndothis() \ndothat() 可以根据缩进表示不同的含义。 (想象\n 是换行符)。 dothat() 应该是 if 块的一部分,还是外部块的一部分? Vim 无法回答这个问题,但它可以确定 dothis() 应该缩进以使程序有效。它会让dothat() 不缩进,让您决定它应该在什么范围内。
    【解决方案2】:

    在你的 vimrc 文件中设置文件类型设置

    filetype plugin indent on
    

    这应该启用文件类型插件和自动缩进

    【讨论】:

      【解决方案3】:

      我不确定您需要什么,因为我没有使用过 textmate。但我确实使用这些Plugins for VIM。他们帮了我很多。

      【讨论】:

        猜你喜欢
        • 2020-08-09
        • 2022-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多