我想在&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
。如何在标题栏中获取短主机名?
答案 0 :(得分:4)
我不会为此发起外部命令;您system()
中的.vimrc
电话可以解释这些奇怪的症状。
为什么不通过.
提取短主机名(第一部分,最多substitute()
)?!
let &titlestring = $USER . "@" . substitute(hostname(), '\..*$', '', '') . " | " . expand("%:~")