【问题标题】:vim "syntax on" does not workvim“语法”不起作用
【发布时间】:2013-04-17 07:24:03
【问题描述】:

这是我的.vimrc

  1 syntax on
  2 set ts=4
  3 set number
  4 set smartindent
  5 set shiftwidth=4

但是,我尝试编辑 HelloWorld.javaHelloWorld.c。两者都有纯正的黑色字体。没有任何突出显示!

vim打开后我也试过:syntax on,但没有运气。

\>vim -version
VIM - Vi IMproved 7.3 (2010 Aug 15)

\>cat /etc/*-release
openSUSE 11.4 (x86_64)
VERSION = 11.4
CODENAME = Celadon

【问题讨论】:

    标签: vim vi opensuse


    【解决方案1】:

    当你编辑文件时,你在使用

    vim filename
    

    这很重要。在某些服务器配置中,如果您执行vi filename,您将获得vim,但它是vim 的一个非常精简的版本,与原始vi 非常相似。如果您改为输入 vim filename,您将获得全功能的 vim。

    我刚刚与一个在安装了 vim-minimal 包以及另一个 vim 包的服务器上的人一起解决了这个问题。我怀疑(但没有验证)vim-minimal 包将其可执行文件安装为/bin/vi

    当您查看实际文件(即ls -l /bin/vi vs ls -l /usr/bin/vim)时,差异非常明显——一个大约是大小的十倍。它们实际上都是 vim,版本号相同,但 /bin/vi 编译时启用的功能很少。

    为了让它更加混乱:

    vi existing.pl
    

    打开 .pl 文件,没有给出语法着色

    vi [enter]
    

    给 vim 启动画面,然后从那里开始

    :e existing.pl
    

    打开带有语法着色的文件。

    【讨论】:

    • 太棒了。在过去的几年里,我花了几个小时试图让语法突出显示工作。它在我 2005 年安装的 CentOS 4 服务器上开箱即用,但从那以后就没有了。我已经阅读了许多文章,它们都指示我在 .vimrc 中添加“语法”,但直到现在都没有任何效果。 vim 和 vi 实际上是不同的二进制文件。向你致敬,好先生。
    • @mdoyle 我刚刚收到有关此问题的通知,并重新阅读了您的评论。我希望我能给你所有的问题业力,让我知道这对你有多大帮助!感谢您花时间输入。两年后回想起来,我仍然很高兴。
    【解决方案2】:

    您需要在 openSUSE 上安装 vim-data 软件包才能使 vim 语法着色工作。 听起来很奇怪,我知道这不是默认情况下使用 vim 包引入的,但 AFAIK 它适用于想要创建小型基础安装的人。 包 vim-data 包含运行时文件。

    还要确保您的远程环境具有适当的TERM 变量集 TERM=screen-256color、TERM=xterm、TERM=xterm-256color 应该都可以与 ssh 和 ssh 与 screen/tmux 一起正常工作。

    【讨论】:

    • 祝福你让我免于在最后 30 分钟把我的头撞在终端上。
    【解决方案3】:

    如果上述所有操作都已完成,并且您看到一些下划线和粗体而不是实际颜色...这可能对您有用:

    export TERM=xterm-color
    

    【讨论】:

    • 谢谢!这个固定的语法高亮显示; tmux 将 TERM 设置为 screen-256color,这似乎是 vim 不喜欢的。
    【解决方案4】:

    在您的 .vimrc 中,我没有看到 filetype 设置。您可以尝试添加:

    filetype plugin indent on 
    

    到你的 vimrc。

    如果您没有set nocp,也添加此行。

    如果您阅读:h filetype

    :filetype on
    
    Each time a new or existing file is edited, Vim will try to recognize the type
    of the file and set the 'filetype' option.  This will trigger the FileType
    event, which can be used to set the syntax highlighting, set options, etc.
    

    【讨论】:

    • 谢谢,肯特。我试过了。但没有运气。顺便说一句,我使用 ssh 连接这个 openSUSE 服务器。
    【解决方案5】:

    在 MacOS 上出于某些奇怪的原因,'syntax on' 必须是 .vimrc 文件的第一行。如果将该行放在文件的其他位置,则该行似乎会被忽略。

    【讨论】:

    • 这解决了我的错误。但是,要补充答案,如果您在任何其他行号上设置了“语法开启”,尽管它会抱怨“-bash:语法:找不到命令”,您将开始在 vi/vim 编辑器中看到颜色.
    【解决方案6】:

    未提及的一项是:set syntax=<type>,例如:set syntax=markdown

    这在上述其他技术不成功的情况下是成功的。

    【讨论】:

      猜你喜欢
      • 2013-11-14
      • 2013-08-18
      • 2018-08-30
      • 2011-03-06
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多