具有 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 中的键绑定 的相关文章

  • pwntools, terminal =‘tmux‘ 报错

    pwntools terminal 61 tmux 报错 Traceback most recent call last File exp py line 4 in gdb attach File home pwn pwn lib pyth
  • tmux系列:2、tmux会话

    tmux系列 2 tmux会话 文章目录 tmux系列 2 tmux会话 1 前言 2 创建会话 3 状态栏 4 命令和标志 5 命令提示符 6 附加和分离 7 会话清单 8 完全杀死tmux 9 总结一下 1 前言 其实最开始时候我用tm
  • tmux内外vim主题theme不一致

    每次在tmux里边用vim都觉得好丑 明明外边设置theme了 但是到里边就识别不了 在 tmux conf里添加set g default terminal screen 256color 依然不行 解决方案 使用tmux 2 打开tmu
  • iTerm 2 不支持 .tmux.conf 中声明的键绑定

    我正在使用最新稳定版本的 iTerm2 2 0 和最新的 Homebrew 版本的 tmux 1 9a 不幸的是 我的键绑定声明于 tmux conf不能在 集成模式 下使用 iTerm2 tmux 组合 即当 iTerm2 接管 tmux
  • TMUX 设置会话的环境变量

    我的工作环境是 我有多个项目 并且每个项目中都有许多脚本 这些脚本使用设置为特定于该项目的值的环境变量 我想做的是为每个项目使用单独的 tmux 会话并设置变量 以便为该会话中的所有窗口设置它们 我尝试使用 set environment
  • tmux:如何打开光标下的文件

    我是 vim 用户并且习惯了gf命令 打开光标下的文件 现在我想问一下 tmux 是否有类似的东西 我可以在 tmux 窗格中导航 并且经常会出现光标下有一个文件路径的情况 现在我希望能够使用 vim 打开光标下的该文件 A 在当前窗口中
  • 如何禁用 Tmux 中的键绑定

    使用 Tmux 和 Vim 有时很痛苦 对我来说 冲突之一是Control S 我在 Vim 中使用它来分割打开缓冲区 但是当使用 Tmux 时 嗯 Tmux 用它做了一些愚蠢的事情 我不明白其目的是什么 但基本上 当C s在 Tmux 中
  • 使用 zsh 对于大型 /.ssh/config 文件自动完成速度较慢

    我目前有一个 ssh config 文件 其中约有 7000 行 我想看看是否有办法加快 zsh 中的自动完成功能 当我开始输入我想要 ssh 进入的服务器然后按TAB它需要大约 10 秒的时间来向我显示我可以选择的可能的主机 问题是完成
  • Tmux 边框显示为 x q 而不是线条?

    我无法让 tmux 显示边框线 它们是用 x 和 q 创建的 它是一个 debian squeeze 服务器 区域设置设置为 en US UTF8 我也尝试添加 instructs tmux to expect UTF 8 sequence
  • Tmux:如何使用选择树过滤当前会话窗口并格式化输出以显示不带主机名的窗口名称

    我想配置tmux choose tree to 仅显示我当前会话的窗口 但与此同时我想保留我当前使用的格式 不带主机名的窗口名称 我当前的设置是 bind key w choose tree F window name 看起来像这样 我发现
  • Terminal.app 可以遵循 ANSI 转义码吗?

    我注意到 随着TERM环境变量设置为xterm or xterm 256colorMac OS X 的 Terminal app 实用程序尊重大多数 ANSI 转义码 至少当这些转义码涉及更改文本颜色时 例如 echo e 033 0 31
  • 如何从 tmux 会话获取 stdout 和 stderr?

    我正在linux系统中编写一个示例python程序 我在用tmux https linux die net man 1 tmux创建会话并在 tmux session 中执行另一个脚本 我想将 stdout 和 stderr 从 tmux
  • 可以配置 Tmux 加载 ~/.bashrc 而不是 ~/.bash_profile 吗?

    现在 当我登录 Tmux 时 仅 bash profile被加载 我想要 bashrc改为被呼叫 那可能吗 这个问题与以下无关tmux 要解决它 请确保添加source bashrc to bash profile就是这样 您可以了解更多有
  • 如何将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
  • 如何创建布局并在 tmux 启动时运行命令?

    我正在尝试编写一个可以运行 源的脚本 以便 tmux 设置特定的布局并运行命令 我有一些结果 这是我到目前为止所写的内容 selectp t 1 splitw v p 15 splitw h p 50 selectp t 1 send ke
  • 将 tmux.conf 拆分为多个文件?

    我有一个在计算机之间共享的通用 tmux 设置文件 tmux conf common 我希望能够在我的 tmux conf 中获取此文件 在 bash 中实现此目的的一种方法是让每台计算机的 bashrc 获取公共文件 有没有办法在 tmu
  • iTerm2 隐藏标记

    我最近安装了 iTerm2 的 Shell Integration 但在输入 shell 命令时它还添加了那些小箭头 称为标记 这真的很烦人 有什么方法可以禁用 隐藏它们 我在网上找不到 As per 文档 https www iterm2
  • 在 Mac OS Lion 上使用 tmux 提示之前出现奇怪的空格

    它刚刚发生在我的 Lion 系统上 我正在使用 zsh 和 tmux 在 zsh shell 中正常 tmux 屏幕中的双倍空间 我是否缺少 zsh 或 tmux 中的某些配置 使用 u 选项启动 tmux 以实现 unicode 功能 看
  • 使用 fzf-tmux 进行快速窗口切换的 tmux 脚本给了我错误的选项

    我编写了以下内容 它允许我使用 fzf 切换 tmux 窗口 tmux list windows F I W fzf tmux cut d f 1 xargs tmux select window t 当我在 shell 中运行它时 它工作

随机推荐

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

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

    我正在尝试获取 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我