vim
内でtmux
を使用してファイルを開こうとすると、ウィンドウ全体がフリーズします。 C-a &
でウィンドウを強制終了する必要があります。
これが私の~/.vimrc
設定です:
:set autoindent
:set ts=4
:set number
:set shiftwidth=4
:set showmode
:filetype on
:filetype plugin on
:syntax enable
:set mouse=a
および~/.tmux.conf
# I like Ctrl-a as the default hotkey
unbind C-b
set-option -g prefix C-a
# Split window using | and -
unbind %
bind | split-window -h
bind - split-window -v
# Set status bar
set -g status-bg black
set -g status-fg white
set -g status-left ‘#[fg=green]#H’
# Highlight active window
set-window-option -g window-status-current-bg red
# Makes window numbering start from 1, instead of 0
set -g base-index 1
RHELで問題に直面しています。ただし、私のMacでは同じ構成が正常に機能します。私の推測では、RHELボックスが再起動され、viスワップファイルからファイルを復元しようとするまで、問題はありませんでした。
これを修正する方法に関するアイデアはありますか?
[編集]:ssh
内の他のボックスでtmux
を試し、そこでvi
を実行しました。リモートボックスで問題なく動作します。
[後で追加] @jasonwryanの提案に従って、set -g default-terminal screen-256color
の最後にtmux.conf
という行を追加しました。これにより、less
のようなプログラムが機能しなくなりました。
echo $TERM
は、tmuxの内部が「画面」で、tmuxの外部が「xterm」です。
$ TERMを検索すると、 https://wiki.archlinux.org/index.php/Tmux が表示され、そこからset -g default-terminal "screen-256color"
をtmux.conf
の最初の行として追加しました。これにより、tmux内の$TERM
が「screen-256color」になりました。しかし、tmux内でvi
を開始すると、次のエラーが表示されます。
E558: Terminal entry not found in terminfo
'screen-256color' not known. Available builtin terminals are:
builtin_riscos
builtin_amiga
builtin_beos-ansi
builtin_ansi
builtin_pcansi
builtin_win32
builtin_vt320
builtin_vt52
builtin_xterm
builtin_iris-ansi
builtin_debug
builtin_dumb
defaulting to 'ansi'
問題を解決したようです。 〜/ .tmux.confの最初の行としてset -g default-terminal xterm
を追加しただけで動作しました!
行を追加して問題を解決しました
set -g default-terminal xterm
〜/ .tmux.confの最初の行として、それはうまくいきました。
ただし、@ jasonwryanが指摘したように、 TMUX FAQ は次のように明確に述べています。
ほとんどの表示の問題は、不適切なTERMが原因です!問題を報告する前に、TERM設定がtmuxの内部と外部で正しいことを確認してください。
Tmux内では、TERMは「画面」または同様のもの(「screen-256color」など)でなければなりません。外では、それはあなたの端末と一致する必要があります...
実際に私の問題を解決したので、私はこの回答を投稿するだけです。代わりのソリューションを追加してください。
私が取り組んでいた古いCentOSボックスで同じ問題に遭遇しました。私にとってtmuxのTERMをxtermに設定すると、他の奇妙な問題が発生しました。しかし、コメントアウトすることで修正できましたset mouse=a
私の.vimrc c.f. https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html
どうやらset ttymouse=xterm2
を.vimrcに追加することもできます。
同様の問題が発生している他の人のために、一時的に.vimrcを移動して、そこに原因があるかどうかを確認することをお勧めします。