いつでも入力補完

初回投稿日:

最終更新日:

初めてこのページに来た方へ

このWebサイトは TextRunRun というフリーソフトに関する事を書いているものです。

続きを見る

このソフトの説明は以下のホームページで説明しています。

上記のホームページのブログ形式のものがこのWebサイトです。

  • ホームページの方では「使い方」についてはあまり書けていない事
  • 更新した情報をなるべく早く書ける様にしておくため

これらの理由からこのブログ形式のものを立ち上げています。

最終更新日:

2024年4月2日

このページの目次

前書き

今回のページで書いている事は少しマニアックな内容です。

ちょっと変わったものを作ったのでそれについて説明をする内容になっています。

少しマニアックな事なので、 TextRunRun の事を既にそこそこ知っているユーザーが対象の様な説明になっています。

しかも、説明の仕方もかなり大雑把になっています。ご了承ください。

「いつでも入力補完」と名付けたものを作ったので公開してみる事にします。

ダウンロード

以下のリンクからダウンロードできます。

( 6.5 Kbyte )

いつでも入力補完を使える様にする

これは fromFileName に加えて使用できる様にするやつです。

ファイルを解凍した後にできる formEditorListWrap フォルダの中にある formEditorList のフォルダの方を fromFileName の直下の位置に移動して TextRunRun を起動すると使える様になります。

TextRunRunfromFileName について

fromFileName って何? と思ったユーザーは以下を参考にしてください。

続きを見る

TextRunRun は、 fromFileName というフォルダがあり、そのフォルダ内にファイルやフォルダを配置する事で色々作成できたり、設定をする事ができたりします。

TextRunRun の実行ファイルがある位置に trrEvery のフォルダがあります。

さらにその中に fromFileName のフォルダがあります。

TextRunRun を初回に起動した時に作成される様になっています。

今回の場合では、このフォルダの中に、ダウンロードして解凍した後にある formEditorList のフォルダーを fromFileName のフォルダーの中に移動すれば今回紹介したものが使えるようになります。

どのようなものか

「いつでも入力補完」と紹介したものの、エディター上で使うものです。

サクラエディタ と Windows の ノートパッド で動作を確認しています。
エディター上でなら、他のでも動作できるはずだと思います。

どの様なものかを説明します。

Shift + Ctrl + Space を押します。
すると以下の様に入力補完が表示します。

画像

以上のような感じで入力補完から文字を選べる様になります。

よく見ると気づくと思いますが、うっすらと TextRunRun の入力欄が表示されています。

今回の「いつでも入力補完」は、 TextRunRun の入力欄( 一行テキスト )を使って入力補完の使用を可能にしているものです。

仕組みはごく単純で、Shift + Ctrl + Space を押すとエディターのカーソルがある一行を選択・コピーして、一行テキスト の入力欄に貼り付けをします。

透明にした 一行テキスト から派生した入力補完を使って選び、その後 Enter を押すと、今度は 一行テキスト にある文字をコピーしてエディターの方に貼り付けをするというものです。

実際使って見ると単純なものだと分かると思います。

諸注意

これを使うと、クリップボードを使う事になります。

クリップボードの内容はなるべく元に戻そうとはしますが、クリップボードを保存するソフトなどを使っていた場合はクリップボードに保存してあるものの順番が変わっている事が確認できると思います。

後、簡単な文字列でないとクリップボードの元の内容を戻す事はできません。

「いつでも入力補完」の仕様

使い方とできる事は上記に書いた通りなのですが、これ以降はこの仕様を細かく挙げていこうと思います。

Shift + Ctrl + Space のキーを押すと、カーソルがある一行を選択してコピーをする動作をし、 一行テキストテキスト3 の入力欄に文字を貼り付けをします。

後は、Enter キーを押して入力補完を決定します。

入力補完が閉じた状態で Enter キーをもう一度押すと、 テキスト3 に記入されている文字をコピーして、エディターの方に貼り付ける動作をします。

これが、今回紹介した「いつでも入力補完」の操作の一連の流れです。

少しマニアックな事

