Vim non funziona all'interno di tmux


14

Quando provo ad aprire un file usando vimdentro tmuxl'intera finestra si blocca. Devo uccidere la finestra con C-a &.

Ecco le mie ~/.vimrcimpostazioni:

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

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

Sto affrontando il problema in RHEL. Tuttavia, la stessa configurazione funziona bene sul mio Mac. Immagino che le cose funzionassero bene fino a quando la mia scatola RHEL non è stata riavviata e ho provato a recuperare un file dal file di scambio vi.

Qualche idea su come risolvere questo problema?

[modifica]: ho provato sshad un'altra casella all'interno tmuxe correndo vilì. Funziona bene nella scatola remota!


[aggiunto più tardi] Seguendo il suggerimento di @jasonwryan, ho aggiunto la riga set -g default-terminal screen-256coloralla fine di tmux.conf. Ciò ha impedito il funzionamento di programmi come less.

echo $TERM dentro tmux è "schermo" e fuori da tmux è "xterm".

La ricerca di $ TERM mi ha portato a https://wiki.archlinux.org/index.php/Tmux , da cui ho aggiunto la riga set -g default-terminal "screen-256color"come prima riga di tmux.conf. Ciò ha reso il $TERMtmux interno a "screen-256color". Ma ora quando inizio viin tmux, viene visualizzato il seguente errore:

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'

Sembra che io abbia risolto il problema. Appena aggiunto set -g default-terminal xtermcome prima riga del mio ~ / .tmux.conf e ha funzionato!


1
Potrebbe non essere correlato, ma dovresti impostare il TERM corretto in tmux conset -g default-terminal screen-256color
jasonwryan

3
Puoi aggiornare la tua domanda con $ TERM dentro e fuori da tmux?
Jasonwryan,

1
Al di fuori di tmux, eseguire 'echo $ TERM'. All'interno di una sessione di tmux, eseguire 'echo $ TERM'.
George M,

1
Dovresti solo impostare il tuo tmux TERM su una derivata dello schermo: vedi le FAQ : altrimenti
causerai

1
Dovresti scrivere la tua risposta e pubblicarla, inserendola, e accettarla (è perfettamente accettabile farlo).
EightBitTony,

Risposte:


11

Ho risolto il problema aggiungendo la riga

set -g default-terminal xterm

come la prima riga del mio ~ / .tmux.conf e ha funzionato bene.

Tuttavia, come ha sottolineato @jasonwryan, le FAQ di TMUX affermano chiaramente che:

La maggior parte dei problemi di visualizzazione sono dovuti a TERM errato! Prima di segnalare problemi assicurarsi che le impostazioni TERM siano corrette all'interno e all'esterno di tmux.

All'interno di tmux TERM deve essere "screen" o simile (come "screen-256color"). All'esterno, deve corrispondere al tuo terminale ...

Pubblico questa risposta solo perché ha risolto il mio problema. sentiti libero di aggiungere le tue soluzioni alternative.


2

Ho appena riscontrato lo stesso problema su una vecchia scatola CentOS su cui ho dovuto lavorare. Per me impostare TERM in tmux su xterm ha fatto apparire altri strani problemi. Tuttavia, sono stato in grado di risolverlo commentando set mouse=anel mio .vimrc cf https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html

Apparentemente aggiungere set ttymouse=xterm2al tuo .vimrc può anche fare il trucco.

Per chiunque si imbatta in problemi simili, ti consiglio di spostare temporaneamente il tuo .vimrc per vedere se qualcosa è la causa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.