运行 tmux 时映射箭头键

2024-05-08

这些键映射在 tmux 中停止工作。在我的.vimrc, 我有:

nmap <Space> i
map <C-Down> <C-w>j
map <C-Up> <C-w>k
map <C-Left> <C-w>h
map <C-Right> <C-w>l

当我跑步时:map, I see:

   <C-Right>     <C-W>l
   <C-Left>      <C-W>h
   <C-Up>        <C-W>k
   <C-Down>      <C-W>j

然而,当我同时按下 Control 和箭头键时,它的行为就好像没有设置键绑定一样。


维姆知道xterm类似终端(由以 TERM 开头的 TERM 标识)xterm,或对的特定响应t_RV序列(如果已定义)支持某些修改键的扩展序列,但它并不假设这一点screen术语(您应该在tmux).

但是,您可以告诉 Vim 这些序列,并在 TMUX 存在且 TERM 开头时启用它们screen(第一行启用(更好的)鼠标支持tmux,您可能也喜欢):

if &term =~ '^screen' && exists('$TMUX')
    set mouse+=a
    " tmux knows the extended mouse mode
    set ttymouse=xterm2
    " tmux will send xterm-style keys when xterm-keys is on
    execute "set <xUp>=\e[1;*A"
    execute "set <xDown>=\e[1;*B"
    execute "set <xRight>=\e[1;*C"
    execute "set <xLeft>=\e[1;*D"
    execute "set <xHome>=\e[1;*H"
    execute "set <xEnd>=\e[1;*F"
    execute "set <Insert>=\e[2;*~"
    execute "set <Delete>=\e[3;*~"
    execute "set <PageUp>=\e[5;*~"
    execute "set <PageDown>=\e[6;*~"
    execute "set <xF1>=\e[1;*P"
    execute "set <xF2>=\e[1;*Q"
    execute "set <xF3>=\e[1;*R"
    execute "set <xF4>=\e[1;*S"
    execute "set <F5>=\e[15;*~"
    execute "set <F6>=\e[17;*~"
    execute "set <F7>=\e[18;*~"
    execute "set <F8>=\e[19;*~"
    execute "set <F9>=\e[20;*~"
    execute "set <F10>=\e[21;*~"
    execute "set <F11>=\e[23;*~"
    execute "set <F12>=\e[24;*~"
endif

正如评论所示,您还需要窗口xterm-keys选项已启用。您可以像这样对所有窗口执行此操作(在您的~/.tmux.conf):

set-option -gw xterm-keys on

