質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

1回答

1557閲覧

TOMLの複数行リテラル文字列内でシングルクオートが三連続してしまう場合

masatik

総合スコア15

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2018/10/10 01:06

編集2018/10/10 01:21

前提・実現したいこと

TOMLの複数行リテラル文字列で
連続したシングルクオートを書きたいのですが、
どうしてもパースエラーになってしまいます。

ダブルクオートで書くのが正解なのか、
そもそも不可能なのでしょうか。

neovimのdeinのtoml設定ファイル中です。

TOML

1hook_post_source = ''' 2let start = '^\s*hook_\%('. 3 \ 'add\|source\|post_source\|post_update'. 4 \ ')\s*=\s*%s' 5call SyntaxRange#Include(printf(start, "'''"), "'''", 'vim', '') 6call SyntaxRange#Include(printf(start, '"""'), '"""', 'vim', '') 7'''

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

TOML の文法上、複数行リテラル内にデリミタ(''' """)をそのまま含めることはできないみたいですね。
""" であれば、仕様上エスケープすることで含められそうです。

toml

1hook_post_source = """ 2let start = '^\s*hook_\%('. 3 \ 'add\|source\|post_source\|post_update'. 4 \ '\)\s*=\s*%s' 5call SyntaxRange#Include(printf(start, "'''"), "'''", 'vim', '') 6call SyntaxRange#Include(printf(start, '\"""'), '\"""', 'vim', '') 7"""

ただし、dein.vim が使っている TOML のライブラリにバグがあり、このエスケープがうまくいかないようです。
先ほどライブラリは修正したので、あとは dein.vim がこれを取り込んでくれれば上記のように書けると思います。

投稿2019/02/08 08:57

thinca

総合スコア1864

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masatik

2019/02/08 10:41

ありがとうございます。 輪読会を毎週楽しみにROMっているのもあり、 憧れのvimmerから回答を頂き興奮しています。 vitalも関係していたのですね。 やはり、vimは奥深く、楽しいです。 本当にご対応いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問