Vim-users.jp
Hack #234: Vim外にいるときはVimを透けさせる
- 2011-10-05 (水)
- Vim Hacks
こんにちは、ujihisaです。無事引っ越しが完了しましたが、インターネット回線の確保にはもうしばらく時間がかかるらしく、しばらく家でオフラインな状態です。ちなみに来日することが決まりました。こんなカンファレンスや、勉強会を企画してみました。いずれも来月です。
問題
Vim使いの大半は、Vimをフルスクリーンで使っていることと思います。このとき、WindowのfocusがVimの窓にあるときは別に構わないのですが、focusがVimの外にあるときに、つねに背景がVimになってしまいます。せっかくファンシーなデスクトップの壁紙を設定しているのに、システム起動直後と終了直前にしか見れないのは、いささか寂しいものです。
解決
VimにはFocusGainedとFocusLostというイベントがあります。これを用いてVimの透明度を変更すると、とてもいい感じになります。
参考までに、著者のMacVimのための設定を以下に掲載します。~/.vimrcではなく~/.gvimrcに記述してください。
augroup hack234
autocmd!
if has('mac')
autocmd FocusGained * set transparency=10
autocmd FocusLost * set transparency=50
endif
augroup END
普段は透明度10 (ほとんど不透明)にしており、focusがないときは透明度50 (かなり透明) にしています。筆者のGentoo上のGVimは'transparency'をサポートしていないため、if has('mac')で条件分岐しています。


追記
mattnさんがWindows版GVimでも動作するためのプロジェクトを発動させたようです。
ujihisa- Comments: 0
- Trackbacks: 0
Hack #233: 現在使用中のColorSchemeの名前を取得する
- 2011-09-30 (金)
- Vim Hacks
こんにちは、ujihisaです。今月末に引っ越しをする予定があり、毎日忙しく、Vimを使う暇すらない日々が続いています。
問題
美しいColorSchemeを使用しており、それを友達に自慢したいVim使いは多数いると思います。しかしながら、現在使用中のColorSchemeの名前を取得する方法が分からず、はがゆい思いをしたことがある人も少なくないのではないでしょうか。
解決
二つの方法があります。
:colorscheme
あるいは
:echo g:colors_name
前者は画面にColorScheme名を表示する専用のコマンド、後者はColorScheme名が入っている変数を得てそれを表示しているわけですので、対話的に使用するときは前者を、Vim scriptから値を使用するときは後者を使うと自然になります。
注意
必ずしも上記方法で現在使用中のColorSchemeが得られるとは限りません。ColorScheme開発者には、そのColorScheme名をg:colors_nameというグローバル変数に格納することが推奨されていますが、自動的に行われるわけではありません。
上記のような場合、:colorschemeは無条件にdefaultと出力します。また、g:colors_nameにアクセスするとエラーを吐き出します。
悪評高いColorSchemeの例としてleoがあります。:colorscheme leoして:echo g:colors_nameないし:colorschemeして、絶望しましょう。
そして、パッチを投げましょう。
ujihisa- Comments: 0
- Trackbacks: 0
Hack #232: Clojure開発環境を整える
- 2011-09-25 (日)
- Vim Hacks
こんにちは、ujihisaです。Vancouverでは空前のClojureブームが発生しており、毎週のようにClojure勉強会があり、Vim使いやEmacs使いが集結しています。
問題1
Clojureでシンタックスハイライトや自動インデントを行いたい。
解決1
VimClojureというプラギンをインストールします。
https://github.com/jondistad/vimclojure
なお、g:clj_highlight_builtinsを設定すると標準関数のハイライトが、またg:clj_paren_rainbowを設定すると括弧の対応が虹色に美しく輝き、便利です。筆者は以下のようにして両方とも利用可能にしています。
~/.vimrc:
let g:clj_highlight_builtins = 1
let g:clj_paren_rainbow = 1

問題2
改行するたびにyankしている文字列が消える?
解決2
VimClojureをアンインストールするか、頑張ってパッチを書きます。
VimClojureには深刻なバグがあり、インデントを調整するたびにyankしている文字列が完全に破壊されます。
問題3
Clojureのコードを即座に実行し、結果を別バッファに表示しつづけたい。
解決3
quickrunを用います。もしcljというコマンドを持っていれば、ファイルタイプがclojureであるバッファに対してquickrunは無設定で動作します。
https://github.com/thinca/vim-quickrun

