具有 tmux 集成的 Iterm2 不使用 .tmux.conf 中的键绑定

2024-01-03

我已经在 iTerm2 中使用 tmux 一段时间了,但我还没有使用 iTerm2 现在附带的 tmux 集成。

我开始考虑使用 tmux 集成,因为它允许您在 tmux 内使用 shell 集成。

我遇到的问题是在我这样做之后tmux -CC我的 .tmux.conf 中的所有键绑定都不起作用...我什至无法让任何默认值起作用。我真的很想使用 tmux 集成,但除非我能让 .tmux.conf 中的键绑定正常工作,否则我不能。

一些不起作用的绑定是:

  • 将前缀键反弹到C-s
  • bind-key \ split-window -v -c '#{pane_current_path}'
  • bind-key - split-window -h -c '#{pane_current_path}'

这些只是几个例子,但基本上似乎没有任何效果......

我的 .tmux.conf 是

# improve colors
set-option -g default-terminal "screen-256color"

# set base Prefix key to ctrl-s
unbind C-b
set -g prefix C-s
bind-key -r C-s send-prefix

# reload the source config
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"

# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n C-h if-shell "$is_vim" "send-keys C-h"  "select-pane -L"
bind-key -n C-j if-shell "$is_vim" "send-keys C-j"  "select-pane -D"
bind-key -n C-k if-shell "$is_vim" "send-keys C-k"  "select-pane -U"
bind-key -n C-l if-shell "$is_vim" "send-keys C-l"  "select-pane -R"
bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"

set-option -g status-keys "emacs"

#change colour of status bar
set-option -g status-bg '#666666'
set-option -g status-fg '#aaaaaa'

# set window split
bind-key - split-window -v  -c '#{pane_current_path}'
bind-key \ split-window -h  -c '#{pane_current_path}'

# set text in status bar
set -g status-interval 1
set -g status-justify centre # center align window list
set -g status-left-length 50
set -g status-right-length 140
set -g status-left '#[fg=green]#H #[fg=black]• #[fg=green,bright]#(uname -r | cut -c 1-6)#[default]'
set -g status-right '#[fg=green,bg=default,bright]#(tmux-mem-cpu-load -i 1) #[fg=red,dim,bg=default]#(battery -at) #[fg=white,bg=default]%a%l:%M:%S %p#[default] #[fg=blue]%Y-%m-%d'

# Fine adjustment (1 or 2 cursor cells per bump)
bind -n S-Left resize-pane -L 2
bind -n S-Right resize-pane -R 2
bind -n S-Down resize-pane -D 1
bind -n S-Up resize-pane -U 1

# new window opens in same directory
bind c new-window -c "#{pane_current_path}"

# set window numbering to start from 1
set -g base-index 1
set -g renumber-windows on

# allow to take a pane and put it into new window
bind-key b break-pane -d

# allows ctrl-j to open tree of tmux sessions
bind-key C-j choose-tree

# Use vim keybindings in copy mode
setw -g mode-keys vi

# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"

# History
set -g history-limit 10000

# Mouse mode
set-option -g mouse on

# Rename Tab
set-option -g set-titles on

# Terminal notifier doesnt work with tmux
set -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL -l"

set-option -sg escape-time 10

复制我的答案在https://stackoverflow.com/a/47171067/4200039 https://stackoverflow.com/a/47171067/4200039 over:

有人报告了类似的错误iTerm2 Tmux 集成默认键绑定不起作用 https://gitlab.com/gnachman/iterm2/issues/39972015 年。开发人员 George Nachman 的回复表明不支持键绑定:

tmux 集成的主要目标之一是您使用 iTerm2 击键,而不是 tmux 的。如果存在您无法执行的特定工作流程 本地完成,让我知道——里面有很大的力量 在 iTerm2 中重新映射键的能力。

这应该被标记为重复iTerm 2 不支持 .tmux.conf 中声明的键绑定 https://stackoverflow.com/questions/26063195/iterm-2-not-honoring-key-bindings-declared-in-tmux-conf但在它得到接受或赞成的答案之前我无法标记它。

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

