如何在终端标题上显示我当前正在用 vim 编辑的文件的名称?

如何在终端标题上显示我当前正在用 vim 编辑的文件的名称?

我正在单个终端上的多个选项卡中编辑位于同一文件夹中的多个文件。

pwd(我当前正在工作的目录)显示在终端标题的顶部,但不显示我正在编辑的文件的名称。当在同一目录中处理多个文件时,这会造成混淆。

如何在终端顶部除了显示当前文件的名称之外还显示pwd

我在 12.04 LTS 上的vimbash shell 中运行。gnome-terminal

答案1

您必须.vimrc在主目录中拥有/创建一个名为的文件,其中包含以下代码:

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

在此处输入图片描述

来源:gnome-terminal 不允许更改标题

答案2

如果您在某个 vim 会话中切换文件/缓冲区,则当前(已接受)答案将不起作用。标题不会更新。

:e foo.txt当您使用、、:b0等切换文件时,以下内容足以在 gnome-terminal 中自动更新标题:b#

只需将其放入您的~/.vimrc文件中:

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

系统:Ubuntu 14.10、vim 7.4.273、gnome-terminal 3.6.2-0ubunt。

答案3

只需添加

set title

到你的~/.vimrc

示例标题:testfile (~/Documents) - VIM

答案4

如果你重命名缓冲区,这也会改变窗口标题:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

将命令放在一个组中可以避免在vimrc多次获取命令时多次执行该命令。

这与vim 太监它可让您使用 重命名文件:Rename

相关内容