コマンド実行結果をVimやVisual Studio Codeで開く方法

Bash,CentOS,Linux,Ubuntu,Vim,Visual Studio Code,Zsh

はじめに

先日、会社の後輩からターミナルでコマンドを実行した結果をエディタで開く方法がないか質問があったときに回答した内容を紹介します。

暗号化されているファイルを復号化した結果をエディタで開いて触りたいが、コマンド実行結果をクリップボードに貼り付けて、という操作が面倒というのが発端です。

Vim でのやり方を知っていましたが、後輩は Visual Code Studio 使いだったために「さあどうしようか」と思いました。
ダメ元で Vim と同じ方法を実行してみたところ、うまく行けてびっくりしました。

検証環境

$ uname -moi
x86_64 MacBookPro16,1 Darwin

$ bash -version | head -n 1
GNU bash, バージョン 5.1.16(1)-release (x86_64-apple-darwin21.1.0)

コマンド実行結果をVimやVisual Studio Codeで開く方法

"Vim" の場合

Vim では、パイプで渡された文字列を開くことができます。

vim - というコマンドを利用します。

多くのコマンドで、 - という引数は 「標準入力」 を表します。

vim - とは 「標準入力の内容をファイルに見立ててエディタで開く」 という命令になります。

# 100 から 105 までの連番を出力するコマンド
$ seq 100 105
100
101
102
103
104
105

# seq コマンド実行結果をVimにパイプで渡す
$ seq 100 105 | vim -

標準入力経由でテキストを送り込められればよいので、以下のようにパイプを使わない方法もあります。

$ vim - < <(seq 100 105)

"Visual Code Studio" の場合

"Visual Code Studio" をコマンドラインから開くには code コマンドを使います。


(注意)僕のMac環境では利用できる状態でしたが、後輩の環境では code コマンドがないというエラーとなりました。

$ code
bash: code: command not found

その場合は、 "Visual Code Studio" のメニューから 「View」→ 「Command Pallet」を開き、 "install code" を実行します。


本題に戻ります。

先程同様、 code コマンドでも - を利用することができます。

# 100 から 105 までの連番を出力するコマンド
$ seq 100 105
100
101
102
103
104
105

# seq コマンド実行結果をVSCodeにパイプで渡す
$ seq 100 105 | code -

パイプを使わない場合は以下のようになります。

$ code - < <(seq 100 105)

ひとこと

日報を作成したり、議事録を作成するために「テンプレート」をVimに流し込んでつかったりしています。