問題4
quickrunに時間がかかりすぎる。
解決4
JVMの立ち上げ時間とライブラリの読み込み時間がとても長いのが原因です。Clojure処理系を立ち上げたままにしておくことで、劇的な高速化が実現できます。そのための道具としてNailGunとJarkがあります。筆者のオススメはJarkです。
https://github.com/icylisper/jark
Jarkをインストールしたら、まずはJarkサーバを立ち上げましょう。vimshellなどで
$ jark vm start
として事前にJarkサーバを立ち上げ、そしてquickrunします。OSを終了するときまで、すなわちVimを終了するときまで、Jarkサーバを終了する必要はありません。
quickrunは既にjarkに対応していますので、無設定でいきなり使えるはずです。
以下に感動的なベンチマーク結果を載せます。
(println "hello")
とだけ書いたコードをcljとjarkのそれぞれでtimeコマンドで比較してみたところ、それぞれ
-
clj
1.40 real 2.09 user 0.15 sys -
jark
0.19 real 0.11 user 0.06 sys
となりました。実験はかなりパワフルなiMacを用いて行ったので、一般的な初代MacBook Airなどのマシンで行うと、さらに顕著な差が出るでしょう。
ujihisa- Comments: 3
- Trackbacks: 2
Vimテクニックバイブルが発売されました
- 2011-09-24 (土)
- その他

数多くの人が購入し、すでに完読した方も多くいらっしゃることと思います。
感想をブログに書いた方は、その情報を共有するため、ぜひともこのエントリにトラックバックを送るなり、コメントでURLを貼付けるなどとしたいただけると、大変便利です。
- Comments: 0
- Trackbacks: 1
Hack #231: Rubyで入力と出力からメソッド名を自動補完する
- 2011-09-20 (火)
- Vim Hacks
こんにちは、ujihisaです。社内Hackathonがあるということで土日に出社したものの、どちらも僕以外全員不参加で涙目でした。
問題
Rubyでメソッド名を補完する方法をHack #229: 動的型付け言語Rubyでメソッド名などを自動補完するで紹介しました。これは、オブジェクトからそのメソッドをすべて網羅することで補完を行うというアプローチでした。
では、オブジェクトと、メソッドを呼び出すことで得られる返り値の両方から補完を行うことはできないのでしょうか。
例示します。Rubyでは、1というオブジェクトから2というオブジェクトを得るには、1に対してsuccまたはnextというメソッドを呼び出すことで実現できます。
1.succ #=> 2
また、[:a, :b, :c]というオブジェクトから:aというオブジェクトを得るには、[:a, :b, :c]というオブジェクトにfirstなどのメソッドを呼び出すことで実現できます。
[:a, :b, :c].first #=> :a
カーソル位置がオブジェクトの直後のメソッド呼び出しの.にあるとき、メソッド名が自動補完されるのを期待するのはごく自然なことと思います。
解決
つい先日リリースされたばかりの、neco-rubymfというneocomplcacheプラギンを用います。
インストール:
-
Rubygemsパッケージ
methodfinderをインストールします。$ gem install methodfinder -
neocomplcacheプラギンneco-rubymfをインストールします。もしも未だにneocomplcacheをインストールしていなければ、そちらもインストールして下さい。
続いて、'filetype'がrubyであるバッファで、以下のように入力します(ただし¶はカーソルのつもりです。)
1.¶ #=> 2
すると、1というオブジェクトが持つメソッドでかつ返り値が2であるメソッド nextとsuccが補完候補にあらわれます。

同様に、
[:a, :b, :c].¶ #=> :a
に対して

が得られます。
以下に他の例を画像で示します。



