いい感じのCLI開発環境


概要

マウスでぽちぽちやるのがなんか遅いっぽいので、開発最速理論を考案しました。
要約すれば以下のアプリケーションをインストールしてCLIベースで開発しようって内容です。

コンセプト

  • CLI万歳
  • 環境に依存しない : Windows/Linux で再現可能
  • 短時間で再現可能 : 15分ぐらい

経緯

学生の頃はカスタムしまくったLinuxを使っていたため、会社に入ってからWindowsを使い始めたころは幻肢痛に苦しみました。
もう二度と苦しみたくないと思い、ほぼバニラWindowsをマウスでぽちぽちしながら使っていたわけですが、そろそろやべー奴扱いされそうなので良さげな環境を整えるため一念発起しました。

本編

1.Chocolatey : https://chocolatey.org

Linux/Macの人は飛ばしてください。

ChocolateyはWindows用のパッケージマネージャです。
Linuxではターミナルにapt install pythonとかpacman -S pythonみたいに入力してアプリケーションをインストールすることができます。
WindowsでもChocolateyをインストールすることでターミナルからchoco install pythonみたいに入力してアプリケーションをインストールできるようになります。

Chocolateyインストール手順

  1. 管理者権限でPowerShellを起動
  2. PowerShellに以下をコピペして実行
    • Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

使い方

管理者権限でPowerShellを開きchoco install <アプリケーション名>のようにコマンドを実行することでアプリケーションをインストールできるようになります。
わざわざWebサイトに赴いてZipとかexeを落として実行するという面倒な手間を踏む必要がなくなります。
かなり時短できます。

2.PowerShell : https://docs.microsoft.com/ja-jp/powershell/scripting/powershell-scripting

Windowsはデフォルトで入っているので飛ばしてください。

PowerShellはオープンソース、クロスプラットフォームの素晴らしいシェルです。
パイプには文字列ではなく、オブジェクトが流れます。
超プログラムしやすいです。Linux環境でも使っていきましょう。(布教)

インストール手順

以下URLを参照してください。
https://docs.microsoft.com/ja-jp/powershell/scripting/setup/installing-powershell-core-on-linux
ArchLinuxにインストールする方法は記事にしました↓
https://qiita.com/Y0KUDA/items/5c50f580392d096e78fe
ArchLinux大好き。

3.Hyper : https://hyper.is

ターミナルエミュレータなんて世の中に腐るほどあるけど、

  • Windows/Linuxで使える
  • タブが使える
  • スプリットできる

って三拍子揃ったのってそんなにないと思います。
LinuxにはTerminatorとかtmuxっていう素晴らしいアプリケーションが存在するけど、
これをWindowsで使うにはX Windowのクライアントを用意しなきゃいけないから面倒なことこの上ない。
ということでHyperを採用しました。

こんな感じのアプリケーションです。↓

動かすとこんな感じ↓

インストール手順

Windows

  1. PowerShellを管理者権限で起動
  2. PowerShellにchoco install hyperと入力
  3. 適宜環境変数を追加してください。
  4. hyperで起動できます。

Linux / MacOS

ArchLinuxは以下のコマンドでインストールできました。

pacman -S hyper

MacOSと他のディストリビューションは以下URLからパッケージをダウンロードしてインストールする必要があるみたいです。
https://hyper.is/#installation

セッティング

起動時にお好みのシェルが起動するようにセッティングします。
ホームディレクトリにある.hyper.jsを変更します。
shell:を検索して、利用したいシェルのパスを記述します。
WindowsでPowerShellを利用する場合以下のように変更します。

shell: 'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe',

次に、シェルを起動するときの引数を設定します。
shellArgsを変更します。
WindowsでPowerShellを使う場合は引数は不要なので以下のように空にします。

shellArgs: [],

ついでに、快適に使うためにプラグインを一つ加えておきます。
plugins:を検索して以下のように書き加えます。

plugins: ["hyper-pane"],

起動したときにプラグインのhyper-paneが自動的にインストールされます。

簡単な操作方法

だいたいこの辺りのショートカットを覚えておけば快適に使えます。

ショートカット
縦分割 / 横分割 ctrl+shift+D / ctrl+shift+E
タブ生成 ctrl+shift+T
タブ移動右 / 左 ctrl+shift+→ / ctrl+shift+←
アクティブな枠を閉じる ctrl+shift+W
枠の移動 (hyper-paneの拡張機能) ctrl+alt+(→ / ↑ / ← / ↓)

4.Midnight Commander : https://midnight-commander.org

TUI(Text-based User Interface)のファイルマネージャです。
UIはこんな感じです。

正直、あまり本気で使う気はなくて、ちょっとファイルが見やすいシェルぐらいの感じで使おうかなって感じで入れました。

インストール手順

Windows

  1. PowerShellを管理者権限で起動
  2. PowerShellにchoco install mcと入力
  3. 適宜環境変数を追加してください
  4. mcで起動できます

Linux / MacOS

以下URLを参照
https://midnight-commander.org/wiki/Binaries
Linuxだと大抵のパッケージマネージャに入ってるはず。
apt install mcとかpacman -S mcでインストールできます。

セッティング

デフォルトだと、左右二面にファイルのリストが表示されるのですが、私は右面にファイルのクイックビューが表示されるようにしています。起動後F9を押すことで上に表示されているバーにアクセスできます。その後、矢印キーとEnterキーでRight->Quick viewを選択するとクイックビューにできます。最後にOption->Save setupを選択すれば、次回の起動時に設定が復元されます。

簡単な操作方法

操作 コマンド
上のバーにアクセス F9
選択の移動 矢印キー
選択 Enterキー
リネーム/移動 F6
ディレクトリ作成 F7
削除 F8
検索 Meta(alt)+?
ディレクトリお気に入りリスト Ctrl+\

下のコマンド欄を用いて、好きな操作をすることができます。例えば、vim file.txtと入力すればvimで編集することができます。

Debianのサイトが詳しいです↓
https://www.debian.org/doc/manuals/debian-reference/ch01.ja.html#_midnight_commander_mc

5.Neovim : https://neovim.io

Vimは言うまでもなく世界で最も使われているテキストエディタの一つです。
その次世代版がNeovimです。どうせなら新しいの入れておこうということでNeovimを採用しました。Neovimは:terminalでターミナルを呼び出すことができます。
Neovim内でMidnight Commanderを呼び出すとこんな感じです↓

インストール手順

Windows

  1. PowerShellを管理者権限で起動
  2. PowerShellにchoco install neovimと入力
  3. 適宜環境変数を追加してください
  4. nvimで起動できます

Linux / MacOS

Linuxだとapt install neovimとかpacman -S neovimでインストールできます。
Macはbrewから入れることができるらしいです。多分こんな感じbrew install neovim

使い方

流石に書ききれないので省略します。

まとめ

なんとか良さそうなCLI開発環境を構築することができました。
Neovimをセッティングしはじめるとまだまだ時間がかかるんだろうけど・・・
ともかく、これでやべー奴扱いされずにすみそうです。