(请记住,更改为~/.tmux.conf不会自动加载。为了有效,您需要手动运行此命令(在tmuxshell 命令,或前缀:提示),或重新加载您的配置文件source ~/.tmux.conf (in a tmuxshell 命令,或前缀:提示),或重新启动服务器(退出所有会话并重新启动tmux)).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行 tmux 时映射箭头键 的相关文章

  • 如何在会话自动加载的同时在 vim 中打开文件?

    我在 vimrc 中有以下代码 可以在 vim 启动时自动保存 加载会话 Session saving Automatically save rewrite the session when leaving Vim augroup leav
  • 文件保存期间语法突出显示随机消失

    我正在使用 vim 编辑一些 python 文件 最近偶尔会出现在 vim 中保存缓冲区后语法高亮消失的情况 我尝试重置syntax on and set filetype python但无济于事 我根本不知道是什么原因导致了这个问题 所以
  • Vim langmap 中断插件 (bépo)

    我正在使用 b po 键盘映射 http bepo fr http bepo fr 并寻求完美的 vim 映射 So far I used a long list of noremap http bepo fr wiki Vim B C3
  • 插件 (vim-latex) 在启动时导致 gVim 崩溃

    我正在尝试使用在 Windows XP 上使用 gVim 但是一旦我打开 tex 文件 或者一旦我set ft tex gVim 崩溃且没有可见的错误消息 控制台 vim 中不会发生崩溃 我已经按照设置说明进行了操作 据我所知 并且我尝试禁
  • VIM:在窗口顶部显示自定义参考栏

    我想设置一个 vim 环境来使用基本的 HTML 编辑 由其他人 为此 我想设置一个快速参考栏 显示在窗口顶部 例如
  • 以 Vim 的 -o - 模式打开 Grep 输出中的文件

    如何将文件列表放入 Vim 的 o 模式 我有一个文件列表作为 Grep 的输出 我运行失败 1 grep il sid vim o 2 grep il sid xargs vim o 3 grep il sid xargs vim 4 v
  • VIM - 显示上次保存版本和当前未保存版本的差异[重复]

    这个问题在这里已经有答案了 可能的重复 在 Vim 中保存文件之前我可以看到更改吗 https stackoverflow com questions 749297 can i see changes before i save my fi
  • vim 退出时恢复 shell

    我刚刚在我的新计算机上安装了 Arch 但我不知道需要向 vimrc 添加什么命令 以便它在退出时恢复 shell 内容 在调用 vim 之前 也就是说 我希望我的 shell 看起来像这样 whoami root who root tty
  • 将 vim 的 vertsplit 字符更改为 │

    我认为这与代码页相关 但询问也无妨 在 windows xp 的 cmd 上 gvim 7 2 如何更改 vertsplit 字符 而不是默认的 它是 因此它是一条完整的线 而不是一条分割线 该字符通常会更改为 set fillchars
  • Vim 脚本中的“reduce”函数

    Vim 脚本有一些非常基本的函数式编程工具 It has map and filter 但据我所知它缺乏reduce 功能 Reduce https en wikipedia org wiki Fold 28higher order fun
  • 使 'n' 始终向前搜索,无论是否 / 或 ?用于搜索

    我几乎总是在 Vim 中搜索 然后继续向前搜索n并向后N 然而 有时我会使用 跳转到我当前所在行上方几行的项目 在这种情况下 如果我想向前搜索同一项目 我必须使用N代替n 令人烦恼的心理减速带 所以我的问题是 是否有可能使n永远向前走 并且
  • 如何在VIM中设置文件的正确路径?

    每当我击中 pwd在 vim 中命令总是返回路径C Windows system32 即使我在桌面上的 Python 文件中 所以每当我跑步时 python 命令返回 python can t open file Users myname
  • VIM:禁用光标/箭头键,但仅用于导航

    inoremap
  • 将回车 ^M 替换为 Enter

    我知道如何删除 M在我的文件中 s M g 但这只是我想替换的一行 Mwith Enter VIM 中的 Enter 字符是什么 在命令行模式下使用 替换回车符 即
  • 使用模糊搜索在 Vim 中打开文件

    我正在寻找一种方法 使 Vim 能够通过模糊搜索文件名来打开文件 基本上 我希望能够定义一个项目一次 然后有一个快捷方式 它可以为我提供一个输入文件名的位置 并且如果有任何字母匹配 则将进行匹配 这种功能存在于我见过的大多数编辑器中 但我一
  • 什么是 .un~ 文件或者为什么终端中的 Vim 会创建 .un~ 文件?

    我注意到我有一些以 un 例如我有一个 vividchalk vim un 但我不确定它是从哪里来的 看起来它们是我在终端中使用 Vim 时创建的 这些文件是什么 当我关闭正在编辑的文件时 可以让它们自行删除吗 当你编辑和保存文件时 Vim
  • VIM:我如何知道关键字使用了哪个突出显示规则?

    colorscheme default 文件类型是php 谁能帮我找出突出显示规则 hi light 将列出所有定义的规则并进行预览 您还可以查询单个项目 hi Keyword 手动查找任何语法组在光标下 有选择 我的是一个绑定到键的函数
  • 如何从 Vim 中发送转义序列?

    因此 最近苹果公司支持在终端的状态栏中显示工作目录和文件 必须发送的转义序列 以设置当前文件 是这样的 ESC 6 Pt BEL where Pt is a file url 指向当前正在编辑的文件 所以我想我可以让 Vim 发送这个命令作
  • MacVim:跨窗口共享命名寄存器?

    我想跨 MacVim 窗口共享命名寄存器缓冲区 就像我在单个实例中跨缓冲区一样 换句话说 假设我标记了一个位置 m 然后去其他地方 我将一些文本拉入寄存器 a 从当前点到 m a m 然后我转到另一个窗口 不 我不是指同一窗口中的另一个分割
  • 如何设置打开文件时默认展开?

    In my vimrc我已经把set foldmethod syntax启用方法折叠等 但是 我不喜欢每次打开文件时都会折叠整个文件的默认设置 有没有办法启用foldmethod 但是当我打开文件时文件是否展开了 set foldlevel

随机推荐