如何在同一个Svelte文件中为多种语言启用Vim语法突出显示?

时间:2019-10-02 23:08:52

标签: vim svelte

我有一个Svelte组件,它在一个文件中使用三种不同的语言。我想让Vim在(但不包括)适当的标签内突出显示每种语言。

如何配置.vimrc以启用此功能?

示例:

my-component.sv

<script lang='coffeescript'>
  // Highlight everything in here as CoffeeScript.

  import History from './History'
  import Leader from './Leader'
  import Spinner from './Spinner'

  getBalances = () ->
    response = await fetch('/api/balances')
    await response.json()
</script>

<template lang='pug'>
  // Highlight everything in here as Pug.

  main
    h1 Balance

    +await('getBalances')
      Spinner

      +then
        Leader
        History
</template>

<style lang='stylus'> 
  // Highlight everything in here as Stylus.

  main
    font-family 'Helvetica Neue'

  h1
    font-weight 200

    margin-bottom 10rem
    text-align center
</style>

1 个答案:

答案 0 :(得分:1)

类似于单个文件组件(例如posva/vim-vue)的现有插件,您需要一个插件来处理上下文相关的语法突出显示,例如evanleck/vim-svelteleafOfTree/vim-svelte-plugin。我无法证明后者的质量,可能会有更好的选择。

Vim需要相当特定的语法规则,但是由于大多数工作是在Vue插件中完成的,因此它很容易适应Svelte,因为基本的SFC语法似乎是相同的。根据我的收集,burner/vim-svelte应该可以满足您的需求。

official docs目前对此没有帮助。他们希望您将一切都变成HTML。