Vim không chạy bên trong tmux


14

Khi tôi cố gắng mở một tập tin bằng cách sử dụng vimbên trong tmuxtoàn bộ cửa sổ đóng băng. Tôi phải giết cửa sổ với C-a &.

Đây là ~/.vimrccài đặt của tôi :

: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

Tôi đang đối mặt với vấn đề trong RHEL. Tuy nhiên, cấu hình tương tự hoạt động tốt trong máy Mac của tôi. Tôi đoán, mọi thứ đã hoạt động tốt cho đến khi hộp RHEL của tôi được khởi động lại và tôi đã cố gắng khôi phục một tệp từ tệp hoán đổi vi.

có ý tưởng nào để sửa cái này không?

[sửa]: Tôi đã thử sshđể hộp khác bên trong tmuxvà chạy viở đó. Hoạt động tốt trong hộp từ xa!


[thêm vào sau] Theo gợi ý của @jasonwryan, tôi đã thêm dòng set -g default-terminal screen-256colorở cuối tmux.conf. Điều đó ngăn cản các chương trình như lesslàm việc.

echo $TERM bên trong tmux là "màn hình" và bên ngoài tmux là "xterm".

Tìm kiếm $ TERM đã dẫn tôi đến https://wiki.archlinux.org/index.php/Tmux , từ đó tôi đã thêm dòng này set -g default-terminal "screen-256color"làm dòng đầu tiên tmux.conf. Điều này làm cho $TERMtmux bên trong thành "screen-256color". Nhưng bây giờ khi tôi bắt đầu vibên trong tmux, nó sẽ hiển thị lỗi sau:

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'

Hình như tôi đã giải quyết được vấn đề. Chỉ cần thêm vào set -g default-terminal xtermnhư dòng đầu tiên của tôi ~ / .tmux.conf và nó đã hoạt động!


1
Nó có thể không liên quan, nhưng bạn nên đặt set -g default-terminal screen-256color
TATE

3
Bạn có thể cập nhật câu hỏi của bạn với $ TERM trong và ngoài tmux không?
jasonwryan

1
Bên ngoài tmux, thực hiện 'echo $ TATE'. Bên trong phiên tmux, thực hiện 'echo $ TERM'.
George M

1
Bạn chỉ nên đặt Tmux TERM của mình thành một dẫn xuất màn hình: xem Câu hỏi thường gặp : nó sẽ khiến bạn gặp sự cố theo dõi khác ...
jasonwryan

1
Bạn nên viết câu trả lời của riêng bạn và đăng nó, với nó trong đó, và sau đó chấp nhận nó (hoàn toàn chấp nhận được để làm như vậy).
EightBitTony

Câu trả lời:


10

Tôi đã giải quyết vấn đề bằng cách thêm dòng

set -g default-terminal xterm

là dòng đầu tiên của tôi ~ / .tmux.conf và nó hoạt động tốt.

Tuy nhiên, như @jasonwryan đã chỉ ra, Câu hỏi thường gặp về TMUX nêu rõ rằng:

Hầu hết các vấn đề hiển thị là do HẠN không chính xác! Trước khi báo cáo sự cố, hãy xác định rằng cài đặt TATE là chính xác bên trong và bên ngoài tmux.

Bên trong tmux TERM phải là "màn hình" hoặc tương tự (chẳng hạn như "screen-256color"). Bên ngoài, nó phải phù hợp với thiết bị đầu cuối của bạn ...

Tôi chỉ đăng câu trả lời này vì nó thực sự giải quyết vấn đề của tôi. xin vui lòng thêm giải pháp thay thế của bạn.


2

Tôi vừa gặp vấn đề tương tự trên một hộp CentOS cũ mà tôi phải làm việc. Đối với tôi, việc đặt TERM trong tmux thành xterm khiến các vấn đề lạ khác xuất hiện. Tuy nhiên, tôi đã có thể khắc phục bằng cách nhận xét set mouse=atrong .vimrc cf của tôi https://lists.gnu.org/archive/html/screen-users/2005-04/msg00039.html

Rõ ràng việc thêm set ttymouse=xterm2vào .vimrc của bạn cũng có thể thực hiện thủ thuật.

Đối với bất kỳ ai khác gặp phải các vấn đề tương tự, tôi khuyên bạn nên tạm thời di chuyển .vimrc của mình để xem có nguyên nhân nào không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.