我正在使用本地和远程tmux会话。
要将命令发送到本地tmux,我使用Ctrl-q
和远程Ctrl-a
。
我试图在vim中禁用通常用Ctrl-q
执行的数字增量,但它现在用..
unbind C-b
set -g prefix C-a
bind-key -n C-q send-prefix
...
触发,我找不到禁用它的方法。
顺便说一下,只有在特定的tmux窗口没有嵌套远程窗口时才会发生这种情况。
此外,我认为远程tmux会话中仍可能存在快捷键组合,这也会触发增量。
那么有没有办法完全禁用该功能? 一个理想的解决方案是用一个什么都不做的函数来覆盖它。 这是一个非常偷偷摸摸的命令,因此我在过去有一些非常糟糕的调试经验!
我的tmux.conf:
...
map <Ctrl-A> <Nop>
map <Ctrl-Q> <Nop>
...
然后在vim中我尝试禁用Ctrl-a和Ctrl-q以及no-ops。
这是我的vimrc:
Ctrl-a
我还尝试为Ctrl-q
和Ctrl-q
添加条目,但仍然Ctrl-q
执行增量。
我认为这个问题是因为tmux接收 @doc ~S"""
\n will appear literally
"""
然后将其作为前缀发送,这种方式不会被我的额外映射捕获。
干杯, PASCHALIS
答案 0 :(得分:13)
Ctrl
不是vim识别的<>
符号来表示键盘的 Control 键。
禁用 Control - a 触发数字的默认vim自动增量:
在~/.vimrc
中,正如@Marth所说,使用<C-a>
:
map <C-a> <Nop>
保存:w
:so ~/.vimrc
让它生效。
tmux.conf
正在发送前缀,您将其定义为Ctrl-a,因此Vim仅接收Ctrl-a 因此,当您将 Control - a 映射到无操作指令<Nop>
:help <>
答案 1 :(得分:0)
我发现我仍然可以(偶然地)使用 g , Ctrl - a 在视觉模式下触发不必要的增量/减量行为。我通过将其添加到我的.vimrc(扩展了上面的答案)中来修补这种情况:
map <C-a> <Nop>
map g<C-a> <Nop>
map <C-x> <Nop>
map g<C-x> <Nop>