我正在尝试将三件事结合起来:康埃穆、Cygwin 和 vim。有问题的 vim 不是 Cygwin vim,而是 gvim 包中的原生 Windows vim(之所以选择它,是因为 Cygwin vim 不支持 xterm 256 色)。在我按照以下说明操作后,256 色语法高亮似乎可以正常工作指示在 StackOverflow 上,但我无法解决其他问题。
Cygwin vim 在交替屏幕下工作正常:当我退出时,屏幕内容被清除,我可以再次看到我的命令历史记录。Windows vim 则不然:当我退出时,命令提示符出现在以前的 vim 内容页面下方。这个问题在 StackOverflow 和 SuperUser 上被问过好几次:这里,这里,这里和这里。但是,这些问题中的任何解决方案似乎都无法在 ConEmu/Cygwin 中起作用。我尝试过:
设置
t_ti
如下:t_te
.vimrc
let &t_ti="\e[?47h" let &t_te="\e[?47l"
或者:
let &t_ti="\e[?1049h" let &t_te="\e[?1049l"
altscreen on
在 中启用.screenrc
。我不确定它是否应该有任何效果,因为我甚至没有screen
在 Cygwin 中安装它。不过,安装它并没有改变任何东西。明确地用 启动 vimscreen
会带来奇怪的结果:一半的转义序列和代码被破坏,不是每个按键都能被识别,控制台尺寸无论screen
参数是什么都是 ~80x40。
我$TERM
的 vim 当前为xterm
,因为它已在.vimrc
配置中设置为启用 ConEmu 中的 256 色支持。但是,发送类似 xterm 的转义序列似乎根本无法清除屏幕。
我很高兴能得到有关此问题的任何帮助。
答案1
据我所知,vim(Windows 版本)不会发布到终端进入/离开替代模式序列。不知道 mintty 如何处理它,仍在调查中。
答案2
尝试在你的 中设置此项.vimrc
,这也会启用 vim 中的滚轮。
这来自http://conemu.github.io/en/Whats_New.html,版本 150316 说明。它似乎终于为我解决了这个问题。
""""""""""""""""""""""""""""""""""""""
" let mouse wheel scroll file contents
""""""""""""""""""""""""""""""""""""""
if !has("gui_running")
set term=xterm
set mouse=a
set nocompatible
inoremap <Esc>[62~ <C-X><C-E>
inoremap <Esc>[63~ <C-X><C-Y>
nnoremap <Esc>[62~ <C-E>
nnoremap <Esc>[63~ <C-Y>
endif