Vim tidak berjalan di dalam tmux

14

Ketika saya mencoba membuka file menggunakan vimdi tmuxdalam seluruh jendela membeku. Saya harus membunuh jendela dengan C-a &.

Ini ~/.vimrcpengaturan saya :

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

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

Saya menghadapi masalah di RHEL. Namun konfigurasi yang sama berfungsi dengan baik di Mac saya. Saya kira, semuanya berjalan dengan baik sampai kotak RHEL saya restart dan saya mencoba untuk memulihkan file dari file vi swap.

Ada ide tentang cara memperbaikinya?

[Sunting]: Saya mencoba sshkotak lain di dalam tmuxdan berjalan di visana. Bekerja dengan baik di kotak jauh!


[ditambahkan nanti] Mengikuti saran dari @jasonwryan, saya menambahkan baris set -g default-terminal screen-256colordi akhir tmux.conf. Itu mencegah program seperti lessbekerja.

echo $TERM tmux di dalam adalah "layar" dan tmux luar adalah "xterm".

Mencari $ TERM membawa saya ke https://wiki.archlinux.org/index.php/Tmux , dari mana saya menambahkan baris set -g default-terminal "screen-256color"sebagai baris pertama tmux.conf. Ini membuat $TERMtmux bagian dalam menjadi "screen-256color". Tapi sekarang ketika saya mulai vidi dalam tmux, ini menampilkan kesalahan berikut:

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'

Sepertinya saya telah menyelesaikan masalah. Baru ditambahkan set -g default-terminal xtermsebagai baris pertama dari ~ / .tmux.conf saya dan berhasil!

BiGYaN
sumber
1
Ini mungkin tidak terkait, tetapi Anda harus mengatur TERM yang benar di tmux denganset -g default-terminal screen-256color
jasonwryan
3
Bisakah Anda memperbarui pertanyaan Anda dengan $ TERM Anda di dalam dan di luar tmux?
jasonwryan
1
Di luar tmux, jalankan 'echo $ TERM'. Di dalam sesi tmux, jalankan 'echo $ TERM'.
George M
1
Anda hanya harus mengatur TERM tmux Anda ke turunan layar: lihat FAQ : itu akan menyebabkan masalah Anda turun jalur sebaliknya ...
jasonwryan
1
Anda harus menulis jawaban Anda sendiri dan mempostingnya, dengan itu di dalamnya, dan kemudian menerimanya (sangat dapat diterima untuk melakukannya).
EightBitTony

Jawaban:

11

Saya memecahkan masalah dengan menambahkan baris

set -g default-terminal xterm

sebagai baris pertama dari ~ / .tmux.conf saya dan berfungsi dengan baik.

Namun seperti yang ditunjukkan oleh @jasonwryan, FAQ TMUX dengan jelas menyatakan bahwa:

Sebagian besar masalah tampilan disebabkan oleh TERM! Sebelum melaporkan masalah, pastikan PASTI bahwa pengaturan TERM benar di dalam dan di luar tmux.

Di dalam tmux TERM harus berupa "layar" atau serupa (seperti "layar-256color"). Di luar, itu harus cocok dengan terminal Anda ...

Saya hanya memposting jawaban ini karena benar-benar menyelesaikan masalah saya. jangan ragu untuk menambahkan solusi alternatif Anda.

BiGYaN
sumber
2

Saya hanya mengalami masalah yang sama pada kotak CentOS lama yang harus saya kerjakan. Bagi saya pengaturan TERM di tmux ke xterm menyebabkan masalah aneh lainnya muncul. Namun, saya dapat memperbaikinya dengan berkomentar set mouse=adi .vimrc cf https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html

Tampaknya menambahkan set ttymouse=xterm2ke .vimrc Anda juga dapat melakukan trik.

Untuk orang lain yang mengalami masalah serupa, saya sarankan untuk sementara memindahkan .vimrc Anda untuk melihat apakah ada sesuatu di dalam penyebabnya.

Ben
sumber