つい先日vimを使い始めた者です。
vim scriptで特定の行、位置(例: 10行目45文字目から60文字目)といった位置を指定した文字色の変更やハイライトは可能なのでしょうか。
具体的には、「nywコマンドやnyyコマンドで文字をヤンクした際、ヤンクされた範囲だけが(ペーストされるまで、或いはカーソルが移動するまで)色の変化等で強調される」ようなVim Scriptファイルを書いてみようと思ったのですが、
無名レジスタからヤンクされた文字列を取得する方法は見つかっても、それを編集画面上で強調して表示する方法が自力では見つけられませんでした。
vim
1function HighlightYank() 2 execute "syntax keyword yanked " . @@ 3 hi link yanked <color> 4endfunction 5 6autocmd TextYankPost *.vim call HighlightYank()
このように書くことで、シンタックスハイライトの対象となる文字列を動的に設定する方法は思いついたのですが、この方法ではハイライト対象が編集ファイル全体になってしまうと思います。
「カーソル直後からヤンクされた文字列の末尾までがマッチする範囲を行、文字位置で取得する」コードをRubyなどで書き、そこで得られた座標(?)を元に文字色の変更を実施する。
...ということはvim scriptで実現可能なのでしょうか。
非常に初歩的な質問でしたら申し訳ありません。
なお
vim version 8.0.1453 Windows Terminal (Preview) Version: 0.9.433.0 Ubuntu (on WSL)
という環境を利用しております。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/13 01:31 編集