vim で日本語の後に英語の単語を下線で引く

vim で日本語の後に英語の単語を下線で引く

ここに画像の説明を入力してください

画像でわかるように、日本語の後の英語の単語の下に下線が引かれています。

Q1. 日本語の下に下線がないのはなぜですか?

Q2. どうやって取り除くのですか。

Q3. 構文がオンになっているからでしょうか?

前もって感謝します。

答え1

これはおそらく構文の強調表示によるものです。マークダウン形式のテキスト ファイルにリンクを記述しているようで、構文強調表示機能によって、構文の強調表示のために英語部分に下線が引かれているようです。

ご存じのとおり、vim では日本語の文字に下線は表示されません (これはおそらくすべての表意文字言語に当てはまります)。私は言語学者ではありませんが、日本語に下線が引かれていないのは、下線を引くと英語などのアルファベット言語とは異なり意味が変わってしまう恐れがあるためだと推測します。

vim での構文強調表示の詳細については、:h highlightおよびを参照してください。:hi

vim が markdown リンクをどのように定義しているかを確認するには、次を使用します。

:hi markdownLinkText

私にとって、これは次のような反応をもたらします:

markdownLinkText xxx links to htmlLink

...つまり、htmlLink 定義から定義を継承しているということです。では、見てみましょう:

:hi htmlLink
htmlLink xxx links to Underlined
:hi Underlined
Underlined xxx cterm=underline ctermfg=9 guifg=#6c71c4

ああ、これで仕事が始まりました! もちろん、ここにあるものは私のものとは異なる場合があります。ctermここでは、vim がカラー ターミナルで実行するときに適用する装飾を定義し、では、ctermfgvim がそのテキストに使用する前景色 (テキスト) を定義します (また、guifgvim が gVim などの GUI バージョンで実行されているときに使用する色を定義します)。必要に応じて、の定義方法を変更できますUnderlined

:hi Underlined cterm=none

これにより、すべての下線が削除されます。次のように markdownLinkText を変更することもできます。

:hi markdownLinkText ctermfg=9

...下線付きの書式は変更されません。これらを永続的にするには、行を追加する.vimrc

関連情報