Vim ne fonctionne pas dans tmux

14

Lorsque j'essaie d'ouvrir un fichier en utilisant l' vimintérieur de tmuxla fenêtre entière se fige. Je dois tuer la fenêtre avec C-a &.

Voici mes ~/.vimrcparamètres:

:set autoindent
:set ts=4
:set number
:set shiftwidth=4
:set showmode
:filetype on
:filetype plugin on
:syntax enable
:set mouse=a

et ~/.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

Je fais face au problème dans RHEL. Cependant, la même configuration fonctionne bien sur mon Mac. Je suppose que les choses fonctionnaient bien jusqu'à ce que ma boîte RHEL soit redémarrée et que j'essaie de récupérer un fichier à partir du fichier d'échange vi.

Des idées pour résoudre le problème?

[edit]: J'ai essayé sshune autre boîte à l'intérieur tmuxet je cours vilà-bas. Fonctionne très bien dans une boîte à distance!


[ajouté plus tard] Suite à la suggestion de @jasonwryan, j'ai ajouté la ligne set -g default-terminal screen-256colorà la fin de tmux.conf. Cela empêchait des programmes comme lessde fonctionner.

echo $TERM à l'intérieur de tmux est "écran" et à l'extérieur de tmux est "xterm".

La recherche de $ TERM m'a conduit à https://wiki.archlinux.org/index.php/Tmux , d'où j'ai ajouté la ligne set -g default-terminal "screen-256color"comme première ligne de tmux.conf. Cela a transformé le $TERMtmux intérieur en "screen-256color". Mais maintenant, quand je démarre vidans tmux, il affiche l'erreur suivante:

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'

On dirait que j'ai résolu le problème. Juste ajouté set -g default-terminal xtermcomme première ligne de mon ~ / .tmux.conf et cela a fonctionné!

BiGYaN
la source
1
Cela peut ne pas être lié, mais vous devez définir le bon TERM dans tmux avecset -g default-terminal screen-256color
jasonwryan
3
Pouvez-vous mettre à jour votre question avec votre $ TERM dans et en dehors de tmux?
jasonwryan
1
En dehors de tmux, exécutez 'echo $ TERM'. À l'intérieur d'une session tmux, exécutez 'echo $ TERM'.
George M
1
Vous ne devriez régler votre TERM tmux que sur un dérivé d'écran: voir la FAQ : cela vous causera des problèmes sur la piste sinon ...
jasonwryan
1
Vous devez écrire votre propre réponse et l'afficher, avec celle-ci, puis l'accepter (il est parfaitement acceptable de le faire).
EightBitTony

Réponses:

11

J'ai résolu le problème en ajoutant la ligne

set -g default-terminal xterm

comme première ligne de mon ~ / .tmux.conf et cela a bien fonctionné.

Cependant, comme @jasonwryan l'a souligné, la FAQ TMUX indique clairement que:

La plupart des problèmes d'affichage sont dus à un TERM incorrect! Avant de signaler des problèmes, assurez-vous que les paramètres TERM sont corrects à l'intérieur et à l'extérieur de tmux.

À l'intérieur de tmux TERM doit être "screen" ou similaire (tel que "screen-256color"). A l'extérieur, il doit correspondre à votre terminal ...

Je poste uniquement cette réponse car elle a réellement résolu mon problème. n'hésitez pas à ajouter vos solutions alternatives.

BiGYaN
la source
2

Je viens de rencontrer le même problème sur une vieille boîte CentOS sur laquelle je devais travailler. Pour moi, définir TERM dans tmux sur xterm a provoqué d'autres problèmes étranges. Cependant, j'ai pu le corriger en commentant set mouse=adans mon .vimrc cf https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html

Apparemment, l'ajout set ttymouse=xterm2à votre .vimrc peut également faire l'affaire.

Pour toute autre personne rencontrant des problèmes similaires, je recommande de déplacer temporairement votre .vimrc pour voir si quelque chose en est la cause.

Ben
la source