※最後の例は確率的に発生します。
ujihisa- Comments: 0
- Trackbacks: 0
Hack #230: Markdown形式の文書を書く2 (quickrun0.5.0対応版)
- 2011-09-15 (木)
- Vim Hacks
こんにちは、ujihisaです。11月くらいに来日する予定で、そのときに大規模なVimの勉強会などを開催したいと思っています。発表をしてみたい方は、気軽に @ujm などに英語で連絡ください(*1) 。
問題
VimでMarkdown形式の文書を書くための記事を2年ほど前に執筆し、こちらで公開していました。
ところで先月quickrun version 0.5.0 がリリースされました。その際大きな仕様変更がありました。それについては下記の記事に詳しく掲載されています。
先ほどのHack #52の記事に掲載されている情報のままでは、Markdown形式で執筆中のバッファの内容をHTMLに変換してブラウザで開くことができません。どのようにすればよいのでしょうか。
解決 (1/2)
quickrun 0.5.0はデフォルトで4種類のmarkdown変換機をサポートしています。
- Markdown.pl (Perl.
cpan install Markdownかな?) - kramdown (Ruby.
gem install kramdown) - bluecloth (Ruby.
gem install bluecloth) - redcarpet (GitHubなどで使われている悪評高いMarkdownエンジン)
- pandoc (Haskell.
cabal install pandoc)
もしも$PATHに上記のコマンドがあれば、それを用いて変換します。優先順位はこの一覧と同じです。
したがって'filetype'がmarkdownであるようなバッファを編集中に:QuickRunすると、上記コマンドのいずれかが呼ばれ、そして編集中バッファをhtmlに変換したものをquickrunウインドウに表示します。なので、この出力先をbufferではなくbrowserにすればそれで問題が解決されます。
~/.vimrcに以下の設定を記述します。
let g:quickrun_config['markdown'] = {
\ 'outputter': 'browser'
\ }
ただし、もしもこれまでg:quickrun_configを全く使った事がない自信があるならば、以下の行をその前に記述してください。
let g:quickrun_config = {}
続いてopen-browser.vimがインストール済みかどうか確認します。インストールしていなければ、すぐにいれましょう。
これで'filetype'がmarkdownなバッファから:QuickRun (あるいはデフォルトのキーマッピングである\rの打鍵) で、新しいウインドウが分割されてHTMLが出力されるかわりに、ブラウザが立ち上がってそちらにHTMLがきれいに表示されるはずです。
解決 (2/2)
大抵の方は(1/2)の時点で大丈夫なのですが、しかしASCIIの範囲内に収まらない文書を書く一部の人は、pandocでMarkdownをHTMLに変換した後に、文字化けしたHTMLを見てしまったのではないでしょうか。
この場合はpandocの-sオプションを用います。
let g:quickrun_config['markdown'] = {
\ 'outputter': 'browser',
\ 'cmdopt': '-s'
\ }
おっとしかしpandoc以外でも-sを使われると困ります。間違ってredcarpetなどをインストールしてしまうと、なぜかそちらの方が高い優先度をもっているため、そちらを使われてしまうのです。ここはpandocを使用するよう強制してみましょう。
let g:quickrun_config['markdown'] = {
\ 'type': 'markdown/pandoc',
\ 'outputter': 'browser',
\ 'cmdopt': '-s'
\ }
実はこのあたりは詳しくはquickrun公式ヘルプに掲載されています。詳しくは:h quickrun-examplesをご覧ください。
補足
現在開発中のquickrun 0.5.1では新機能”hook”というものがつくそうです。いまから楽しみですね!
脚注
- *1 スペイン語も勉強中ですので、対応可能です。
- Comments: 0
- Trackbacks: 0
Hack #229: 動的型付け言語Rubyでメソッド名などを自動補完する
- 2011-09-15 (木)
- Vim Hacks
問題

静的型付け言語Haskellでの自動補完はHack #211で紹介しました。このときは補完候補の取得にghc-modという外部コマンドを用いました。補完候補を自動的に出力するためにneocomplcacheというVimプラギンを用いました。
動的型付け言語Rubyにおける自動補完はどのようにすれば達成できるでしょうか。Rubyのように非常に静的な解析が難しい言語では、メソッド名などの候補の取得が非常に困難であることが知られています。そもそも現在参照している式あるいは変数がどのクラスに属しているか、ほとんどのケースでは静的に決定することができません。クラスが分かったとしても、その変数のみが特異メソッドを持っているかもしれません。
解決(1/2)
Rubyでメソッド名を手動補完するために使えるものは、標準添付のvim-rubyというVimプラギンと、m2ymさんによって開発されたRSenseがあります。
vim-rubyは、+rubyであるVim環境(*1)における補完機能を提供します。
Ruby組み込み定数・クラス・グローバル関数(*2)などが補完できます。
詳しくは:h ft-ruby-omniを参照してください(*3)。
補完関数はオムニ補完として定義されているので、デフォルトの設定では、挿入モードで<C-x><C-o>と打鍵することで補完機能を実行することができます。
vim-rubyが諦めた部分は
- 編集中ファイル内で定義された定数・クラス・メソッドなどへの補完
- 文脈に応じたメソッド名の補完 (例えば1という数値オブジェクトに対しては
Fixnumクラスに定義されたメソッドのみが補完されるべき)
です。これらに対応するためには、Rubyのパーサなどを実装する必要があり、かなり大変です。またそもそも処理に時間がかかりすぎ、補完機構としはやりすぎと判断したのかもしれません(*4)。


