saat menggunakan vim dalam tmux saya dapat melihat bahwa dukungan 256 warna diaktifkan. dengan warna $ tput
Namun mengubah skema warna dalam vim sementara di tmux akan mengubah skema warna pada basis per baris tetapi tidak seluruh latar belakang. lihat tangkapan layar
Berikut ini cuplikan dari file .vimrc saya. Colorscheme asli saya solarisasi gelap dan kemudian setelah berjalan: colorscheme molokai Anda melihat apa yang terjadi.
info
- terminal gnome
- pesta
di ~ / .tmux.conf saya
set -g default-terminal "screen-256color"
di ~ / .vimrc saya
set t_Co=256
di ~ / .bashrc saya
# ryan
export TERM="xterm-256color"
# ryan
alias tmux="tmux -2"
di profil ~ /. saya
# ryan 256 color support
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
export TERM='xterm-256color'
else
export TERM='xterm-color'
fi
Ada ide bagaimana saya bisa mendapatkan perubahan colorscheme penuh di vim? Apakah semua cuplikan dari file saya terlihat bagus?
Jawaban:
Dari tampilan .bashrc dan .profile Anda, shell di dalam tmux menimpa pengaturan 'default-terminal' di tmux conf Anda. Sesuatu seperti ini:
TERM=screen-256color
TERM=xterm-256color
Anda dapat memeriksa ini dengan menjalankan
dalam shell tmux segar.
Tmux relatif pilih-pilih untuk mengatur terminal dengan benar. Jika Anda bisa, tetapkan nilai term dalam konfigurasi gnome-terminal, bukan di .bashrc Anda. Gagal itu, mengelilingi pengaturan itu dengan tanda centang untuk "layar" atau "layar-256color", dan jangan mengatur ulang mereka dalam kasus itu.
Tmux BENAR-BENAR menginginkan terminal diatur ke
screen
atauscreen-256color
sumber
set -g default-terminal "screen-256color"
baris di tmux conf Anda.if [[ $TERM == xterm ]]; then TERM=xterm-256color; fi
, itu berhasil untuk saya.Seperti yang dijelaskan di sini , nonaktifkan Background Color Erase (BCE) dengan menghapus
t_ut
opsi terminal (jalankan:set t_ut=
di Vim dan kemudian tekan Control+ Luntuk menyegarkan tampilan terminal) sehingga skema warna berfungsi dengan baik ketika Vim digunakan di dalam tmux dan layar GNU.sumber
set t_ut=
ke vimrc saya yang menghilangkan kebutuhan untuk menggunakan perintah secara manual dan tidak perlu menggunakan <kbd> Kontrol </kbd> + <kbd> L </kbd> sejak sesi dimulai dengan BCE dinonaktifkan.Saya telah menemukan cara yang lebih baik di pos ini . Anda dapat membuat alias tmux
tmux -2
yang akan memaksa tmux untuk mengasumsikan bahwa shell menggunakan terminal 256 warna.sumber
Inilah yang berhasil bagi saya di #Ubuntu dan #Mac:
Muat ulang pengaturan:
Siapkan .bashrc untuk Mac (seperti yang digunakan oleh tmux)
Atur opsi "default-terminal" di ~ / .tmux.conf.
sumber
Perbaikan cepat adalah menjalankan yang berikut ini di terminal.
export TERM=xterm-color
Anda dapat menambahkannya ke
~/.bash_profile
profil Anda atau lainnya untuk selalu disetel saat mulai.sumber
.zshrc
untuk mendapatkan mode visual agar benar-benar terlihat.Saya punya masalah yang sangat mirip untuk gnome-terminal + tmux + vim tetapi diperluas juga untuk masalah kombinasi kunci spesifik:. Saya harus menggabungkan beberapa hal bersama. pertama-tama saya harus mengatur .tmux.conf saya ke:
Kemudian di .vimrc:
Dan itu berhasil untuk tombol dan latar belakang.
sumber
Jika Anda masih menghadapi masalah: Saya perhatikan bahwa vim kembali menggunakan opsi
t_Co=8
di dalam tmux bahkan jika$TERM
disetel kescreen-256color
. Solusi saya adalah cuplikan ini di vimrc:The
$TMUX
variabel hanya diisi jika dalam sesi tmux. Dalam hal ini, saya mengizinkan vim untuk menggunakan 256 warna. Perhatikan bahwa saya juga menghapus termguicolors karena tmux tidak mendukung warna yang sebenarnya.sumber
Baru saja menghadapi masalah yang sama. Berdasarkan jawaban bloy dan konten saat ini dari profil ~ /. Saya (sebenarnya, sama dengan winchendonsprings '), saya telah memecahkan masalah saya sebagai berikut:
~/.profile
:Logika sederhana: jika kita tidak berada di dalam sesi tmux, maka gunakan xterm (berwarna atau tidak). Kalau tidak, hal yang sama untuk layar.
Mungkin terlalu bertele-tele, tetapi Anda punya ide.
sumber