2018-09-02

ssh経由のtmuxの中で動くvimのウインドウサイズ変更にマウスを使う方法

私はマウスが好きだ。

30行以上、100列以上の文字が表示できる端末を使っている私にとっては、マウスは必須である。画面上に表示される任意の1文字にカーソルを合わせたい場合、キーボードだけでカーソルを移動させるのはとてもつらい作業である。一方、マウスならばその場にカーソルを動かすだけでよい。

端末を分割して複数の画面にする時、それぞれの画面のサイズをその場で微調整するには、キーボードで画面サイズの数値を指定するよりは、やはりマウスで直感的にドラッグしたい。

例えばvimだ。以下のようにすると

:set mouse=a

Vimはマウスを扱えるようになる。端末の任意の文字にカーソルを合わせるのにマウスを使えるのみならず、マウスでスクロールやマウスで範囲選択もできる。

Vimは画面を複数のWindowに分割できる。

:split
:vsplit

このとき、マウスを有効にしているとウインドウの枠をドラッグすることでサイズを直感的に変更できる。

tmuxも重要なソフトウェアだ。

tmuxは.tmux.confに以下の設定をすれば、

set -g mouse on

マウスを使えるようになる。マウスでスクロール、範囲選択ができるし、

Ctrl-b "
Ctrl %

で作ったtmuxのpaneのサイズもドラッグで直感的に変更できるようになる。

ところが、tmuxのなかで実行したvimのウインドウのサイズをマウスで変更できないことに気がついた。

調べた結果、これは.vimrcに以下のように書き込めばできる。

set mouse=a
set ttymouse=xterm2

どうやらxterm2にあるドラッグ中もマウス入力を通知し続ける機能を使うそうだ。tmuxも対応している。

これで問題は完璧に解決したと思ったが、もう一つ問題に出くわした。ssh先のリモートで実行したtmuxの中で実行したvimではマウスによるウインドウのりサイズができない。

これは.tmux.confに以下のように書けばできる。

set -g mouse on
setw -g alternate-screen on

man tmuxをみるとデフォルトでonになっているはずだが、なぜかUbuntu server 18.04ではonになっていないようだ。

これで以前からやりたかったssh越しにも違和感のまったくない環境を作ることができた。

9 comments:

  1. いわもと こういちSeptember 3, 2018 at 3:55 PM

    ttymouse=xterm2には224桁問題があるので、ttymouse=sgrの方がお勧め。
    SGR mouse modeに対応していない端末でもttymouse=xterm2相当で動くので、殆どの場合で問題が出ないはず。

    ReplyDelete
  2. Very significant Information for us, I have think the representation of this Information is actually superb one 사설토토

    ReplyDelete
  3. I was always in search of such useful information you have shared in this blog. This will help me in my working 사설토토


    ReplyDelete
  4. This is a topic which is near to my heart... Cheers!
    Exactly where are your contact details though? 카지노사이트

    ReplyDelete

  5. Thanks for ones marvelous posting! I genuinely enjoyed reading it,
    you’re a great author.I will be sure to bookmark your blog
    and may come back down the road. I want to encourage you continue your great work,
    have a nice afternoon!

    My web site; 부산오피

    (freaky)

    ReplyDelete
  6. you have done a great job. I will definitely dig it and personally recommend to my friends. I am confident they will be benefited from this site 국산야동

    Please visit once. I leave my blog address below
    야설
    국산야동

    ReplyDelete
  7. Great Information sharing .. I am very happy to read this article .. thanks for giving us go through info.Fantastic nice. I appreciate this post.
    바카라사이트비즈

    ReplyDelete
  8. This paragraph will assist the internet people for creating new website or even a weblog from start to end. 바둑이사이트넷

    ReplyDelete
  9. my loved one! I wish to say that this article is awesome, nice written and come with almost all significant infos. I¡¦d like to look extra posts like this . lets start work on this write-up, I seriously think this excellent website needs far more consideration. I’ll likely to end up again to learn a lot more, many thanks for that information. Valuable information. Fortunate me I discovered your website by accident, and I am stunned why this coincidence didn’t came about earlier! I bookmarked it. You’re the best, I was doing a google search and your site came up for real estate in Longwood, FL but anyway, I have enjoyed reading it, keep it up! 안전토토사이트

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.