Простой способ получить подсветку синтаксиса для Julia в Vim

Dec 29 2020

Я пытаюсь заставить Джулию подсветить синтаксис в Vim. К сожалению, на данный момент у меня нет подсветки синтаксиса ( вот небольшой фрагмент моего кода, чтобы вы могли увидеть, как он сейчас выглядит ). Я попытался установить julia-vim, поместить его в файл .vimrc и установить, но на самом деле это не меняет выделения. Ниже представлен файл .vimrc:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
  set rtp+=~/.vim/bundle/Vundle.vim
 call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
  Plugin 'VundleVim/Vundle.vim'

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
 Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
  Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own 
   plugin)
  Plugin 'file:///home/gmarik/path/to/plugin'
 " The sparkup vim script is in a subdirectory of this repo called vim.
 " Pass the path to set the runtimepath properly.
 Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
 " Install L9 and avoid a Naming conflict if you've already installed a
  " different version somewhere else.
 " Plugin 'ascenator/L9', {'name': 'newL9'}

 " All of your Plugins must be added before the following line
   call vundle#end()            " required
   filetype plugin indent on    " required
  " To ignore plugin indent changes, instead use:
  "filetype plugin on
  "
  " Brief help
  " :PluginList       - lists configured plugins
   " :PluginInstall    - installs plugins; append `!` to update or 
    just :PluginUpdate
   " :PluginSearch foo - searches for foo; append `!` to refresh local cache
   " :PluginClean      - confirms removal of unused plugins; append 
   `!` to auto-approve removal
   "

   Plugin 'JuliaEditorSupport/julia-vim'


  "
  "
  "
  " see :h vundle for more details or wiki for FAQ
  " Put your non-Plugin stuff after this line

Я также помню, как это исправить, прочитав документацию julia-vim . Я что-то делаю неправильно, или есть другой способ добавить подсветку синтаксиса к Джулии?

Из одного из ответов на этот вопрос, заданного @Thomas , я понял, что, возможно, именно так я настроил свой терминал, но я бы предпочел оставить терминал с нынешней цветовой схемой, если это возможно. Смотрите здесь мои текущие настройки.

РЕДАКТИРОВАТЬ: Благодаря @axwr я смог выделить синтаксис, поставив

  syntax on

в конце файла .vimrc, а затем запустив

   :so %

при редактировании файла .vimrc. Однако, как вы можете видеть здесь , цветовая кодировка кажется не идеальной. Только определенные пакеты отображаются желтым цветом, большинство по-прежнему зеленым, а случайные элементы (обычно числа) отображаются фиолетовым цветом. Это то, как julia-vim раскрашивает вещи, или я что-то делаю не так?

Ответы

4 axwr Dec 29 2020 at 03:04

Хорошо, итак.

Есть два шага для выделения синтаксиса в Vim; фактически включив его, и имея возможность выделить конкретный язык, на котором вы хотите работать. Для большинства языков vim может делать это по умолчанию, однако для некоторых языков, таких как Julia, требуется небольшая помощь. В этом случае вы выполнили второй шаг, установив плагин Julia с помощью vundle.

Чтобы выполнить первый шаг, вам просто нужна строка: syntax onв вашем файле vimrc. Минимальный пример vimrc для вас может выглядеть так:

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'JuliaEditorSupport/julia-vim'
call vundle#end()

set nocompatible
set backspace=indent,eol,start
set number
set hidden

syntax on
filetype plugin indent on

С учетом приведенных выше настроек и терминала с "солнечной" цветовой схемой файл julia выглядит так:

Вот небольшой отрывок fizzbuzz julia, который вы можете сравнить с выделением:

for i in 1:100
    if i % 15 == 0
        println("FizzBuzz")
    elseif i % 3 == 0
        println("Fizz")
    elseif i % 5 == 0
        println("Buzz")
    else
        println(i)
    end
end

Итак, пошагово:

  • Добавить syntax onв свой.vimrc
  • Добавить filetype plugin indent onв свой.vimrc
  • Установите соответствующий плагин
  • Загрузите свой .vimrcили закройте vim.
  • откройте файл с правильным расширением, например: test.jl