GNU/Linux >> Tutoriels Linux >  >> Linux

Vim ne fonctionne pas dans Tmux ?

Lorsque j'essaie d'ouvrir un fichier avec vim dans tmux toute la fenêtre se fige. Je dois tuer la fenêtre avec C-a & .

Voici mon ~/.vimrc paramè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 suis confronté au problème dans RHEL. Cependant, la même configuration fonctionne bien sur mon Mac. Je suppose que tout fonctionnait bien jusqu'à ce que ma boîte RHEL soit redémarrée et j'ai essayé de récupérer un fichier à partir du fichier d'échange vi.

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

[edit] :j'ai essayé ssh vers une autre boîte à l'intérieur de tmux et exécutant vi là. Fonctionne bien dans la boîte à distance !

[ajouté ultérieurement]
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 less de travailler.

echo $TERM à l'intérieur de tmux se trouve "screen" et à l'extérieur de tmux se trouve "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 rendu le $TERM à l'intérieur de tmux sur "screen-256color". Mais maintenant, quand je lance vi à l'intérieur de 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. Je viens d'ajouter set -g default-terminal xterm comme première ligne de mon ~/.tmux.conf et ça a marché !

Réponse acceptée :

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 (comme
"screen-256color"). A l'extérieur, il doit correspondre à votre borne…

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

Connexes :Faire fonctionner un moteur synchrone à courant alternatif avec du courant continu ?
Linux
  1. Utiliser Irssi dans une session Linux tmux

  2. Comment utiliser le type de fichier dans Vim ?

  3. Centos 7 :Configurer vim

  4. CronJob ne fonctionne pas

  5. Comment définir un fichier comme NON exécutable ?

Comment afficher les numéros de ligne dans Vim / Vi

^M à la fin de chaque ligne dans vim

Barre grise à gauche dans vim ?

Le service MongoDB ne s'exécute pas dans Fedora

tmux Ctrl+B ne fonctionne pas

Comment définir la tabulation sur 4 espaces dans vim?