超久しぶりに .vimrc をいじったので超久しぶりにvimの記事です。
(最近はSREっぽい事しててあんまりエディタいじくる事がないです)

テキストにANSIカラーコードが含まれていて見づらい

Terraformとかで state show の結果をファイル出力すると

1
$ terraform state show xxxxxxxxxxx > state.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat state.txt
# aws_db_instance.xxxxxxxxxxxxxxxxxxxxxxxxxxxxx:
resource "aws_db_instance" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" {
address = "xxxxxxxxxxxxx.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com"
allocated_storage = 30
arn = "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:db:xxxxxxxxxxxxx"
auto_minor_version_upgrade = true
availability_zone = "ap-northeast-1d"
backup_retention_period = 7
backup_window = "16:41-17:11"
ca_cert_identifier = "rds-ca-2019"
copy_tags_to_snapshot = true
customer_owned_ip_enabled = false

これを、 vim とか vimdiff で開いた場合、ANSIカラーコードが含まれていて超見づらいです

1
2
3
4
5
6
7
8
9
10
11
12
13
$ vim state.txt
1 # aws_db_instance.xxxxxxxxxxxxxxxxxxxxxxxxxxxxx:
2 resource "aws_db_instance" "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" {
3 ^[[1m^[[0maddress^[[0m^[[0m = "xxxxxxxxxxxxx.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com"
4 ^[[1m^[[0mallocated_storage^[[0m^[[0m = 30
5 ^[[1m^[[0marn^[[0m^[[0m = "arn:aws:rds:ap-northeast-1:xxxxxxxxxxxx:db:xxxxxxxxxxxxx"
6 ^[[1m^[[0mauto_minor_version_upgrade^[[0m^[[0m = true
7 ^[[1m^[[0mavailability_zone^[[0m^[[0m = "ap-northeast-1d"
8 ^[[1m^[[0mbackup_retention_period^[[0m^[[0m = 7
9 ^[[1m^[[0mbackup_window^[[0m^[[0m = "16:41-17:11"
10 ^[[1m^[[0mca_cert_identifier^[[0m^[[0m = "rds-ca-2019"
11 ^[[1m^[[0mcopy_tags_to_snapshot^[[0m^[[0m = true
12 ^[[1m^[[0mcustomer_owned_ip_enabled^[[0m^[[0m = false

PlugでAnsiEsc.vimをインストール

vim-scripts/AnsiEsc.vimをインストール

1
$ vim ~/.vimrc
1
2
## 追記
Plug 'vim-scripts/AnsiEsc.vim'

ついでにショートカットも追加(任意)

1
2
## ANSI colorの表示/非表示を切り替え[\as]
nnoremap <Leader>as :AnsiEsc<Return>

使い方

あとは対象のテキストを vim で開いて :AnsiEsc とするとエスケープしてくれます