0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XONSHをWindowsにインストールしてWindows Terminalに設定してみる

Posted at

Oh My Poshの対応しているシェルを見ていると、XONSHというシェルが目につきました。

Oh My Posh Change your prompt

調べてみると、XONSHはshellコマンドとPythonコマンドが利用できるシェルのようで、Linux、OSX、Windowsと主要なシステムで動くようです。

普段は主にPowerShellを利用しており、PowerShellには親しみを感じている気がするので、ちょっとXONSHを利用する事によってPythonに親しみが持てるようになるのでは?

と思い浮かんだので、ちょっとWindowsにXONSHをインストールしてみます。

サイト

今回実行している環境

  • Windows 11 23H2
  • xonsh 0.15.1
  • Windows ターミナル (プレビュー) 1.20.10822.0

インストール

Installation

インストール方法として下記の3種類の記事が用意されていました。

今回はPackage Managerに記載されているpipを使った方法を使い、venvで仮想環境をつくってそこにインストールを行います。

venvで作成した仮想環境へのインストールについて

Python Virtual Environments

ドキュメントを読むと、xonsh上で仮想環境 venv , virtualenv, pewとは相性が悪いと記載があります。

xonsh上で仮想環境を利用する場合はVoxを使うのが間違いないようですが。

今回のようにxonsh自体をvenvで作った仮想環境上にインストールについては特に言及されていないので、venvで作成した仮想環境にxonshをインストールしてみます。

何か問題が出てきてたその時はその時です。

PyPiパッケージからインストール

PowerShellコンソールで下記コマンドを実行してインストール。
今回はvenvで仮想環境xnoshを作成して、そこにインストールしています。

py -m venv C:\venv\xonsh
C:\venv\xonsh\Scripts\Activate.ps1
pip install 'xonsh[full]'
gcm xonsh

image.png

Windows Terminalで起動できるようにしてみる

Windows Terminalの設定から新しい空のプロファイルを追加

image.png

image.png

image.png

  • 名前をxonsh
  • コマンドラインをインストールしたxonsh.exeのパスを指定
  • タブタイトルをxonsh
  • 追加の設定でタイトルの変更を表示しない

上記を入力して保存を選択

Windows Treminalでxonshが起動できるようになりました。

image.png

チュートリアル

Tutorial

インストールができたので、ここではチュートリアルの最初の部分をやってみます。
(全部なぞると、長いので)

xonshの起動

先ほどWindows Treminalで起動できるように設定したので、そちらから起動。
もしくは仮想環境をActiveにした状態で下記コマンドでも起動できます。

# xonsh 起動
xonsh

# これでも起動できる
py -m xonsh

image.png

プロンプト表示を変更してみる

$PROMPT

標準では$PROMPTという変数でプロンプト表示をしているようなので、下記のように更新してみる。

$PROMPT = 'qiita: {cwd} '

image.png

Basics

xonshはPythonに基づいているため、下記のようにかけるようです。

四則演算ができる

image.png

pythonのライブラリが使える

image.png

Dictionaryを使える

image.png

if文も書ける

image.png

forなどのループもできる

image.png

関数やクラスも定義できる

image.png

shift+tabでスペース4つ入力

xonshではshift+tabでスペースを4つ入力してインデントを挿入する。

環境変数

環境変数も利用できる

image.png

すべての環境変数 ${...}

すべての環境変数を表示したい${...}

image.png

Name space conflicts

Name space conflicts

Windows環境ではディレクトリを参照するコマンドdirとPythonの標準関数dirが競合しているため。

ディレクトリを表示したい場合はdir .と入力する必要がある。

image.png

Windows上のxonshでlsなどのLinuxコマンドを利用するには

Windows上のxonshでlsなどのLinuxコマンドを利用するには、そもそもWindows上でLinuxコマンドを実行できるようにする必要があります。

上記issueでは下記の方法について言及されていました。

  • Git For Windowsでインストール時にオプションで選択できるUnixToolsを利用する
  • BusyBox for Windowsを利用する
  • cmdixを利用する

xonshをインストールしたからといって、Linuxライクなコマンドが利用できるようになるといった事はないので、Windows上では上記のケアが別途必要になってきます。

xontrib

Tutorial: Extensions (Xontribs)

xontribはxonshの拡張機能となっており、コミュティが公開している拡張機能が存在しています。

Awesome Xontribs

xontribについては、上記サイトに公開されており、デフォルトでは xontrib.coreutils が付属されていました。

xontrib

デフォルトで付属しているxontrib.coreutilsはいくつかのコマンドを提供しており。

ここではxontrib.coreutilsを読み込んで、提供されているcatコマンドを利用してみます。

image.png

上記画像ではUnixコマンドを利用できるようにケアしていないWindows環境で、まずは cat hello.txt を実行し、catコマンドが利用できない事を確認。

その後、coreutilsを読み込み。

再度catコマンドを実行してcoreutilsのcatコマンドを利用してc:\qiita\hello.txtに配置したテキストファイルを表示しています。

cat hello.txt

xontrib load coreutils

cat hello.txt

総評

Windows環境にインストールした場合、そのままではLinuxコマンドが使えないので別途準備が必要となり。

Windows環境にそのままxonshをインストールすると、考えなければならない部分が多そうです。

そうなってくるとWindows上のWSL2にxonshをインストールする方がよいのでは? といった気もしてきますが、本記事ではWindows上に素直に導入してみました。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?