Vim没有在tmux中运行


14

当我尝试打开使用文件vimtmux整个窗口冻结。我必须用杀死窗户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交换文件中恢复文件后,一切正常。

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

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


[稍后添加]遵循@jasonwryan的建议,我set -g default-terminal screen-256color在的末尾添加了该行tmux.conf。那阻止了像程序这样的程序less工作。

echo $TERM 内部tmux是“ screen”,外部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'

看来我已经解决了问题。刚刚添加set -g default-terminal xterm为我的〜/ .tmux.conf的第一行,就可以了!


1
它可能没有关系,但是您应该使用set -g default-terminal screen-256color
jasonwryan

3
您可以在tmux内外使用$ TERM更新您的问题吗?
jasonwryan

1
在tmux之外,执行'echo $ TERM'。在tmux会话中,执行“ echo $ TERM”。
乔治M

1
您只应将tmux TERM设置为屏幕派生:请参阅FAQ:否则将导致问题,否则……
jasonwryan 2012年

1
您应该编写自己的答案并张贴在其中,然后接受它(这样做是完全可以接受的)。
EightBitTony

Answers:


11

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

set -g default-terminal xterm

作为我的〜/ .tmux.conf的第一行,效果很好。

但是,正如@jasonwryan指出的那样,TMUX FAQ明确指出:

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

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

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


2

我只是在必须处理的旧CentOS机器上遇到了相同的问题。对我来说,将tmux中的TERM设置为xterm会导致其他奇怪的问题弹出。但是,我可以通过set mouse=a在.vimrc cf https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html中注释掉来解决此问题

显然,添加set ttymouse=xterm2到您的.vimrc文件也可以解决问题。

对于遇到类似问题的其他任何人,我建议暂时移动您的.vimrc,以查看是否存在某些原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.