マウスのスクロールホイールがスクロールバック バッファ内をスクロールできるように GNU 画面を設定するにはどうすればよいですか? これについてGoogleに問い合わせてみましたが、ほとんどのヒットは、画面内のアプリケーションがスクロールホイールを使用できるようにする方法に関するものでした.
10 に答える
次のような行をに追加するだけでよいと思います~/.screenrc
:
termcapinfo xterm* ti@:te@
ここで、「xterm*」は現在の TERM のグロブ マッチです。機能することを確認するには、^A^D して画面から切り離し、screen -d -r
再度接続してからls
、数回スクロールして戻ります。わたしにはできる。
この魔法は何ですか?それでは、マニュアルページを参照してみましょう。
screen(1)
言います:
termcapinfo term terminal-tweaks [window-tweaks]
[..]
The first argument specifies which terminal(s) should be affected by this
definition. You can specify multiple terminal names by separating them with
`|'s. Use `*' to match all terminals and `vt*' to match all terminals that
begin with "vt".
[..]
Some examples:
termcap xterm* LP:hs@
Informs screen that all terminals that begin with `xterm' have firm
auto-margins that allow the last position on the screen to be updated (LP),
but they don't really have a status line (no 'hs' - append `@' to turn
entries off). Note that we assume `LP' for all terminal names that start
with "vt", but only if you don't specify a termcap command for that terminal.
からtermcap(5)
:
String capabilities
[..]
te End program that uses cursor motion
ti Begin program that uses cursor motion
画面で、最初に「スクロールバックモード」(または「コピーモード」)に入り、スクロールバックバッファ内をスクロールできるようにする必要があります:キーコンボCtrl- a Esc、またはCtrl-- 。次に、上キーと下キー(または- 、-を使用してページを移動)を使用して履歴をスクロールできます。a Ctrl[CtrlbCtrlf
そのモードでは、他のアプリで機能する場合は、マウスホイールも機能するはずです。「スクロールバックモード」は。で終了しEscます。
最初にスクロールバックモードに入らずにスクロールバックバッファをスクロールすることに関しては、画面を変更しないとおそらくそれは不可能です。スクロールバックモードを除いて、スクロールバックバッファにアクセスする方法を聞いたことがありません。
Jon Z が言及している優れた記事はもう入手できませんが、Google キャッシュからテキストのみのバージョンを見つけることができました。将来的に Google が削除する場合に備えて、ここに保存しておきます。元の投稿は Mikael Ståldal によるものでした。
--
GNU Screen でマウスホイールを使用する方法
GNU Screen はスクロールバックをサポートしていますが、デフォルトでは使いにくいキーを使用する必要があります。xtermでできるように、Shift-PageUp、Shift-PageDown、およびマウスホイールを使用してスクロールできるようにしたいと思います。
このための Screen の設定は簡単ではなく、ターミナル エミュレータとの連携が必要でした。しかし、私は最終的にかなりうまくいく解決策を達成することができました。これを ~/.Xresources ファイルに追加します (これを有効にするにはログアウトする必要があります):
XTerm*saveLines: 0
XTerm*vt100.translations: #override \n\
Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
Lock @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
@Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
<Btn4Down>: string(0x1b) string("[5S") \n\
Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
Lock @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
@Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
<Btn5Down>: string(0x1b) string("[5T") \n\
Shift <KeyPress> Prior: string(0x1b) string("[25S") \n\
Shift <KeyPress> Next: string(0x1b) string("[25T") \n
次に、これを ~/.screenrc ファイルに追加します。
defscrollback 1000
# Scroll up
bindkey -d "^[[5S" eval copy "stuff 5\025"
bindkey -m "^[[5S" stuff 5\025
# Scroll down
bindkey -d "^[[5T" eval copy "stuff 5\004"
bindkey -m "^[[5T" stuff 5\004
# Scroll up more
bindkey -d "^[[25S" eval copy "stuff \025"
bindkey -m "^[[25S" stuff \025
# Scroll down more
bindkey -d "^[[25T" eval copy "stuff \004"
bindkey -m "^[[25T" stuff \004
これは xterm で機能します。他の端末エミュレーターで動作するかどうかはわかりません。
これにより、xterm での通常のスクロール サポートが無効になることに注意してください。スクロールできるのは、Screen を使用している場合のみです。常に Screen を使用するには、次のように xterm を起動するとよいでしょう。
xterm -e screen
OS X(Snow Leopard)の場合、次のことがうまくいきました:
http://slaptijack.com/system-administration/mac-os-x-terminal-and-gnu-screen-scrollback/
簡単に言うと、リモート ホスト (screen を実行しているホスト) の ~/.screenrc に以下を追加する必要があります。
defscrollback 5000
termcapinfo xterm* ti@:te@
GNU Screen 内の VIM でスクロールホイールを使用するには:
[.vimrc]
set mouse=a " hold shift to copy xterm
set ttymouse=xterm2 " necessary for gnu screen & mouse
Ctrl+を押しaてから[
これで、端末のタイトルバーにコピーモードと表示されます。
これで、矢印キーとマウスホイールが期待どおりに機能するはずです。
通常に戻るには、Escキーを押すか、Enterキーを数回押します。
screen を実行する前にTERM
変数を設定するvt100
ことも機能します。
私はこれを長い間使用してきましたが、魅力のように機能します。xterm
これをあなたに追加してください.bashrc
:
# make scrollbar / wheel scrolling work when running screen in gnome-terminal (or other)
if [ "$TERM" = "xterm" ]; then
export TERM=vt100
fi
--
参考までに、私.screenrc
はこれを持っています(このAFAIKには必要ありません):
# Extend the vt100 desciption by some sequences.
termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
以下は Cygwin と Putty の両方で私にとってはうまくいきました: Edit .screenrc and add
terminfo xterm* ti=:te=
「Ubuntu 16.04.2 LTS」を使用した場合の解決方法は以下の通りです。
a)。以前の回答で指定されているように$HOME/.screenrcを更新します。
termcapinfo xterm* ti@:te@
b)。"Settings"."Preferred Applications" を使用して、ドロップダウン リストから "X Terminal" を選択して、デフォルトのターミナルを xterm に変更します。
いくつかの余分なメモ
termcapinfo 行を「xterm*」ではなく「*」に変更しても、「lxterminal」のインストールを含む他の端末はどれも機能しませんでした。
画面の左上隅にあるメニュー ボタンをクリックすると、右下隅から 3 番目のアイコンを使用して [設定] ダイアログを表示できます。