正确设置:|redraw
末尾添加
augroup CmdLineStatus_to_Title
autocmd!
autocmd CmdlineEnter * set titlestring=CommandlineMode|redraw
autocmd CmdlineEnter * set titlestring=%F\ %{v:servername}\ %{mode()}
augroup END
原帖
我尝试了以下自动命令,但未能实现我想要的。理想情况下,当我将光标移动到命令行时(通过按键),我想附加到titlestring
标识符的末尾。:
" Global setting
setglobal titlestring=%F\ %{v:servername}\ %{mode()}
" The Auto command group
augroup CmdLineStatus_to_Title
autocmd!
autocmd CmdlineEnter * let &l:titlestring="CommandlineMode"
" autocmd CmdlineLeave * let &l:titlestring=%F\ %{v:servername}\ %{mode()}
augroup END
有多个问题:
-
当我输入命令行时
titlestring
,Gvim 窗口的, 和/或标题不会更新。当我离开命令行模式时它会刷新。- 此外,该
&l:
标志并未将设置本地限制为缓冲区:对于在新缓冲区/选项卡中打开的新文件,我将常量标题字符串作为“CommandlineMode”。(通过nnoremap <> <Plug>VimwikiMakeDiaryNote
映射打开一个特定文件,不涉及命令行操作。)
- 此外,该
- 此外,我不能简单地将自定义字符串“附加”到
titlestring
. 这应该是语法问题- 还相关:
augroup
当我实际离开命令行时,已注释掉的行会带来以下错误。titlestring
当我离开命令行时,还请告知如何恢复设置。
- 还相关:
灵感和学分:
- Naumann 在这篇文章中,我已经可以说出
titlestring
Vim 的当前模式。
机器规格:报告的故障发生在通过 X11 在 Windows 10 机器上的 WSL-Linux-shell 上运行的 Gvim 上。当%{mode()}
我在普通模式和插入模式之间来回切换时,“变量”会更新。这可能是Xming问题吗?将通过更新本地安装到 Windows 10 计算机的 Gvim.exe 进行测试。