<commit_before>SISH (SImount Shell)
=================
Unix like Shell for OpenQM and UniVerse

## 概要

Unix系のShellライクな操作でコマンド入力が出来るようになります。 
また、アイテムやBASICソースを効率よく編集するスクリーンエディタも備えています。

![](./resources/Shell.png)

## コンパイル確認プラットフォーム

-	OpenQM 3.4-6 or later
-	UniVerse 11.2 or later

## セットアップ

#### ターミナルエミュレータ（クライアント環境）

`SISH`はxterm系の制御シーケンスが理解できるターミナルエミュレータから接続して使用される必要があります。   
Windowsのコマンドプロンプトでは非対応となります。  
デフォルトの設定では`Ctrl` `Shift` `Alt`などの装飾キーの多重押しに対応するために[xterm制御シーケンス](http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)の`modifyCursorKeys=2`,`modifyOtherKeys=2`のシーケンスが飛んで来ることが想定されています。

動作確認環境として以下サイトで配布されているGDI版puttyで正しく動作する事を確認しています。

iceiv + putty (GDI版putty) 取得先URL  
[http://ice.hotmint.com/putty/](http://ice.hotmint.com/putty/)

putty.iniにxtermキーシーケンスの設定を追記します。  
同梱の[putty.ini](./putty.ini)をputty.exeと同階層に配置すればそのまま利用する事ができます。

また、他にも以下の端末である程度動作する事を確認しています。

- Gnome-terminal(Linux)
- iTurm2(Mac)
	- プロファイルのKeysの設定を`xterm Defaults`に設定
	- プロファイルのColorsの設定を`Solarized light`に設定

これらの端末で正しく動作させる為には、同梱されている[SISH.SETTING.H](./BP/SISH.SETTING.H)のキーシーケンスの設定とカラーパレット設定を端末側とうまく合わせる事により対応させる事ができます。

#### SISHのコンパイルとグローバルカタログ化

同梱のソース`SISH` `SISH.SETTING.H`を`BP`ディレクトリに置きます。   
`BP`ディレクトリのファイルエンコーディングはUTF8に設定して置く必要があります。

以下のコマンドでどのアカウントからも`*SISH`というコマンドで起動できます。

    >BASIC BP SISH
    >CATALOG BP *SISH SISH

`SISH.SETTING.H`を独自にカスタマイズした場合は他の人とバッティングしないために自分用の名前でカタログ化して下さい。

#### Linuxに接続時の注意点

SISHでは`Ctrl`+`Z`と`Ctrl`+`S`をショートカットキーとして使用します。

Linuxでは以下の制御コードと重複しているので抑制する必要があります。

    stty stop undef
    stty susp ^K

## 機能

### コマンドライン入力時の単語補完入力機能

単語入力途中に`Tab`で下記の単語を補完、もう一度`Tab`で候補リストを表示します。

- VOC内の `Verb`,`File`,`PAragraph`,`Keyword`など
- ファイル名が存在する場合にその辞書ファイルのフィールド
- フラットファイルの単語の次の単語の場合に限り、対象フラットファイルのレコードID
- `,`後のマルチパートファイル
- `LOGTO`コマンドの後は登録アカウントテーブルの内容から補完
- `%`後のL-Typeフィールドの辞書フィールド補完に対応(OpenQM)

### 英小文字大文字反転入力の切替機能

`Insert`キーでON/OFFを切り替えます

### カラーテーマの切替機能

`F11`キーでカラーテーマを切り替える事ができます。(OSCによるカラーパレット変更に対応している端末のみ)    
パレットは以下のサイトのSolarized-lightとdarkが利用できます。  
http://ethanschoonover.com/solarized

### ターミナルサイズの自動変更機能

ターミナルクライアントのサイズを取得してサイズが違っていた場合に`TERM`コマンドで自動的にサイズ調整を行います。 

デフォルトでは自動変更モードになっています。 
`TERM`コマンドでターミナルサイズを設定した場合は自動変更モードは解除されます。 

自動変更モードに戻す際は、`TERM AUTO`コマンドを実行します。

### コマンド実行時間計測機能

`.T`コマンドで時間計測機能をON/OFF
<commit_msg>READMEを調整<commit_after>SISH (SImount Shell)
=================
Unix like Shell for OpenQM and UniVerse

## 概要

Unix系のShellライクな操作でコマンド入力が出来るようになります。 
また、アイテムやBASICソースを効率よく編集するスクリーンエディタも備えています。

![](./resources/Shell.png)

## コンパイル確認プラットフォーム

-	OpenQM 3.4-6 or later
-	UniVerse 11.2 or later

## セットアップ

#### ターミナルエミュレータ（クライアント環境）

`SISH`はxterm系の制御シーケンスが理解できるターミナルエミュレータから接続して使用される必要があります。   
Windowsのコマンドプロンプトでは非対応となります。  
デフォルトの設定では`Ctrl` `Shift` `Alt`などの装飾キーの多重押しに対応するために[xterm制御シーケンス](http://invisible-island.net/xterm/ctlseqs/ctlseqs.html)の`modifyCursorKeys=2`,`modifyOtherKeys=2`のシーケンスが飛んで来ることが想定されています。

動作確認環境として以下サイトで配布されているGDI版puttyで正しく動作する事を確認しています。

iceiv + putty (GDI版putty) 取得先URL  
[http://ice.hotmint.com/putty/](http://ice.hotmint.com/putty/)

putty.iniにxtermキーシーケンスの設定を追記します。  
同梱の[putty.ini](./putty.ini)をputty.exeと同階層に配置すればそのまま利用する事ができます。

また、他にも以下の端末である程度動作する事を確認しています。

- Gnome-terminal(Linux)
- iTurm2(Mac)
	- プロファイルのKeysの設定を`xterm Defaults`に設定
	- プロファイルのColorsの設定を`Solarized light`に設定

これらの端末で正しく動作させる為には、同梱されている[SISH.SETTING.H](./BP/SISH.SETTING.H)のキーシーケンスの設定とカラーパレット設定を端末側とうまく合わせる事により対応させる事ができます。

#### SISHのコンパイルとグローバルカタログ化

同梱のソース`SISH` `SISH.SETTING.H`を`BP`ディレクトリに置きます。   
`BP`ディレクトリのファイルエンコーディングはUTF8に設定して置く必要があります。

以下のコマンドでどのアカウントからも`*SISH`というコマンドで起動できます。

    >BASIC BP SISH
    >CATALOG BP *SISH SISH

`SISH.SETTING.H`を独自にカスタマイズした場合は他の人とバッティングしないために自分用の名前でカタログ化して下さい。

#### Linuxに接続時の注意点

SISHでは`Ctrl`+`Z`と`Ctrl`+`S`をショートカットキーとして使用します。

Linuxでは以下の制御コードと重複しているので抑制する必要があります。

    stty stop undef
    stty susp ^K

## 機能

### コマンドライン入力時の単語補完入力機能

単語入力途中に`Tab`で下記の単語を補完、もう一度`Tab`で候補リストを表示します。

- VOC内の `Verb`,`File`,`PAragraph`,`Keyword`など
- ファイル名が存在する場合にその辞書ファイルのフィールド
- フラットファイルの単語の次の単語の場合に限り、対象フラットファイルのレコードID
- `,`後のマルチパートファイル
- `LOGTO`コマンドの後は登録アカウントテーブルの内容から補完
- `%`後のL-Typeフィールドの辞書フィールド補完に対応(OpenQM)

### 英小文字大文字反転入力の切替機能

`Insert`キーでON/OFFを切り替えます

### カラーテーマの切替機能

`F11`キーでカラーテーマを切り替える事ができます。(OSCによるカラーパレット変更に対応している端末のみ)    
パレットは以下のサイトのSolarized-lightとdarkが利用できます。  
http://ethanschoonover.com/solarized

### ターミナルサイズの自動変更機能

ターミナルクライアントのサイズを取得してサイズが違っていた場合に`TERM`コマンドで自動的にサイズ調整を行います。 
デフォルトでは自動変更モードになっています。 
`TERM`コマンドでターミナルサイズを設定した場合は自動変更モードは解除されます。 
自動変更モードに戻す際は、`TERM AUTO`コマンドを実行します。

### コマンド実行時間計測機能

`.T`コマンドで時間計測機能をON/OFF

{'fraction_non_alphanumeric': 0.11933069132540731, 'fraction_numerical': 0.005284015852047556, 'mean_word_length': 7.719769673704414, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '159348', 'n_tokens_mistral': 3531, 'n_tokens_neox': 3350, 'n_words': 184}