6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RLoginのキーコードの指定方法について

Posted at

問題

RLoginをSSHクライアントソフトウェアとして使用している。
vimでタブ移動をCtrl-PageUp、Ctrl-PageDownで行えない。あるいは、vimでCtrl-カーソルキーやCtrl-ファンクションキーを使用したい。
これに応じて、RLoginでキーコードを指定する方法について、いろいろと調べたので、備忘も兼ねて記載する。

以下には、次の内容を記載する。

  1. ターミナルに送られているキーコードを調べる方法について
  2. RLoginのオプション設定で、キーコードに修飾キー(Shift/Alt/Ctrl)を送信するための設定方法について
  3. Roginのオプション設定で、キーコードを編集するときの、Assign Stringの値の設定方法について

調査

参考URL

RLogin 3.15 キーコードのオプション設定
[micro] RLogin から利用する場合に、Shift + カーソルキーを有効にする
特殊なキーと修飾キーでキーバインド(for Terminal)

1. ターミナルに送られているキーコードを調べる方法について

ターミナルに送られているキーコードを、以下のコマンドで調べることができる。

$ sed -n l
a
a$
^A
\001$

上記コマンドは、sedコマンドに、オプション-nlを指定している。
入力待ちになるので、aの後にEnterを入力すると(入力がエコーバックされたうえで)a$が出力される。続いて、Ctrl-aの後にEnterを入力すると(入力がエコーバックされたうえで)\001$が出力される。($は行末を意味する)
なお、終了するには、Ctrl-Cを入力する。
しかし、デフォルトの状態では、Ctrl-PageUpCtrl-PageDownを入力しても、何も出力されない。

RLogin側のオプション設定画面で、「キーボード」の「キーコード」ペインで確認してみると、Code:PRIOR, With:Ctrl$SEARCH_BACKが、Code:NEXT, With:Ctrl$SEARCH_NEXTが指定されている。
したがって、以下のいずれかの方法で、Code:PRIOR, With:CtrlやCode:NEXT, With:Ctrlのエントリがなくなった状態にする。

  • (1)これらの設定を削除する
  • (2)あるいは、バックアップとして、Altにチェックを追加しておく。これにより、Code:PRIOR, With:Ctrl+Alt$SEARCH_BACKが、Code:NEXT, With:Ctrl+Alt$SEARCH_NEXTが設定された状態にする。

なお、この状態にしても、リモートサーバにCtrl-PageUpCtrl-PageDownのキーコードが送信されない。

2. RLoginのオプション設定で、キーコードに修飾キー(Shift/Alt/Ctrl)を送信するための設定方法について

RLogin 3.15 キーコードのオプション設定 に基づいて、設定する。
PageUp(PRIOR)やPageDown(NEXT)、カーソルキーに修飾キーの情報を付与するには、1.modifyCursorKeys のドロップダウンリストで、0(以上)を選んでみる。
F1~F12に修飾キーの情報を付与するには、2.modifyFunctionKeysのドロップダウンリストで、0(以上)を選んでみる。
$ sed -n lでどんなコードが送られているか確認してみるとよい。

3. Roginのオプション設定で、キーコードを編集するときの、Assign Stringの値の設定方法について

RLogin 3.14 キーボードのオプション設定 に基づいて、設定する。

$ sed -n lでざっくり調べてみた。
RLoginでは、キーと修飾キーの組み合わせに応じた Assign String は、以下のようになると思われる。
修飾キーについて、ShiftをS、AltをA、CtrlをCと略記している。

制御シーケンスについて無知なので、間違っているかも・・・。

修飾キー→
↓キー
なし S A S-A C C-S C-A C-S-A
F1 \033OP \033O2P \033O3P \033O4P \033O5P \033O6P \033O7P \033O8P
F2 \033OQ \033O2Q \033O3Q \033O4Q \033O5Q \033O6Q \033O7Q \033O8Q
F3 \033OR \033O2R \033O3R \033O4R \033O5R \033O6R \033O7R \033O8R
F4 \033OS \033O2S \033O3S \033O4S \033O5S \033O6S \033O7S \033O8S
F5 \033[15~ \033[15;2~ \033[15;3~ \033[15;4~ \033[15;5~ \033[15;6~ \033[15;7~ \033[15;8~
F6 \033[17~ \033[17;2~ \033[17;3~ \033[17;4~ \033[17;5~ \033[17;6~ \033[17;7~ \033[17;8~
F7 \033[18~ \033[18;2~ \033[18;3~ \033[18;4~ \033[18;5~ \033[18;6~ \033[18;7~ \033[18;8~
F8 \033[19~ \033[19;2~ \033[19;3~ \033[19;4~ \033[19;5~ \033[19;6~ \033[19;7~ \033[19;8~
F9 \033[20~ \033[20;2~ \033[20;3~ \033[20;4~ \033[20;5~ \033[20;6~ \033[20;7~ \033[20;8~
F10 \033[21~ \033[21;2~ \033[21;3~ \033[21;4~ \033[21;5~ \033[21;6~ \033[21;7~ \033[21;8~
F11 \033[23~ \033[23;2~ \033[23;3~ \033[23;4~ \033[23;5~ \033[23;6~ \033[23;7~ \033[23;8~
F12 \033[24~ \033[24;2~ \033[24;3~ \033[24;4~ \033[24;5~ \033[24;6~ \033[24;7~ \033[24;8~
PRIOR(PageUp) \033[5~ \033[5;2~ \033[5;3~ \033[5;4~ \033[5;5~ \033[5;6~ \033[5;7~ \033[5;8~
NEXT(PageDown) \033[6~ \033[6;2~ \033[6;3~ \033[6;4~ \033[6;5~ \033[6;6~ \033[6;7~ \033[6;8~
HOME \033[H \033[2H \033[3H \033[4H \033[5H \033[6H \033[7H \033[8H
END \033[F \033[2F \033[3F \033[4F \033[5F \033[6F \033[7F \033[8F
UP \033[A \033[2A \033[3A \033[4A \033[5A \033[6A \033[7A \033[8A
DOWN \033[B \033[2B \033[3B \033[4B \033[5B \033[6B \033[7B \033[8B
RIGHT \033[C \033[2C \033[3C \033[4C \033[5C \033[6C \033[7C \033[8C
LEFT \033[D \033[2D \033[3D \033[4D \033[5D \033[6D \033[7D \033[8D

Assign String には、上記に示したようなもの以外にも、RLoginのメニュー項目に応じた動作を設定することもできる。例えば、Ctrl-Insert$PASTEを設定する、などが可能。

6
4
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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?