テキスト3 上で Enter を押した時の動作の事です。
これは、このキーを押しても普通の Enter の動作ではなく、fo_li_enter の アイテム を実行させる様にしむけています。

続きを見る

これは、O_enterExeText3Before の変数を使用する事によって可能にしています。

これの詳しい仕様は以下のページに書いています。

今回の場合は、Enter のキーを テキスト3 上で押すと、fo_li_enter の アイテム を実行し、その後は テキスト3 を元の状態に戻る様にしています。

つまり、Enter のキーを テキスト3 上で押すと変わった動作をするのは一度だけであり、その後は テキスト3 は普通の状態に戻るようになります。

Shift + Ctrl + Space のキーが再び押された時にオンとオフが切り替わる形で、 テキスト3Enter のキーの動作を変える様になっています。
( 透明になっている状態が、通常と違う状態で動作する時の目印と思ってよいです。 )

単純に テキスト3 を使用しているだけなので

この Shift + Ctrl + Space を使って入力補完を使用している状態は、単純に テキスト3 を使っている訳なので、使い方のルールは分かりやすいのではないかと思います。

単純に 一行テキスト を使っているだけなので以下の様に使えるといえます。

  • 単純に、入力補完を選択して Enter を押してもよいし、
  • 文字を入力する事は、 テキスト3 に文字を入力している事と同じなので( ただし、透明なので見えにくいですが)文字を打っての候補を絞ってから決定してもよいし、
  • テキスト上のキー や規定のキーを、つまり Alt + 3 のキーなどを利用して文字を変換してから決定してもよく、いろんな方法を使ってから決定するのもよい使い方になると思います。

補足

テキスト3 が表示している時に、使わずに Esc キーを押して テキスト3 を閉じても問題はありません。

問題は無いですが テキスト3Enter キーを使わないと、
テキスト3「Enter キーを押すと、入力欄の文字をエディターに貼り付ける事になる状態」はそのままですし、 テキスト3 は透明の状態になったままです。

その事の対策の様なものですが、 テキスト3 がアクティブの時に Shift + Ctrl + Space を押すと、元の状態に戻る様にしています。

Ctrl + Enter で入力補完を決定すると

テキスト3 上でのみ使用できるキーとして Ctrl + Enter のキーがあります。

今回の入力補完の操作は、入力補完を決定する Enter のキーと、 テキスト3 の文字をエディターに貼り付ける動作をさせる Enter のキーとで、2回の Enter のキーを押す必要があります。

その2回の操作が煩わしいと思う場合は、入力補完が表示している時に
( つまり、 テキスト3 がアクティブの時に )
Ctrl + Enter のキーを押してください。

このキーで、入力補完の決定とその後のエディターへの貼り付けを一度で済ます事が出来るようにしています。

キー だけを説明

既に説明した事の繰り返しになりますが、ここではキーによる動作を説明します。

Shift + Ctrl + Space

このキーを押すと、エディターのカーソルがある一行を選択・コピーして、一行テキストの入力欄に貼り付けをします。

透明にした 一行テキスト から派生した入力補完が表示します。

この「いつでも入力補完」の起点のキーです。

入力補完を表示させている時に押すと、キャンセルとして使う事にも使えます。
( このキーで、 テキスト3 を元の状態に戻せます。 )

Enter

ショートカットキーでは無いですが、入力補完を決定する場合と、 テキスト3 の入力欄にある文字を最前面のエディターに貼り付ける時に使うキーです。

この「いつでも入力補完」は、 Shift + Ctrl + Space で入力補完を表示した後、2回 Enter を使う必要があります。

Ctrl + Enter

テキスト3 上でのみ使用できるキーです。

この「いつでも入力補完」は、入力補完を決定する Enter のキーと、 テキスト3 の文字をエディターに貼り付ける動作をさせる Enter のキーとで、2回の Enter のキーを押す必要があります。

ですが、この Ctrl + Enter を使うと1回のキーでそれらが出来ます。

キーを変える場合

これは、 fromFileName を利用して作ってあるので、それを知っていれば予想がつく事ですが、

Shift + Ctrl + Space のキーは

