screen + vim —有什么方法可以自动设置屏幕窗口名称以打开vim文件名?


10

我有一个非常漂亮的屏幕rc文件,该文件向我显示了打开的窗口,几乎就像终端底部的选项卡一样。目前,窗口是根据我的提示命名的,并不是那么有用。有没有一种方法可以根据窗口中当前打开的vim会话的文件名自动命名窗口?我认为如果可能的话,这将成为一个出色的多窗口编辑器。

Answers:


5

设置title选项。这对于xterm之类的东西对我来说是开箱即用的,但是在屏幕上却不行。这个技巧有效

if &term == "screen"
  set t_ts="\ek"
  set t_fs="\e\\"
  set title
endif

另一种方法是preexec在您的shell中编写一个函数,该函数将窗口标题设置为正在运行的命令。Zsh preexec本身支持,bash也可以做到这是一个zsh示例


你好 这对我不起作用,但是我认为这是因为我的.screenrc文件是如何设置的。1 termcapinfo xterm * ti @:te @ 2 hardstatus alwayslastline 3 hardstatus字符串'%{gk} [%{G}%H%{g}] [%=%{wk}%?%-Lw%?%{= b kR}(%{W}%n *%f%t%?(%u)%?%{= b kR})%{= kw}%?%+ Lw%?%?%=%{g}] [%{Y}%l%{g}]%{= b C} [%m /%d%c]%{W}'
user4785 2011年

@ user4785:如果您的提示可以设置“屏幕”窗口标题,则Vim也应该能够执行此操作。您的提示是什么?.vimrc没有您,我的摘要是否可以正常工作.screenrc
吉尔(Gilles)“所以,别再邪恶了”,

1

我使用了一些骇客的方法进行了此操作:使用tcsh将以下内容放入.cshrc中

# escape sequence to set the screen title
alias stitle 'echo -n "^[k\!*^[\\"'
# shorthand to set the screen title to the hostname
alias H stitle `hostname -s`
# shorthand to set the screen title to the filename, launch vim, and then set it back
alias vis 'stitle \!* ; vim \!* ; H'

只要您记得要使用vis而不是vim的标题,它就会起作用。

我还加了

set notitle

到我的.vimrc,以防止vim设置正在运行的窗口标题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.