我已经玩了几天了,所以我肯定我错过了一些简单的东西。喜欢 tmux。使用它进行开发,并且有这么多窗口,我需要一种更好的方法来在状态栏和缓冲区列表中区分它们。看到“bash”和“vim”的列表真的没什么用。而且由于它们都在同一个主机上 - 现在不关心主机名。
我想显示当前工作目录和正在处理的文件。例如,当我查看缓冲区列表时,我当前看到:
(0)0:vim [100x44](1 个窗格)“murph”
(1)1:vim [100x44](1 个窗格)“murph”
(2)2:bash- [100x44](1 个窗格)“murph”
(3)3:bash* [100x44](1 个窗格)“murph”
以下是我想要看到的内容
0:vim main.py ~/devl/project1
1:vim index.html ~/devl/samples/staticfiles
2:bash ~/devl/sandbox
3:bash ~/.vimrc
我希望在每个窗口的状态栏中看到类似的信息。虽然我能够让 PWD 显示在窗口的状态栏中,但它只是启动 tmux 的工作目录。当我更改目录时,这没有任何帮助。
我希望这可以在不使用大量脚本的情况下完成。
谢谢大家。
答案1
对于 bash,添加到 .bash_profile 或其他内容:
PROMPT_COMMAND="echo -ne \"\\033]0;\${USER}@${HOSTNAME}\\007\\033k\${PWD}\\033\\\\\""
对于 vim,添加到 .vimrc:
if &term == "screen"
set t_ts=^[k
set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
set title
endif
autocmd BufEnter * let &titlestring = "vim " . expand("%:t") . " " . expand("%:h")
对于不熟悉的人,要在 vim 中获取转义序列 ^[,请按 Control-V Escape。
答案2
把这个放到你的目录中,~/.tmux.conf
这样就可以在 tmux 状态中显示当前目录(你所在的窗格中的目录)
set -g status-left-length 100
set -g status-left '#[fg=green] #T#[default]'