#注意
ふざけた内容です。
試す際には自己責任でお願いします。
対象者
windows terminal上のvimでネットサーフィンからプログラミングまでやってるような奇特な方
……どういうことなの?
そのまんまの意味です。
みなさん、vimでエロ漫画を読みたくなることってありませんか?
ありますよね?
そう、あるんですよ!
というわけで、外部ツールとちょっとしたコードでvimに画像表示機能を付けようというのがこの記事の趣旨です(それも、ANSIエスケープシーケンスのみで)。
作業内容
外部ツールの導入
画像をANSIエスケープシーケンスで表示するためのプログラムを導入します。
何でも構いませんが、今回はimgcatを使用します。
https://github.com/danielgatis/imgcat
を参考にインストールします。
vimrc の編集
vimrcに以下を追記します。
augroup ImgOpener
autocmd!
if executable('imgcat')
func! ImgDriver(filename, buftype)
let l:img_to_open = ''
if a:buftype==''
setlocal nobuflisted
if exists('b:netrw_tmpfile')
let l:img_to_open = fnamemodify(b:netrw_tmpfile, ":r").'.'.fnamemodify(a:filename, ":e")
else
let l:img_to_open = a:filename
endif
exe "terminal ++curwin imgcat ".shellescape(l:img_to_open)
setlocal buftype=nowrite
setlocal buflisted
setlocal hidden
endif
endfunc
autocmd BufEnter *.jpg,*.png,*.gif,*.tiff,*.jfif,*.bmp :call ImgDriver(@%, &buftype)
endif
augroup END
再起動したvimで適当な画像ファイルを開くと、画面上に画像がちゃんと表示されるはずです。
いかがでしたか?
多少不便なのは否めませんが、vimからエロ漫画(画像)が閲覧可能であることがお分かりいただけたことと思います。
ではまた。
参考
余談
sixelが恋しい。