このファイルで キーを設定しているので、キーを変えたければこの Shift_Ctrl_Space.trr のファイルの名前を変えてください。

Ctrl + Enter のキーですが、この設定をしている個所は、

この 1_fo_li_start.trr のファイル内のスクリプトの中でキーを設定しています。

このファイルの内容の下の方にある、&hotkeyAllGroundNewFromCommand の規定のコマンドを使っている部分を修正してください。

この行の中にある、 Ctrl+enter の部分を変える事で好きなキーを設定できます。

補足

ウインドウの指定をするにあったって、 テキスト3 のウインドウタイトルを指定したかったのですが、これはユーザーの設定によってウインドウタイトルが変わってしまうもののため、 %B_WinTitleText3% の記述で指定する必要がありました。

ですので、
&hotkeyAllGroundNewFromCommand の規定のコマンドを使って設定しています。

マニアックな事を説明します。

Ctrl + Enter での動作に使っているスクリプトについてですが、その中に、edi_ を先頭の名前に使っている関数を使っています。

続きを見る

これは、 TextRunRun の内部処理のプログラムで使っている関数です。

今回はこの関数を使ってしまいましたが、この内部処理で使うはずの関数をユーザーが選んで使う事は薦めません。

TextRunRun では、 F_ の文字から始まる関数があり、これらはユーザーが使う為に用意している関数です。

F_ から始まる関数を使う場合は、スクリプトの安全面で問題になる事はほとんど無いと思います。

しかし、それ以外の TextRunRun の内部処理などの関数は、TextRunRun のスクリプト上で使う事は薦めません。

TextRunRun はすでに宣言してある関数なら実行する事ができます。

ですが、 TextRunRun ソースコードを知っているからと言って、 TextRunRun 内部処理の関数を使う事は薦めません。

今回は、 F_ から始まる関数を使うだけの方法では解決できないものがあったため、内部処理の関数を使いました。

今回は、問題がない事を確認して特例として、edi_ を先頭の名前に使っている関数を使っているだけなので、
これの様な TextRunRun の内部処理の関数をユーザーが自分で決めて使う事はしない様にしてください。

注意してほしい事

さて、「いつでも入力補完」を紹介して、ここまで説明しておいて何ですが注意してほしい事をいくつか書いておきます。

動作が遅いと思いますが、動作が完了するまで待って

今回作ったものは、選択・コピーと貼り付けをしているだけの動作をしているものです。

使ってみると、動作に時間がかかって遅いと感じると思います。

ですが、動作中に変に操作をしてしまうと本来のと違う場所の部分をコピーしたり、違う場所に貼り付けをしてしまうと思います。

動作している間は、下手に動かさず、動作が完了するまで待つようにしてください。

まず、これは試しに作ってみたものであるという事

試しに作ってみただけなので不具合はいくらでもありえます。

とりあえず、そこそこ使えそうなものができてる気がしてるというだけでアップロードした様なものです。

あまり期待はしないでください。

遊びの範囲で使う様にしてください

TextRunRun 自体が遊びの範囲で使うものである事と、今回作ったものは、思い付きで作ってみたものでしかないため、不具合がある事を承知で使ってみるようなものだと思います。

後書き

作って見たものである「いつでも入力補完」に関する説明は以上です。

この「いつでも入力補完」と、エディターに本来備わっている入力補完を合わせて使うと幅広く便利に使っていけるのではないかと思います。

サクラエディタなどのエディタでは、入力補完が元々使えるのでそれと合わせて使う使い方を薦めます。

アイコンTextRunRunの説明を見るページ

のホームページの方で、サクラエディタで AutoHotkey の入力補完を使えるように設定する方法を挙げているのでよかったら参考にしてください。

さて、実際使って見ると分かる事ですが今回紹介したものはショボいものです。

とはいえ、「いつでも入力補完」と呼べるようなものが本当にいつかは作れたらいいなと思っています。

今回紹介したものが今後改良されて、本当に思った通りのものができる第一歩になるといいと思っています。

初回投稿日:

最終更新日:

カテゴリー:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です