Vim 需要在 tmux 中 运行 时每次都获取 .vimrc

Vim requires .vimrc to be sourced every time when running in tmux

我对 .vimrc 文件做了几处更改,其中包括几个 vim-plug 插件、一些 syntax/coloring 选项和一些键映射。

然而,每当我打开一个新的 Vim 会话时,并不是所有这些都被应用(最显着的是着色和语法突出显示)。如果我 运行 :so ~/.vimrc 文件获取来源并且更改立即应用。很明显,我不想每次开始都这样做 vim.

为什么没有自动应用这些更改? (这是在完全重启和新的 terminal/vim 会话之后)。

更新
我发现这与 tmux 有关。当我直接从终端 运行 vim 时,会按预期应用 .vimrc 。如果我从 tmux 会话中 运行 vim,那么我每次都必须手动获取文件。

有什么解决办法吗?

~/.vimrc内容:

" PLUGINS - see vim-plug
call plug#begin()
 Plug 'crusoexia/vim-monokai'
 Plug 'pangloss/vim-javascript'
 Plug 'crusoexia/vim-javascript-lib'
call plug#end()

" Enable Monokai colors
syntax on
colorscheme monokai
set t_Co=256

" Easy tab movement with keys 1|2
nmap 1 :tabp <enter>
nmap 2 :tabn <enter>

" Line Numbers
set number

" 2 space tabs
set tabstop=8 softtabstop=2 expandtab shiftwidth=2 smarttab

在我的例子中,tmux 覆盖了 TERM 值,直到 .vimrc 被获取。

运行 echo $TERM 在常规 shell 中给出 xterm-256color,而 运行 在 tmux 中给出 screen.

解决方案是显式导出所需的 TERM 值:

export TERM="xterm-256color"