这一切都在 OS X 上的 iTerm2 中。
我曾经有过
export TERM='xterm-256color'
Run Code Online (Sandbox Code Playgroud)
在我的.bashrc. 这意味着 tmux 中的 Vim 确实使用了 256 种颜色。
一旦我添加
set -g xterm-keys on
Run Code Online (Sandbox Code Playgroud)
然后带有修饰符的键盘快捷键在 Vim 中运行良好。即:shift+left/right我映射到切换 Vim 选项卡,ctrl+up/down我映射到移动(“气泡”)行,并且shift+left/right在命令行模式下开箱即用以逐字跳转(例如,在键入类似的内容时:e foo bar baz)。
然而,这种设置有问题,即Vim的背景颜色只能说明后面的文字,提到这里。
所以我删除了
export TERM='xterm-256color'
Run Code Online (Sandbox Code Playgroud)
从我的.bashrc,而不是把它放在我的.tmux.conf:
set -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)
这修复了 Vim 的背景颜色,但破坏了键盘快捷键 - 他们做了意想不到的事情(移动光标,删除文本)。
通过使用ctrl+v插入来自组合键逐字输出(如描述在这里),我是能够解决它:
map [1;5A <C-Up>
map [1;5B <C-Down>
map [1;2D <S-Left>
map [1;2C <S-Right>
cmap [1;2D <S-Left> …Run Code Online (Sandbox Code Playgroud) 由于我是一名 Web 开发人员,因此不断遇到这个问题,'cmd-r' 具有阻止箭头键在任何模式下工作的副作用,但我无法想象这是目的,我一直无法找到关于它实际应该做什么的任何文档。
编辑:显然这实际上是一个 mac 终端命令,“发送重置”,所以我猜现在这是一个“发送重置命令有什么目的?”的问题。解释了为什么我无法在 vim 文档中找到它。
我一直在玩 tmux,我很喜欢它。但是,在其中运行 vim 时存在一个烦人的问题。
箭头键以某种方式重新映射,但仅在某些时候,例如在启动 Command-T 时,如果我尝试向下滚动文件列表,则命令将被取消并且我将进入插入模式,这取决于箭头键我按下了 A、B、C 或 D。
例如,如果我使用箭头在缓冲区中移动,它们就可以正常工作。
有任何想法吗?
谢谢!