在tmux中运行Vim时,需要每次加载.vimrc文件。

6
我对我的.vimrc文件进行了几次更改,其中包括几个vim-plug插件、一些语法/颜色选项和一些键位映射。
然而,每当我打开一个新的Vim会话时,并不是所有这些更改都被应用(最明显的是着色和语法高亮)。如果我运行:so ~/.vimrc,文件就会被引用,更改会立即应用。显然,我不想每次启动vim都要这样做。
为什么这些更改不会自动应用?(这是在完全重启和新的终端/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

看看这个是否有帮助:http://vi.stackexchange.com/questions/2003/how-do-i-debug-my-vimrc-file/2004#2004 - Sundeep
谢谢,不幸的是这并没有帮助 - 如果我禁用.vimrc的加载,那么我就无法诊断问题,如果我禁用.vimrc中的插件/设置,那么我就无法确定它是否被调用! - duncanhall
请展示你的 vimrc 文件。 - romainl
谢谢,已看到更新的帖子。 - duncanhall
问题与tmux有关 - 请参见原帖中的更新。 - duncanhall
显示剩余5条评论
1个回答

6

在我的情况下,tmux 覆盖了 TERM 的值,直到 .vimrc 被调用。

在普通的 shell 中运行 echo $TERM 会返回 xterm-256color,而在 tmux 中运行则会返回 screen

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

export TERM="xterm-256color"


请原谅我的无知,但我应该把export TERM...这行放在哪里?另外,建议不要更改TERM:https://github.com/tmux/tmux/wiki/FAQ - Yankee
@Yankee export TERM... 是一个通用命令,用于设置 TERM 环境变量。它应该根据你的设置放置在不同的位置,但常见的选项包括 ~/.bashrc~/.profile 或者 ~/.zshrc 等文件中。 - duncanhall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接