ไม่มีการเน้นไวยากรณ์ใน tmux


16

ผมติดตั้งtmuxใน iTerm 2. (รูปร่าง 3.0.13) เมื่อผมดำเนินการvimในtmux, เน้นไวยากรณ์ลักษณะเช่นนี้

ไม่มีการเน้นไวยากรณ์

แต่ภายนอก tmux การเน้นไวยากรณ์ดูดี

เน้นไวยากรณ์ปกติ

ฉัน$TERMภายในและภายนอก tmux xterm-256colorคือ ฉันยังเพิ่ม

set -g default-terminal "screen-256color"

ใน.tmux.confและเพิ่มสิ่งนี้

set t_Co=256
set t_AB=m
set t_AF=m
if &term =~ '256color'
    set t_ut=
endif

ใน.vimrc.

ฉันลองtmux -2สั่งและอ่านคำถามเหล่านี้

เสีย colorcheme เป็นกลุ่มในโหมด tmux

สีไม่ถูกต้องพร้อมเสียงเรียกเข้าใน iTerm2 โดยใช้ Solarized

ปัญหานี้เป็นปัญหาของtmux, vimหรือการกำหนดค่าของฉันได้อย่างไร

แก้ไข:

ของฉัน.vimrcใน GitHub สรุปสาระสำคัญ

https://gist.github.com/sohnryang/3c63397f332f2e30c7d7b2a83c3c9f52


จะเกิดอะไรขึ้นเมื่อคุณเริ่ม tmux ของคุณด้วยตัวเลือก:-2 tmux -2โดยเฉพาะอย่างยิ่งเมื่อไม่มีเซสชันใน tmux
grodzik

ฉันใช้tmux -2แต่ปัญหาเหมือนกัน
sohnryang

คุณสามารถแบ่งปันทั้งหมดได้.vimrcหรือไม่
grodzik

1
@sohnryang ส่วนไหนของ "บางทีคุณไม่ควร" ที่คุณไม่เข้าใจ?
muru

1
ลองทำตามขั้นตอนเหล่านี้ คุณมีปลั๊กอินจำนวนมากดังนั้นอาจเป็นหนึ่งในปลั๊กอินที่รบกวน
Martin Tournoij

คำตอบ:


8

ฉันแก้ไขปัญหาด้วยตัวเอง

ตามที่ @ Carpetsmoker ♦แสดงความคิดเห็นฉันเริ่มสงสัยว่าฉัน.vimrcมีปัญหา ฉันอ่านคำถามนี้และเริ่มเป็นกลุ่มด้วยคำสั่งนี้ใน tmux

vim -u NONE -U NONE -N ~/.vimrc

หลังจากเริ่มเป็นกลุ่มด้วยคำสั่งด้านบนฉันรันคำสั่งนี้ภายในกลุ่ม

:syn on
:colorscheme solarized8_dark

สิ่งเหล่านี้เน้น.vimrcไฟล์ของฉัน .vimrcดังนั้นผมเริ่มที่จะแก้ปัญหาของฉัน

เรื่องสั้นเรื่องยาวset termguicolorsเป็นปัญหา ถ้าฉันวิ่งเป็นกลุ่มด้วยset termguicolorsความเห็น.vimrcฉันจะได้เห็นการเน้นไวยากรณ์ที่ถูกต้องใน tmux


ฉันมีปัญหาเดียวกัน จะดีจะได้รับtermguicolorsการทำงานใน tmux แม้ว่า
Filype

4

จากคู่มือ vim: :h termguicolorsแนะนำให้อ่าน:h xterm-true-color

Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly.  [ ... these are]  only set [to some default] when `$TERM` is `xterm`.

ฉันใช้เงื่อนไขคล้ายกับด้านล่าง:

if &term =~# '256color' && ( &term =~# '^screen'  || &term =~# '^tmux' )
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
    set termguicolors
endif

3

termguicolorsที่จริงผมทำให้มันทำงานได้ดีกับ นี่คือสิ่งที่ฉันทำ 1. ใน ~ / .bash_profile ฉันใส่นี่:

export TERM=xterm-256color

และภายใน ~ / .vimrc ฉันมีสิ่งนี้

syntax enable
colorscheme Spacegray

set termguicolors

และมันก็ทำงานได้อย่างสมบูรณ์แบบ! การอ้างอิง


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