Vim no se ejecuta dentro de tmux

14

Cuando intento abrir un archivo usando vimdentro de tmuxtoda la ventana se congela. Tengo que matar la ventana con C-a &.

Aquí están mis ~/.vimrcconfiguraciones:

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

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

Estoy enfrentando el problema en RHEL. Sin embargo, la misma configuración funciona bien en mi Mac. Supongo que las cosas funcionaban bien hasta que mi caja RHEL se reinició e intenté recuperar un archivo desde vi swap file.

¿Alguna idea sobre cómo solucionar este problema?

[editar]: Traté sshde otra caja dentro tmuxy corriendo viallí. Funciona bien en caja remota!


[agregado más tarde] Siguiendo la sugerencia de @jasonwryan, agregué la línea set -g default-terminal screen-256coloral final de tmux.conf. Eso evitó que programas como lessfuncionen.

echo $TERM dentro de tmux es "pantalla" y fuera de tmux es "xterm".

La búsqueda de $ TERM me llevó a https://wiki.archlinux.org/index.php/Tmux , desde donde agregué la línea set -g default-terminal "screen-256color"como la primera línea de tmux.conf. Esto hizo que el $TERMtmux interno fuera "screen-256color". Pero ahora, cuando comienzo videntro de tmux, muestra el siguiente error:

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'

Parece que he resuelto el problema. ¡Acabo de agregar set -g default-terminal xtermcomo la primera línea de mi ~ / .tmux.conf y funcionó!

BiGYaN
fuente
1
Puede que no esté relacionado, pero debe establecer el TÉRMINO correcto en tmux conset -g default-terminal screen-256color
jasonwryan
3
¿Puedes actualizar tu pregunta con tu $ TERM dentro y fuera de tmux?
jasonwryan
1
Fuera de tmux, ejecute 'echo $ TERM'. Dentro de una sesión tmux, ejecute 'echo $ TERM'.
George M
1
Solo debe configurar su tmux TERM en un derivado de pantalla: consulte las preguntas frecuentes : de lo contrario, le provocará problemas en el camino ...
jasonwryan
1
Debe escribir su propia respuesta y publicarla, con eso en ella, y luego aceptarla (es perfectamente aceptable hacerlo).
EightBitTony

Respuestas:

11

Resolví el problema agregando la línea

set -g default-terminal xterm

como la primera línea de mi ~ / .tmux.conf y funcionó bien.

Sin embargo, como ha señalado @jasonwryan, las preguntas frecuentes de TMUX establecen claramente que:

La mayoría de los problemas de visualización se deben a un término incorrecto. Antes de informar problemas, ASEGÚRESE de que la configuración de TERM sea correcta dentro y fuera de tmux.

Dentro de tmux TERM debe estar "screen" o similar (como "screen-256color"). Afuera, debe coincidir con su terminal ...

Solo publico esta respuesta, ya que realmente resolvió mi problema. no dude en agregar sus soluciones alternativas.

BiGYaN
fuente
2

Me encontré con el mismo problema en una vieja caja CentOS en la que tuve que trabajar. Para mí, configurar TERM en tmux a xterm causó que aparecieran otros problemas extraños. Sin embargo, pude solucionarlo comentandoset mouse=a en mi .vimrc cf https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html

Aparentemente, agregar set ttymouse=xterm2a su .vimrc también puede hacer el truco.

Para cualquier otra persona que se encuentre con problemas similares, recomiendo mover temporalmente su .vimrc para ver si algo allí es la causa.

Ben
fuente