vim:如何在titlestring中使用变量

时间:2017-07-18 14:48:52

标签: vim

我想在&titlestring中设置.vimrc以包含短主机名。当我有这个,它工作正常:

let &titlestring = $USER . "@" . hostname() . " | " . expand("%:~")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term =~ "xterm"
  set title
endif

但它打印完整的主机名。为了获得简短的主机名,我尝试了这个:

let hostname=system('hostname -s')
let &titlestring = hostname . " | " . expand("%:~")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term =~ "xterm"
  set title
endif

然后我将| ~/.vimrc echo编辑到输入行,并在标题栏中输入Thanks for flying Vim。如何在标题栏中获取短主机名?

1 个答案:

答案 0 :(得分:4)

我不会为此发起外部命令;您system()中的.vimrc电话可以解释这些奇怪的症状。

为什么不通过.提取短主机名(第一部分,最多substitute())?!

let &titlestring = $USER . "@" . substitute(hostname(), '\..*$', '', '') . " | " . expand("%:~")