Ruby
Vim
正規表現

ANSI Escape Sequenceの削除

More than 3 years have passed since last update.

Cucumberの出力するスニペットから、エスケープシーケンスを削除するための、正規表現を書いたのでメモ。


  • Ruby

gsub /\x1B\[[0-9]{1,3}[mK]/, ''

gsub /\e\[\d{1,3}[mK]/, '' #こっちのほうが良さげ


  • Vimでも。

s/\%x1B\[[0-9]\{1,3}[mK]//g

s/\e\[\d\{1,3}[mK]//g


.vimrc

" DeleteAnsiEsc

command! -range=% DeleteAnsiEsc :<line1>,<line2>rubydo gsub /\e\[\d{1,3}[mK]/, ''
nnoremap <Leader>da :<C-u>DeleteAnsiEsc<CR>
vnoremap <Leader>da :DeleteAnsiEsc<CR>

Vimの設定でエスケープシーケンスをyankしないようにできないかなと思ったけど、よくわからなかった。

参照サイト:

ANSI escape code (Wikipedia)

Remove color codes (special characters) with sed

In Vim, how to keep characters concealed even when cursor enters that line (Stack Overflow)