1

シンタックスハイライトについてはすでに質問しましたが、これは(私には)異なっているようで、Stackoverflowで答えを見つけることができませんでした。

1)VimでTodoリストを作成したいとします。このTodoリストには、タスク+3つの異なる方法で強調表示された「領域」が含まれている必要があります。

  • タスク(たとえば、車を洗う)は、常に最初に、強調表示されていないプレーンなテキストのままにする必要があります
  • そのことをしなければならない人-私自身-の前に@が付きます。(例)緑色で強調表示したい
  • タスクのカテゴリ(ここでは世帯)の前に§があります。黄色にしたい
  • タスクの重要性-ここでは後で-、前に#を付けます。これは私が赤くなりたいです。

したがって、結果は(1行で)次のようになります。

車を洗う@myself(緑)§Household(黄色)#Later(赤)

@で始まり、§で終わる最初の領域、§で始まり#で終わる2番目の領域、および#で始まり$で終わる3番目の領域を定義しようとしました。

:syntax region xPers start ='@' end='§'
hi xPers ctermfg=DarkGreen
:syntax region xProject start ='§' end='#'
hi xProject ctermfg=DarkYellow
:syntax region xImportance start ='#' end='$'
hi xImportance ctermfg=DarkRed

役に立たない…タスク自体の後に続く、@で始まるすべての表示は緑色で強調表示されます。

私の(許されない)エラーは何ですか?

2)物事をより複雑にするために、私は無秩序な方法でタスクを書き留めて、次のように書くかもしれません:

車を洗う@myself(緑)#Later(赤)§Household(黄色)

この規律の欠如を考慮に入れ、色を正しく保つために、構文をどのように定義する必要がありますか?

前もって感謝します

4

1 に答える 1

1

Todo.txtとTodo.txtのvim構文ファイルを確認することをお勧めします。ただし、質問によると、記号ではなくスペースで終了したいようです。だからあなたはこれを行うことができます:

syntax region xPers start ='@' end=' '
hi xPers ctermfg=DarkGreen
syntax region xProject start ='§' end=' '
hi xProject ctermfg=DarkYellow
syntax region xImportance start ='#' end=' '
hi xImportance ctermfg=DarkRed

ただし、これは行の終わりを考慮しません。したがって、次のように行の終わりに「または」ステートメントを入れることができます。

syntax region xPers start ='@' end=' \|$'
hi xPers ctermfg=DarkGreen
syntax region xProject start ='§' end=' \|$'
hi xProject ctermfg=DarkYellow
syntax region xImportance start ='#' end=' \|$'
hi xImportance ctermfg=DarkRed
于 2012-09-07T20:55:07.627 に答える