Vim 不在 tmux 中运行

BiG*_*YaN 15 vim tmux

当我尝试在整个窗口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
Run Code Online (Sandbox Code Playgroud)

~/.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
Run Code Online (Sandbox Code Playgroud)

我在 RHEL 中遇到了这个问题。但是,相同的配置在我的 Mac 中运行良好。我想,在我的 RHEL 盒重新启动之前一切正常,我尝试从 vi 交换文件中恢复文件。

有想法该怎么解决这个吗?

[编辑]:我试图ssh在其他盒子里面tmux运行vi。在远程盒子中工作正常!


[稍后添加] 按照@jasonwryan 的建议,我set -g default-terminal screen-256colortmux.conf. 这阻止了像这样的程序less工作。

echo $TERM tmux 内部是“屏幕”,tmux 外部是“xterm”。

搜索 $TERM 将我带到https://wiki.archlinux.org/index.php/Tmux,从那里我添加了该行set -g default-terminal "screen-256color"作为tmux.conf. 这使$TERM内部 tmux 变为“screen-256color”。但是现在当我vi在 tmux 中启动时,它显示以下错误:

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'
Run Code Online (Sandbox Code Playgroud)

看起来我已经解决了这个问题。刚刚添加set -g default-terminal xterm为我的 ~/.tmux.conf 的第一行,它起作用了!

BiG*_*YaN 12

我通过添加行解决了这个问题

set -g default-terminal xterm
Run Code Online (Sandbox Code Playgroud)

作为我的 ~/.tmux.conf 的第一行,它运行良好。

然而,正如@jasonwryan 所指出的,TMUX 常见问题解答明确指出:

大多数显示问题是由于不正确的 TERM!在报告问题之前,请确保 TERM 设置在 tmux 内外都是正确的。

内部 tmux TERM 必须是“screen”或类似的(例如“screen-256color”)。在外面,它必须与您的终端相匹配......

我只发布这个答案,因为它实际上解决了我的问题。请随意添加您的替代解决方案。