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

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

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

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

Q&A

解決済

2回答

2549閲覧

vim 現在行(set cursorline)のハイライト設定を他でも使いたい

takets

総合スコア43

Vim

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

0グッド

0クリップ

投稿2017/07/21 09:07

###前提・実現したいこと
set cursorlineの設定をすると、ウインドウの幅いっぱいにハイライト設定が適用される設定を使えるようにしたいと考えております。

###発生している問題・エラーメッセージ
syn matchで行全体を指定しても、文字が入力されている部分にしかハイライトが適用されない。

###該当のソースコード
syn match changelogFold "^.*$"

※上記はchangelogのシンタックスですが、他の言語でも使用する想定となります。

###試したこと

  • syn match changelogFold "^.* {{{[0-9]" contains=CursorLine

  • Cursorlineのsyn match設定がどこかにあるはずという仮定をして検索→発見できず

###補足情報(言語/FW/ツール等のバージョンなど)
Windows版kaoriya vimの最新バージョン

set syntaxのみ設定

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

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

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

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

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

guest

回答2

0

単に cursorline の、画面幅いっぱいにハイライトするという挙動を模倣したいのであるのなら、:sign コマンドを使うと不完全ですが実現することができます。
ただし画面左側に sign が置かれてしまいます(画面左端に2文字文のSignColumnが追加されます)。

#####signを設置する例

vim

1sign define Tmp linehl=CursorLine 2sign place 1 name=Tmp buffer=1 line=1

id name buffer line は適宜変更してください。

:h sign.txt

投稿2017/07/21 09:36

編集2017/07/21 09:58
noc

総合スコア73

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

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

takets

2017/07/21 10:32

サンプルコードありがとうございます。 signはなにに使うものか知らないままでいましたが、ブレークポイント等に使われているのですね。 試してみます!
guest

0

ベストアンサー

結論からいいますと cursorline の見た目はシンタックスハイライト機能で実装されていない為、実現は出来ません。
cursorline は vim の中で特別な扱いを行っていて、行末を超えてシンタックスハイライトする為に処理が入っています。

この機能はプラグイン作者の間でも前から欲しいと言われていた機能なので、いずれ実装するかもしれません。

投稿2017/07/21 09:22

編集2017/07/21 09:27
mattn

総合スコア5030

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

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

takets

2017/07/21 10:31

英語圏の記事を検索してもまったく事例が出てこないため、嫌な予感はしていましたが、不可能なのですね。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問