Vim이 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 상자가 다시 시작되고 vi 스왑 파일에서 파일을 복구하려고 할 때까지 문제가 발생했습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

[편집] : 나는 ssh다른 상자에 들어가서 거기서 tmux뛰어 내려 노력 vi했다. 원격 박스에서 잘 작동합니다!


[나중에 추가됨] @jasonwryan의 제안 set -g default-terminal screen-256color에 따라 끝에 줄 을 추가했습니다 tmux.conf. 그로 인해 프로그램 less이 작동 하지 못했습니다 .

echo $TERM tmux 내부는 "screen"이고 외부 tmux는 "xterm"입니다.

$ TERM을 검색하면 https://wiki.archlinux.org/index.php/Tmux이동 하여이 줄 set -g default-terminal "screen-256color"을의 첫 번째 줄로 추가했습니다 tmux.conf. 이것은 $TERM내부 tmux를 "screen-256color" 로 만들었습니다 . 그러나 이제 vitmux에서 시작할 때 다음 오류가 표시됩니다.

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
그것은 관련되지 않을 수도 있습니다,하지만 당신과 함께 TMUX 올바른 TERM을 설정해야합니다set -g default-terminal screen-256color
jasonwryan

3
tmux 안팎에서 $ TERM으로 질문을 업데이트 할 수 있습니까?
jasonwryan

1
tmux 외부에서 'echo $ TERM'을 실행하십시오. tmux 세션 내에서 'echo $ TERM'을 실행하십시오.
George M

1
당신은 화면 유도체에 TMUX 기간을 설정해야합니다 참조 FAQ를 : 당신이 다른 트랙 아래 문제의 원인이됩니다 ...
jasonwryan

1
당신은 당신의 자신의 답변을 작성하고 그것을 그것에 게시 한 다음 그것을 수락해야합니다 (완전히 받아 들일 수 있습니다).
EightBitTony

답변:


11

줄을 추가하여 문제를 해결했습니다.

set -g default-terminal xterm

~ / .tmux.conf의 첫 번째 줄로 잘 작동했습니다.

그러나 @jasonwryan이 지적했듯이 TMUX FAQ는 다음과 같이 명확하게 설명합니다.

대부분의 디스플레이 문제는 잘못된 TERM으로 인한 것입니다! 문제점을보고하기 전에 TERM 설정이 tmux 내부 및 외부에서 올바른지 확인하십시오.

tmux TERM 내부는 "screen"또는 이와 유사해야합니다 (예 : "screen-256color"). 외부에서는 터미널과 일치해야합니다 ...

실제로이 문제를 해결 했으므로이 답변 만 게시하십시오. 다른 솔루션을 자유롭게 추가하십시오.


2

방금 작업해야했던 이전 CentOS 상자에서 동일한 문제가 발생했습니다. 나를 위해 tmux의 TERM을 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.