具有 tmux 集成的 Iterm2 不使用 .tmux.conf 中的键绑定 的相关文章

  • mac 下 使用 iterm2 配置及快键键使用

    mac 下 使用 iterm2 配置及快键键使用 标签 xff08 空格分隔 xff09 xff1a mac 之前介绍过一篇关于mac 下使用和配置 iterm2的blog 今天这篇稍微详细一点介绍 并且搭配 zsh zsh 会单独开一篇博
  • iTerm2禁用Command+Enter 全屏

    因为我在vim中使用到了Command 43 Enter快捷键 xff0c 所以想把iTerm2自带的快捷键禁用一下 找了半天没找到 xff0c 原来需要增加按键配置 xff0c 忽略这个组合键 步骤 Preferences 61 gt K
  • mac修改默认终端为iterm2

  • tmux内外vim主题theme不一致

    每次在tmux里边用vim都觉得好丑 明明外边设置theme了 但是到里边就识别不了 在 tmux conf里添加set g default terminal screen 256color 依然不行 解决方案 使用tmux 2 打开tmu
  • SSH 会话中 TMUX 内的系统剪贴板 Vim

    我在 ssh 会话中的 tmux 中打开了 vim 如何让 vim 使用笔记本电脑的系统剪贴板作为默认复制粘贴 默认set clipboard unamed不工作 以防万一 两个系统都是 Ubuntu 如果您的终端仿真器支持 剪贴板集成功能
  • tmux 绑定分号

    有什么办法可以绑定吗 059 到 tmux 中的命令 默认绑定到last pane 但是 我想将其重新绑定到 select pane R 我尝试将以下内容放入我的 tmux conf 中 但似乎都不起作用 bind 059 select p
  • 如何禁用 Tmux 中的键绑定

    使用 Tmux 和 Vim 有时很痛苦 对我来说 冲突之一是Control S 我在 Vim 中使用它来分割打开缓冲区 但是当使用 Tmux 时 嗯 Tmux 用它做了一些愚蠢的事情 我不明白其目的是什么 但基本上 当C s在 Tmux 中
  • 我可以在 tmux 中双击选择并复制吗?

    我正在学习使用 tmux 我发现当我在 tmux 窗口中时 双击选择和复制功能不再起作用 我可以像 iterm2 一样使用双击来选择和复制吗 我用谷歌搜索了一段时间 但没有找到简短而明确的答案 我已经添加了setw g mode mouse
  • 为什么需要为 iTerm 中的每个新 shell 获取 .zshrc 源?

    在过去的 3 年里 我每天都将 Iterm2 与 zsh 一起使用 但我有了一台新计算机 不得不重新设置它 问题是当我跑步时 zshrc它工作正常 但我必须在打开的每个新终端窗口上执行此操作 不是一个好的经历 我注意到我没有任何bashrc
  • 具有 tmux 集成的 Iterm2 不使用 .tmux.conf 中的键绑定

    我已经在 iTerm2 中使用 tmux 一段时间了 但我还没有使用 iTerm2 现在附带的 tmux 集成 我开始考虑使用 tmux 集成 因为它允许您在 tmux 内使用 shell 集成 我遇到的问题是在我这样做之后tmux CC我
  • 在 tmux 2.4 上如何一次性进入复制模式并开始搜索?

    我正在尝试将 F1 键绑定到 进入复制模式 开始反向搜索 我在网上唯一找到的是 bind key F1 copy mode send key 然而 这似乎不适用于 tmux 2 4 有没有办法让它在所有 tmux 版本上工作 这有效 bin
  • Tmux:如何使用选择树过滤当前会话窗口并格式化输出以显示不带主机名的窗口名称

    我想配置tmux choose tree to 仅显示我当前会话的窗口 但与此同时我想保留我当前使用的格式 不带主机名的窗口名称 我当前的设置是 bind key w choose tree F window name 看起来像这样 我发现
  • tmux:挂起并且不加载,并且不响应任何选项命令

    我已经在 Fedora 的本地空间上从源代码安装了 tmux 到目前为止 它运行良好 但突然无法再运行它 当运行 tmux 时 它就停止了 尝试了不同的命令选项 例如 ls sessions 但没有任何效果 杀死我的用户的所有进程 删除 t
  • 如何将vim(通过tmux)绑定到Cmd键

    我通常使用 macvim 并且使用 macs 命令键有许多键绑定 我正在尝试切换到 tmux 但这些绑定都不起作用 有关如何修改我的 tmux config 或 vimrc 以恢复这些绑定的任何提示 你是否有机会使用
  • 如何在 tmux 中强制使用 emacs 风格的状态键?

    我在 tmux 1 8 中遇到这个问题 我想设置status keys选项 emacs 因为我真的不喜欢在 vi 模式下输入命令 但是 将以下行添加到 tmux conf 没有任何效果 set g status keys emacs 当 t
  • Home/End 键在 tmux 中不起作用

    我目前正在使用 tmux 和 xterm 256color TERM 变量 当在 tmux 下的 bash 中时 按 home end 将插入波形符 在 tmux 之外 home end 键工作正常 使用 cat 和 tput 我可以看到生
  • 查找PID所属的tmux会话

    我正在使用 htop 所以看看哪些进程占用了大量内存 以便我可以杀死它们 我有很多 tmux 会话和很多类似的流程 如何检查 PID 位于哪个 tmux 窗格中 以便确定我正在杀死我想杀死的东西 鉴于PID下面一行是目标 pid 号 tmu
  • 如何在不同目录中启动多个窗口的 tmux?

    我想使用脚本打开一个有 6 个窗口的 tmux 会话 每个窗口位于不同的目录中 我开始于我找到的一个脚本 http blog hawkhost com 2010 07 02 tmux E2 80 93 the terminal multip
  • Vim 与 tmux 相得益彰

    NERDTree 在 tmux 会话中出现问题 如图所示 当窗口被分割时也存在同样的问题 但现在我正在使用电源线 https github com Lokaltog powerline这次 Vim 状态在 tmux 中变得混乱 在图中看到状
  • Vim 和 Tmux 渲染错误

    我在使用 Tmux 和 Vim 时遇到问题 正如您在图片中看到的那样 当我使用 nerdtree 或 irssi 实际上是任何终端应用程序 时 我遇到了此类渲染问题 我输入的每个键都会修改整个终端渲染 这只是一个图形错误 但它使我无法正常工

