基于行计数设置行号

2021-02-04 23:37

如果文件有大量行,我希望启用行号,否则默认情况下不启用行号。如果我运行命令:if行(“$”)>;150

解答动态

  • :设置编号

    • endif
      当vim打开时,文件行按预期启用/不变。把这条线放进我的初始化vim(对于neovim)没有效果。我做错了什么?谢谢!

      • 脚本初始化vim只有在您第一次启动Neovim或手动获取文件源时才执行(vimrc和vim也是如此)技巧:
        augroup ShowLineNumberForLongFiles自动驾驶!autocmd BufEnter*if line('$')>;150

        • setlocal number

          • endifaugroup end 每当您输入新的缓冲器组的第一行(autocmd!)有什么办法让大家清场吗内容。这个有助于避免在手动获取配置文件时堆积脚本。
            请注意,我将设置更改为setlocal,以确保该选项仅应用于当前缓冲区。
            以下是一些相关的帮助主题,您可以阅读以获取更深入的信息平面:
            :小时au命令:h:自动抄送:h BufEnter:小时A组:h:来源:h集:h setlocal

            • 此处适合使用自动命令…
              autocmd BufReadPost*if line('$')>;150

              • :setlocal number

                • else

                  • :setlocal nonnumber

                    • endif OR,您可以使用MartinTournoij的这一出色的增强功能。结果是一样的,但占用的空间要小得多空格:
                      autocmd BufReadPost*让gt;150 解释:首先,gt;150基本上返回true或false。由于'number'应该设置为true或false,我们也可以直接从条件结果let&l:number=…
                      中赋值,不管怎样,这种自动命令方法都可以完成一些事情…
                      确保在加载任何缓冲区后(当已知行数时)进行检查。使用特定于缓冲区的设置,而不是全局设置设置。显式根据需要启用或禁用以确保正确的设置。 请注意,如果文件具有设置/取消设置具有优先级的行号的模型线,并且将覆盖此行号。
                      如果在通常使用自动命令之前未使用这些命令,则初始化vim文件。您应该将它们包含在一个自动命令组中,如下所示…
                      augroup initvimucs au![auto commands go here]augroup end 这可以确保在重新加载时不会多次输入这些命令初始化vim.
                      Update:我不知道您是否在考虑这个问题,但值得指出的是(再次向MartinTournoij表示赞同)这是静态的,即行号取决于缓冲区负载,以及随后是否超过或低于150行什么都不会改变。这是绝对可能的扩展,所以它是动态的。如果你对此感兴趣,请告诉我

                      • End

                      免责声明:

                      本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。