tmux
有它的控制模式,用 激活-CC
,允许终端仿真器控制 tmux。iTerm2 使用这一点非常有效,允许 tmux 窗口显示为单独的 iTerm 窗口。
是否有其他支持控制模式的终端仿真器?我对可能提供此类功能的 Windows 终端仿真器/SSH 客户端特别感兴趣,但 Linux/Unix 的终端仿真器也很有趣。
我正在编写一个脚本,当我进入目录时,它会显示目录的 git 日志。这样的日志可能会让人不知所措,包含数百行。到目前为止,我一直将其限制为硬编码的 20 行 ( ... | head -n 20
),这在工作时的屏幕上很好,但在家里较小的 MacBook 屏幕上就太多了。
我希望日志在任一终端上占据大约一半(垂直)屏幕。并且“终端”也发生了变化:它在工作中是 Gnome 终端,但在家里是 iTerm2。而且我不使用屏幕或 tmux。
如何从命令行找到终端中可用的垂直线数?
现在我将 iTerm 会话配置为使用 zsh ( /usr/local/bin/zsh
),但我正在尝试将 tmux 配置为也使用 zsh,而不是/bin/bash/
当前默认使用的 。到目前为止,我读过的任何内容都没有让我到达我需要的地方。我可能错过的任何想法或事情?
以下是有关我当前设置的一些详细信息。谢谢!
检查状态:
1) 打开 iTerm
echo $SHELL
/bin/bash
ps -p $$
PID TTY 时间 CMD 19626 ttys000 0:00.52 /usr/local/bin/zsh
2) 运行 tmux
tmux
echo $SHELL
/usr/local/bin/zsh
配置:
iTerm 配置文件 > 常规 > 命令:
/usr/local/bin/zsh
在 .tmux.conf 中:
set-option -g default-shell /usr/local/bin/zsh
当我想向后滚动时,即使用我的鼠标(或使用PageUp)我只能向上滚动大约 43 页(大约 2000 行)。我可以增加吗?
我有我的终端首选项 - >“回滚行”设置为 1000000
我也有我的 bashrc 设置
HISTSIZE=100000
HISTFILESIZE=200000
Run Code Online (Sandbox Code Playgroud)
但这些设置没有帮助。
你在终端右上角看到多远,即
1900-2000 似乎是旧内容丢失的最大值。
iTerm2 能够在终端内显示图像。我正在使用imgcat 脚本并且它工作正常,但是当我在 tmux 中时它什么也不做。有没有办法能够在 iTerm2 的 tmux 中内联预览图像?
当我运行 tmux 时,我无法在 vim 中使用所有颜色。我相信 TERM 变量或 256colors 存在某种问题,但我已经做了我能在网上找到的所有东西,使 256 色在 vim、tmux 和 iTerm 中工作,但没有任何东西可以修复它。这是一个小问题,但它严重困扰着我。
这是通过 iTerm 在 vim 中的示例代码文件:
这是通过 tmux 和 iTerm 在 vim 中的同一个文件:
注意背景颜色看起来有点不匹配,只有在那里编写代码时。为什么会这样?
我有set t_Co=256
我的vimrc
,我的iTerm终端设置为xterm-256color
,我有set -g default-terminal xterm-256color
我的tmux.conf
,我有:
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
export TERM='xterm-256color'
else
export TERM='xterm-color'
fi
Run Code Online (Sandbox Code Playgroud)
在我的.profile
. 这个确切的问题在我工作的基于 Ubuntu 的机器上被复制,我在那里使用所有相同的配置文件。这至少将问题隔离为与 OS/iTerm 无关。
有没有办法确保less
在退出时清除屏幕?的相反less -X
。
当我man
在 iTerm2 中退出页面时,屏幕没有被清除,但是在使用默认的 mac 终端时屏幕被清除。有没有人有建议?
$LESS
被设定为 less -R
我在 OSX 上使用 iTerm (3) 和prezto作为我的 zsh 配置框架。我在使用时收到一条奇怪的错误消息rsync
:
$ rsync -avz --exclude='.git' src/ remote:/dst
bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/io.c(453) [sender=2.6.9]
Run Code Online (Sandbox Code Playgroud)
当我检查路径时,rsync
我看到:
$ which rsync
rsync: aliased to noglob rsync
$ type -a rsync
rsync is an alias for noglob rsync
rsync is /usr/bin/rsync
Run Code Online (Sandbox Code Playgroud)
它似乎是使用noglob
宏的prezto 声明的别名。我也尝试调用 rsync 命令,/usr/bin/rsync
但没有帮助。
知道这里有什么问题吗?
我在我的 .bashrc 中添加以下内容
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
因此,当我在 shell/终端应用程序(macOS 上的 iTerm2)中打开一个新选项卡时,它会使用 SSH 代理自动添加 SSH 身份,而我不需要在该选项卡中手动输入 SSH 密码。但是如果我有很多选项卡,它似乎不必要地有很多 ssh-agent 正在运行的实例。
有没有更好的方法来实现这一目标?