随机推荐

  • 以编程方式旋转显示器?

    我正在寻找一种以编程方式旋转其中一台显示器的显示的方法 我在桌面上安装了两台显示器 在编程或使用各种其他程序时 我经常以不同的方向使用它们 为了改变方向 我跳入显示设置并以这种方式旋转它 这样我就可以有一个或两者都是纵向 可以说我很懒 因为
  • 是否可以获得正在运行的应用程序窗口的完整列表?

    我正在尝试获取 macOS 上正在运行的应用程序的列表 以便在全屏应用程序上进行一些具体的窗口操作 首先 我通过以下方式获取所有正在运行的应用程序的列表 NSWorkspace sharedWorkspace runningApplicat
  • 相当于 C++ std::set precision(20) 在 C 中使用 printf

    我想以十进制表示法以全精度打印双精度数 但在数字末尾没有额外的零 在 C 中我可以使用 std setprecision 20 cout lt lt d Here d is a double 使用 printf 的等效 C 代码是什么 您可
  • 使用 Scanner 读取输入会导致 Java 中的无限循环[重复]

    这个问题在这里已经有答案了 在我的程序中 我试图让用户输入 1 3 之间的整数 然后根据他们输入的内容执行某些操作 如果它不是数字或不是选项之一 那么它将允许他们重新输入有效选项 我遇到的问题是 我很难集思广益 如何不让它无限循环 并在控制
  • 在 IntentService 中创建的 Toast 永远不会消失

    我有一个 IntentService 下载一些文件 问题是我在 IntentService 中创建了一个 Toast 如下所示 Toast makeText getApplicationContext some message Toast
  • 使用 Neo4j 处理大型数据集的经验?

    有人有过使用 Neo4j 处理 TB 级数据集的经验吗 我想听听您对 Neo4j 性能的体验 只要您的磁盘足够大 速度足够快 并且内存允许缓存数据的相关 热 部分 您就不会遇到问题 有优化 http wiki neo4j org conte
  • 如何使用字符串变量作为表名进行 sqlalchemy 查询?

    如果我不清楚 我提前道歉 英语不是我的母语 如果我犯了太多错误 请随时告诉我 我是使用flask sqlalchemy的新手 在互联网上花费数小时寻找答案后感到沮丧 我想要做的是这样的查询 ModelName query filter by
  • 图像被分配给ListView的另一个行项目

    我知道 async wait 在设置适配器之前为 ListView GridView 准备数据非常方便 例如 in Activity cs async void OnCreate Bundle SavedInstanceState SetC
  • Haskell 中的 Scanl

    scanl exp y gt scanl x gt if isLetter x then update exp Literal x else if x then update exp Epsilon else if x then updat
  • jQuery UI + Gmaps = 问题(至少对我来说)帮助!

    我一发现 jQuery 就开始使用它 它非常强大 但是当我尝试将 Gmaps api 加载到 jQuery UI 带来的选项卡中时 我开始陷入困境 奇怪的是 在 IE 6 7 8 中它工作正常 但在 Firefox Safari 我使用的是
  • iFrame 上的 Angular、onLoad 函数

    我有这个 iframe 使用基本的 JavaScript 哪个触发该方法uploadDone 当 iframe 的内容被加载时 我如何在 Angular 中做同样的事情 我想在 iframe 加载时调用控制器上的函数 但我还没有看到ng o
  • Laravel 在我的路线中使用 View Composer 并出现 htmlspecial 错误

    我试图在我的路线中进行查询 以便视图编辑器加载所有记录并对其进行计数并将其显示在我的侧边栏中 我认为查询没有问题 因为它在我的 shell 中使用 php artisantinker 来测试查询的目的 但是当我尝试在我的路线中执行此操作并将
  • ModuleNotFoundError:没有名为“gin”的模块

    当我尝试做的时候 导入杜松子酒 tf 我收到此错误 ModuleNotFoundError 没有名为 gin 的模块 我应该怎么做才能解决这个问题 我最近更新了tensorflow 所以我不认为版本有问题 我找到了解决方案here http
  • Locust:如何在 n 个用户上运行任务 n 次然后停止 locust 运行?

    我有一个简单的 Locust 脚本 其中包含一个带有 http 请求的任务 我想对 10 个用户运行此任务 100 次 然后停止运行脚本 有没有什么简单的方法可以做到 我知道 run time 参数 但它只会在指定的时间后停止 下面是我的脚
  • 在同一组件内重复 html

    我正在寻找一种在组件中的多个位置重复相同标记的方法 我知道我可以使用一个新组件 但我正在寻找一些不那么严重的东西 The html
  • 更改图像的 src 属性是否会阻止图像下载?

    假设我有两个手风琴选项卡 第一个加载数百张图像 并在页面加载时打开 如果用户单击第二个手风琴选项卡 我希望能够停止下载图像 通过js改变图片的src属性会阻止图片下载吗 或者请求是否只是继续直到完成而不显示在页面上 我有一个脚本 可以在 3
  • Angular 9 PWA 社交登录重定向 start_url / 索引页面上的问题

    我的角度应用程序正在 Angular 9 上运行 带有 SSR 和 PWA 它在 Heroku cloudflare 上运行 当我尝试在索引页面上通过 Facebook Google 登录时 角度给出请求超时错误 Example 打开索引页
  • ES 6 在定义后动态地处理类

    我之前正在开发自己的 Javascript OOP 但现在我正在玩ES6并想使用该类defined after 定义以一般的方式 Note任何答案new这不是我所追求的 伪代码 base js class Base constructor
  • d3.js中的网络多路由正交图

    We want to use d3 to draw a network route graph that has fixed start and end node but different paths in between that mi
  • 具有 tmux 集成的 Iterm2 不使用 .tmux.conf 中的键绑定

    我已经在 iTerm2 中使用 tmux 一段时间了 但我还没有使用 iTerm2 现在附带的 tmux 集成 我开始考虑使用 tmux 集成 因为它允许您在 tmux 内使用 shell 集成 我遇到的问题是在我这样做之后tmux CC我