0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dev-Toysっぽい機能をvimやシェルでやる方法と、それがある意味「不要」であることについて

Posted at

Dev-Toysというものが流行っているらしい

なんか、色々なツールを十徳ナイフ1的に集めた物らしい。
https://devtoys.app/
https://qiita.com/danishi/items/2de6a4ab028d27a8f4ab
https://qiita.com/ObuchiYuki/items/fa4cdebab2399a24d57d
プラットホームはWindowsな上にGUIです…\(^o^)/
クローンも作られているようですが、こちらはMacかつGUI\(^o^)/

つまり**「vimmerとかそんな人は自分で書きなさい👹」**ってことです。
でも、内容的には単に色々かき集めただけの物。
こういう物はCUIならなんてことはない。

言語の選定と実装

依存先を増やしたくなかったので、Rubyに絞って実装してみました。
内容は、標準入力から入力して、標準出力から出力するだけ。
例えばこんなファイル名に統一して、補完で辿る。拡張子が無いのはshebangのおかげ。

  • toys-number-base
  • toys-convert-json2yaml
  • toys-convert-yaml2json

実際はもう一寸たくさんあります。
実装は…結構ひどい。例えばこんな風。実質一行。

toys-convert-json2yaml
require "yaml"
require "json"
begin
  puts(YAML.dump(JSON.load(STDIN)))
rescue
  puts('Invalid JSON! Abort!')
end

まさに他力本願!

使い方

シェルからならこんな感じ。補完が効くから迷いはしない。(重要)

echo '{"hoge": "fuga"}' | toys-convert-json2yaml

vimからなら、visualモードで選択した上で、こんな感じ。

'<,'>!toys-convert-json2yaml

vimならコピペの必要すら無く、その場で即変換になる。
ただし、行単位の変換になるのが玉に瑕。
どうにかしたいならvimscriptを書けばいい。僕はしないけど。

で、これ必要なの?

便利だしバグる要素極限に少ないかも知れないけど、根本的に不要と思います。
ほとんどコマンドの名前を付け替えてるだけで、プログラミングとすら言えない。
Dev-Toysは「『Visual Studio』の開発に携わっているメンバー」が
作ったから意味があるし支持されるし信頼できるんだと思います。

なお、僕は便利だからという理由で、
僕の欲しいものだけ実装して使う…かもしれない。

  1. まぁ、その…UNIX哲学的にはありえない思想ではあるけど、気持ちはよく分かる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?