一方RSenseは、vim-rubyが提供している機能にさらに加えて、上記の諦めた部分にも対応しています。

RSenseの補完関数もオムニ補完として定義されています。デフォルトでは、挿入モード時に<C-x><C-o>と打鍵することで補完のポップアップがでてきます。なお、初回起動時は若干時間がかかりますが、二回目からは非常にすばやいです(*5)。
解決(2/2)
手動補完がいかに実用的でないかは過去のVim Hacksで散々と述べられてきました。
通常の補完ではユーザーが明示的に補完のためのキーを押す必要がありました。つま り、「頭が補完をする」と考えなければ補完ができないのです。これにより、作業効 率が落ちてしまいます。それならばシステムが自動的に判断して、補完のためのキー を押したらどうでしょうか。これでユーザーはやらなければならない作業のみに集中 することができます。Vim7よりオムニ補完が実装されたので、Visual Studioのように 「関数やメンバを補完」は実現できるようになりました。しかし、そこには「自動的 に」が欠けているのです。
Shougo 2009 http://vim-users.jp/2009/07/hack-44/
自動補完を用いましょう。RSenseはneocomplcacheと連携することで自動補完として使うことができます。
RSenseを公式ドキュメントに従ってインストールした上で、~/.vimrcに以下の記述を行ないましょう。
if !exists('g:neocomplcache_omni_patterns')
let g:neocomplcache_omni_patterns = {}
endif
let g:rsenseUseOmniFunc = 1
if filereadable(expand('~/git/rsense/bin/rsense'))
let g:rsenseHome = expand('~/git/rsense')
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
endif
ただし、'~/git/rsense/bin/rsense'と'~/git/rsense'の部分を自身の環境に合致する内容にしてください。
なお、この設定は、neocomplcache作者により書かれた以下の記事を参考にしています。
http://vinarian.blogspot.com/2010/03/rsenseneocomplcache.html
補足
RSenseですら、特異メソッドには対応していないようです。
a = Object.new
def a.hello
:world
end
a.
ここからhelloを補完することはできません。(*6)
脚注
- *1
:versionして+rubyがあるかどうか調べてみてください。まあ、不必要です。 - *2 本記事の読者がRuby使いには限らないことを考慮して”グローバル関数”と記述しましたが、実際にはRubyに関数は存在しません。
Kernelなどに定義されているpなどのメソッドを便宜的にそのように読んでみました。 - *3 なお、ドキュメントに書かれているからといって実際に動作するとは限りません。私の環境では実際に試してみると動作しないものがたくさんありました…。
- *4
g:rubycomplete_buffer_loadingやg:rubycomplete_classes_in_globalを設定し、かつ+rubyな環境であればそれらにも対応しているとドキュメントに書かれています。お試しください。常用するのはかなり難しいようです。 - *5 初回起動時にこっそりと補完サーバを立ち上げるためです。なお、Windows環境の場合は特別な設定が必要なようです。詳しくは公式ドキュメントを参照ください。
- *6 この例だとhelloメソッドが同じバッファで定義されているのでneocomplcacheのバッファ内キーワード補完が働き、
helloが補完対象にあらわれます。が、これはオブジェクトaだけでなくすべての対象に働いてしまいます。また、helloの定義がそのバッファ内でないなら、当然ながらお手上げです。
参考文献
Vanrb Lightning Talk Slides: Ruby and Vim
非常にわかりやすい図がたくさんあります。
ujihisa- Comments: 0
- Trackbacks: 0
Hack #228: 見た目を気軽に変更する(その2) ColorRoller版
- 2011-09-10 (土)
- Vim Hacks
問題
vim を長い間使用していると、お気に入りの定番カラースキームが3、4種類は決まってくるものです。
お気に入りのカラースキームを探す場合は、
- Color Sampler Pack をインストールする。
:Unite colorschemeを駆使して片っ端から気に入るものを探す。
という流れで探すのが便利で手軽だと思います。
:Unite colorscheme によるカラースキームの変更は一つ一つ :colorscheme コマンドでカラースキームを入力する手間に比べればとても手軽です。
しかし、一度お気に入りが決まってしまうと、 もっと手早くカラースキームを切り替えたいと感じる方もいるのではないでしょうか?
問題提起が少し強引な気もしますが、筆者はお気に入りの3、4種類のカラースキームをワンキーで手早く切り替えたいと感じていました。
対処
下記のコードを .vimrc に貼り付けます。
let ColorRoller = {}
let ColorRoller.colors = [
\ 'molokai_custom',
\ 'tomorrow_night_custom',
\ 'lucius_custom',
\ 'github256_custom',
\ 'pyte',
\ 'newspaper',
\ ]
function! ColorRoller.change()
let color = get(self.colors, 0)
" tabpagecolorscheme を使用している場合は↓の "colorscheme" を "Tcolorscheme" に変える。
silent exe "colorscheme " . color
redraw
echo self.colors
endfunction
function! ColorRoller.roll()
let item = remove(self.colors, 0)
call insert(self.colors, item, len(self.colors))
call self.change()
endfunction
function! ColorRoller.unroll()
let item = remove(self.colors, -1)
call insert(self.colors, item, 0)
call self.change()
endfunction
nnoremap <silent><F9> :<C-u>call ColorRoller.roll()<CR>
nnoremap <silent><S-F9> :<C-u>call ColorRoller.unroll()<CR>
解説
お気に入りのカラースキーム群をローラー( ColorRoller )に見立てて、ローラーを回す( roll )、戻す( unroll )ことで、カラースキームを切り替えます。
roll() を <F9> 、 unroll() を <S-F9> (Shiftキーを押しながら <F9> )にそれぞれ割り当てています。
使い方
お気に入りのカラースキームを、 ColorRoller.colors に設定して使用します。
tabpagecolorscheme を使用している場合、 ColorRoller.change() 内のコメントを参考に、
silent exe "colorscheme " . color の行を silent exe "Tcolorscheme " . color に変更して使用して下さい。
最後に
これまでに紹介したカラースキームに関する下記の記事も合わせて参考にして下さい。
t9md- Comments: 0
- Trackbacks: 0
Hack #227: surround.vim の囲むルールを独自に拡張する
- 2011-09-05 (月)
- Vim Hacks
surround.vim について
テキストを好きな文字列で”囲む”ことに特化したプラグインとして、surround.vim があります。
定番プラグインなので使用している方も多いでしょう。
デフォルトで、テキストを括弧( [([{ 等)や、HTMLタグで囲んだりする事が出来ます。
surround.vim は囲むルール( 以降 surrounding rule と記載 )を拡張する機能を用意しており、ユーザーが独自に surrounding rule を追加することが出来ます。
surrounding rule の拡張
例えば下記のような設定は
autocmd FileType ruby let b:surround_45 = "<% \r %>"
&filetype が ruby 場合に let b:surround_45 = "<% \r %>" を設定しています。
b:surround_45の45は-の ASCII コード番号です。\rは囲まれるテキストが入るプレースホルダです。
上記のように設定すると、
puts "Hello world!"
の行にカーソルを合わせ、ノーマルモードで yss- と入力すると、下記のように eruby のコードとして囲む事ができます。
<% puts "Hello world!" %>
しかし、毎回 ASCII コードを確認して設定するのは面倒なので、 char2nr() を使用し、下記のように設定する方が分かりやすいでしょう。
以下の設定は E で囲まれるテキストをヒアドキュメント化します。
let b:surround_{char2nr("E")} = "<<EOS \r EOS"
surrounding rule のより詳細な説明は :help surround-customizing を参考にして下さい。
さらに簡単に surrounding rule を拡張する
さて、ここまでは前置きで、目的は基本知識の整理だったのでした。
上述の surrounding rule の拡張をより簡単に行う為の、簡単なプラグインを作成しました。
インストール
Vundle を使用している場合以下のコマンドでインストール出来ます。
:BundleInstall t9md/vim-surround_custom_mapping
設定
g:surround_custom_mapping ディクショナリを設定します。
キー に surrounding rule が設定される &filetype 、値には surrounding rule をディクショナリとして設定します。
キー _(アンダースコア)は特殊なキーで、ここに設定された surrounding rule は全てのファイルタイプで利用できるようになります。
例えば下記の様に設定すると
let g:surround_custom_mapping = {}
let g:surround_custom_mapping._ = {
\ 'p': "<pre> \r </pre>",
\ 'w': "%w(\r)",
\ }
let g:surround_custom_mapping.ruby = {
\ '-': "<% \r %>",
\ '=': "<%= \r %>",
\ }
pでpreタグで囲む(全てのファイルタイプで有効)wで%w(と)で囲む(全てのファイルタイプで有効)-で%<と%>で囲む(ruby ファイルのみ)=で%<=と%>で囲む(ruby ファイルのみ)
という意味になります。
より具体的な例
もともと私がこのヘルパープラグインを作ったのは
- html を編集していようが、
- textile を編集していようが、
- vim のヘルプを編集していようが
p で整形済みテキストとして囲むというように、似た様な意味(=整形済みテキスト)で囲む場合は、指運動を同じにしたかった からです。
意味に対応する指運動(=運指)が別だと覚えるのが大変です。
上記を実現する設定は下記になります。
let g:surround_custom_mapping = {}
let g:surround_custom_mapping.help = {
\ 'p': "> \r <",
\ }
let g:surround_custom_mapping.textile = {
\ 'p': "<pre> \r </pre>",
\ }
let g:surround_custom_mapping.html = {
\ 'p': "<pre> \r </pre>",
\ }
最後に
このプラグインを作った際、surround.vim 作者の tpope さんに Pull Request を送りました。
取り込まれはしませんでしたが、8/7 日頃に「 来月か、再来月位に新しいのを出す予定、それまでこの pull request はオープンにしておくよ。」と返事をくれました。
ですので、もしかすると9月か10月頃には surround.vim のニューバージョンがリリースされ、今回紹介したプラグインは不要になっているかもしれません。
- Comments: 0
- Trackbacks: 0
Hack #226: 複数のキーワードを手軽にハイライトする
- 2011-08-31 (水)
- Vim Hacks
問題
vim でファイルを編集している時やログファイルを閲覧している時に特定のテキストを目立たせたいと思ったことはありませんか?
私はあります。
例えば以下のような場合です。
- tcpdump の ログファイルを vim で閲覧していて特定の MACアドレス、IPアドレスを目立たせたい。
- ソースコードを編集していて、特定のキーワードの出現を(ハイライトさせて)意識しつつ編集を進めたい。
- fugitive.vim の
:Gblameコマンド(git blame)で特定の author を目立たせたい。
もちろん、 :Unite line 、あるいは / で検索してハイライトして目立たせる事は可能ですが、
複数の単語をハイライトさせたい場合は、 / では対応できません。
対処
quickhl.vim を使用すれば、手っ取り早く色を付けることができます。
動画を用意しました。 Youtube: quickhl.vim
※ 同様の事を目的としたプラグインとして、MultipleSearch 等があります。
インストール
quickhl.vim は vim.org や、github から入手可能です。
version 7.2 以上の vim で動作します。
Vundle を使用している場合は下記のコマンドでインストールできます。
:BundleInstall quickhl.vim
設定
quickhl.vim はデフォルトのキーマップを提供しませんので、ユーザーが .vimrc に設定する必要があります。
筆者オススメのキーマップは以下です。
nmap <Space>m <Plug>(quickhl-toggle)
xmap <Space>m <Plug>(quickhl-toggle)
nmap <Space>M <Plug>(quickhl-reset)
xmap <Space>M <Plug>(quickhl-reset)
nmap <Space>j <Plug>(quickhl-match)
上記の設定をした後、ノーマルモードで <Space>m を押すと、カーソル下の単語がハイライトされます。
同じ単語の上で、もう一度、 <Space>m を押すと、ハイライトがクリアされます。
すべてのハイライトをクリアしたい場合は、 <Space>M (スペースの後、大文字M)でクリアできます。
またビジュアルモードでテキストを選択して、 <Space>m を押すと、選択したテキストがハイライトされます。
複数行のテキストブロックのハイライトには対応していません。
ハイライトの追加削除は :QuickhlAdd , :QuickhlDel でも可能ですが、ハイライトしたい欲望は突然やってくるので、キーマップを設定して備えておくのがいいでしょう。
特定の単語を常にハイライトしたい場合は、 g:quickhl_keywords にキーワードを設定します。
例えば .vimrc に以下の様に設定します。
let g:quickhl_keywords = [
\ "ujihisa",
\ "tyru",
\ "Sixeight",
\ "t9md",
\ "thinca",
\ "Shougo",
\ ]
その他、一時的に特定のバッファでハイライトを無効(Lock)する、 :QuickhlLock コマンド等も用意されています。
詳しくは :help quickhl で確認して下さい。
- Comments: 2
- Trackbacks: 1
- Search
- Feeds
- Links

