เป็นกลุ่มที่ไม่ทำงานภายใน tmux


14

เมื่อฉันพยายามที่จะเปิดไฟล์โดยใช้vimภายในtmuxทั้งหน้าต่างค้าง C-a &ฉันต้องฆ่าหน้าต่างที่มี

นี่คือ~/.vimrcการตั้งค่าของฉัน:

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

และ ~/.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

ฉันกำลังเผชิญปัญหาใน RHEL อย่างไรก็ตามการกำหนดค่าเดียวกันนี้ทำงานได้ดีใน Mac ของฉัน ฉันเดาว่าสิ่งต่าง ๆ ทำงานได้ดีจนกระทั่งกล่อง RHEL ของฉันเริ่มต้นใหม่และฉันพยายามกู้คืนไฟล์จากไฟล์ swap vi

ความคิดเห็นเกี่ยวกับวิธีการแก้ไขปัญหานี้?

[แก้ไข]: ฉันพยายามsshที่กล่องอื่น ๆ ภายในtmuxและทำงานที่viนั่น ทำงานได้ดีในกล่องระยะไกล!


[เพิ่มในภายหลัง] ตามคำแนะนำของ @jasonwryan ฉันเพิ่มบรรทัดในตอนท้ายของset -g default-terminal screen-256color tmux.confที่ป้องกันโปรแกรมเช่นlessทำงานได้

echo $TERM ภายใน tmux คือ "หน้าจอ" และภายนอก tmux คือ "xterm"

กำลังหา $ ลงทุนนำฉันไปhttps://wiki.archlinux.org/index.php/Tmuxจากที่ผมเพิ่มบรรทัดเป็นบรรทัดแรกของset -g default-terminal "screen-256color" tmux.confสิ่งนี้ทำให้$TERMtmux ภายในเป็น "screen-256color" แต่ตอนนี้เมื่อฉันเริ่มต้นviภายใน tmux มันจะแสดงข้อผิดพลาดต่อไปนี้:

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'

ดูเหมือนว่าฉันจะแก้ไขปัญหาได้แล้ว เพิ่งเพิ่มset -g default-terminal xtermเป็นบรรทัดแรกของ ~ / .tmux.conf และใช้งานได้!


1
อาจไม่เกี่ยวข้องกัน แต่คุณควรตั้ง TERM ที่ถูกต้องใน tmux ด้วยset -g default-terminal screen-256color
jasonwryan

3
คุณสามารถอัปเดตคำถามของคุณด้วย $ TERM ทั้งในและนอก tmux ได้หรือไม่?
jasonwryan

1
ภายนอก tmux ดำเนินการ 'echo $ TERM' ภายในเซสชัน tmux รัน 'echo $ TERM'
George M

1
คุณควรจะตั้งค่าได้เพียงระยะ tmux ของคุณไปยังหน้าจออนุพันธ์: ดูคำถามที่พบบ่อย : มันจะทำให้คุณออกลงติดตามเป็นอย่างอื่น ...
jasonwryan

1
คุณควรเขียนคำตอบของคุณเองแล้วโพสต์ลงไปจากนั้นก็ยอมรับมัน (ยอมรับได้อย่างสมบูรณ์)
EightBitTony

คำตอบ:


11

ฉันแก้ไขปัญหาด้วยการเพิ่มบรรทัด

set -g default-terminal xterm

เป็นบรรทัดแรกของ ~ / .tmux.conf และทำงานได้ดี

อย่างไรก็ตามเนื่องจาก @jasonwryan ได้ชี้ให้เห็นแล้วคำถามที่พบบ่อยเกี่ยวกับTMUXระบุไว้อย่างชัดเจนว่า:

ปัญหาการแสดงผลส่วนใหญ่เกิดจาก TERM ไม่ถูกต้อง! ก่อนรายงานปัญหาให้แน่ใจว่าการตั้งค่า TERM นั้นถูกต้องทั้งภายในและภายนอก tmux

TMMC TERM ภายในต้องเป็น "screen" หรือคล้ายกัน (เช่น "screen-256color") ข้างนอกต้องตรงกับเทอร์มินัลของคุณ ...

ฉันโพสต์คำตอบนี้เฉพาะเมื่อมันแก้ไขปัญหาของฉัน โปรดเพิ่มโซลูชันทางเลือกของคุณ


2

ฉันพบปัญหาเดียวกันในกล่อง CentOS เก่าที่ฉันต้องทำงาน สำหรับฉันการตั้งค่า TERM ใน tmux เป็น xterm ทำให้เกิดปัญหาแปลก ๆ ขึ้นมาอีก อย่างไรก็ตามฉันสามารถแก้ไขได้โดยแสดงความคิดเห็นset mouse=aใน. vimrc cf ของฉันhttps://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html

เห็นได้ชัดว่าการเพิ่มset ttymouse=xterm2. vimrc ของคุณอาจเป็นการหลอกลวง

สำหรับคนอื่นที่พบปัญหาที่คล้ายกันฉันขอแนะนำให้ย้าย. vimrc ของคุณชั่วคราวเพื่อดูว่ามีบางอย่างในนั้นมีสาเหตุหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.