Pythonista 3でMonokaiを使おうとしたけど見つからなかったので自分で作ってみました。
#テーマの設定の場所
- 左サイドバーの右下の歯車を押すとSettingsが開きます。
- 一番上のGENERALのThemeからThemesが開きます。
- 右上の+を押すことでEdit Themeが開き、現在の配色をベースに自由に変更できます。
#Edit Theme(編集画面)
- 色はカラーパレットから選択できるほか、左上の色見本を押すとカラーコードを直接記入できます。
- シンタックスハイライトでは太字、斜体、下線を選択できます。
- 右上のDoneの左のアイコンからURL Schemeを生成できます。
#作ってみた
ここをからインストールできます。
URL Schemeそのものはここから確認できます。
pythonista3://?action=add-theme&theme-data=eNqdVktz4jAMvvMrmOyVzCSBktBbd4Fb97Cz94yTiOCNYzGOMy3b6X9fvyiY8mg2OmHps6RPksXbaDwOJLzKvAMGpaTIc0m5DMaP42BtvmBibEiRF6RsaoE9r4w6WWmx6oqIJm9gXyARRitFDx9ASSUDg_lhPothlEPO-7YAYXTZahFlTteVuINOH7-pn9oBlp0UlNfHM3VaIkMLXs2X39NZYBTvE4spGem6K_bfNps0i1MfoCJqPHvNTFhBiYJoagxSpQ9Cx37mDCvwsEe2whO3WaRlFgWTY0yCgwgFqWhvok28exWpL2g5vZDGepHM08SPZCfwjyqlh9ggl2En964MBbLKB21B-ed1GA-DGYor2FwJ72m-SlyLDOWTSsJoeSsaZ-GhNihaIuX1PnEFyCIfpzML77s8NfuE_z_CpwMJ30LZFPjqp3dyqAfvIiKskMNN2EeZDpaf7pKkvjsfHM9LeZzxSy2yymL1yPhV7Hl5uO9S09t36SyyrrmQ4bHuC_Nl0e1m1G9MA9hL_3ZnheJ2n18scDKswIfc7w6V3389Zarr7xA3ny8XqzPiWqx6BgOYLrFtgcsriPQhjR9OJv4LMzv8XVdPbcGwbNTFRMhhk654JT2TX0l45FDqKRfny2-60GKXlc2R_jUpxpFdex9LdLlI4_WJ4Ya0lO2N7hk4w_AX1D0jwi1SG16um9MRoCVwcfgLOE2yJLGqupcSVJRqVbh1On3S4tYp7Ijp39w8tA6s5LCJC0HE_laOcquGmBPKTl3M4tlslvkBnIW41GItOGmt62fk2BA6_o0tCoEv45-03kprpGgD0ak_DJQwW8aETKPpPBi9_wPDjTRK
UIの配色は標準のTomorrow Nightを用いていますが、Monokaiに合わせてTint Color
を#f99157
から#fd971f
に変更しました。(ほとんど変わってない)
シンタックスハイライトの区分がそこまで多くないので忠実には再現できていません。たとえば、
-
#f92672
を指定したのはKeyword
だけですが、import
def
for
in
print
などが一括で変更されています。 - 演算子はハイライトできません。
#他の自作テーマ
自分で調べた範囲では3つしかなかったので全て紹介します。他にあればぜひ教えて下さい。
テーマ | 説明 |
---|---|
WWDC '16 | Pythonistaの開発元のomz:softwareが作成 |
Dracula | 本家Dracula作者のZeno Rocha氏が作成 |
Atom-inspired | 投稿の一番下のTheme. がリンク |
#おまけ
##URLスキームの貼り付け方
普通にリンクを貼るとQiita側で削除されるのでTinyURLで圧縮したものを貼り付けています。
##Pythonistaのアイコンの色を変更する
Themes(テーマ選択画面)の右下のApp Icon...からアイコンの色を変更できます。
##サンプルコード
設定画面で画面で表示されるコードを写経してみました。他のエディタにコピペすればテーマを自作する助けになるかもしれません。
colortest.py
# Themes(テーマ選択画面)のもの
from random import sample
def main():
# Request a name and suffle the letters:
name = input('Enter your name: ')
for i in range(100):
print(''.join(sample(name), len(name)))
if __name__ == '__main__':
main()
# Edit Theme(配色設定画面)のもの
#coding: utf-8
from random import shuffle
def main():
'''Shuffle the entered name 10 times'''
name = input('Name: ')
chars = list(name)
for i in range(10):
shuffle(chars)
print(''.join(chars))
# クラスとデコレータがなかったので追加
@hogehoge
class Foo():
def __init__(self, bar):
self.bar = bar