## Clarification of the moving parts First, let me clarify what I mean by "Window Title", and what I expect to achieve * On Windows OS, GUI programs will have three attributes: its Window Title texts, the process.exe name and its win-class name. An example of Gvim ran through Xming looks like the following: [![enter image description here][1]][1] * **Window Title**: `[No Name] - - GVIM1` * win-class name: `Xming X` * Process Name: `Xming.exe` * I am looking for a way to **start** Vim, so that: * Instead of reporting `FileName -- GVIM1` as its "Win-Title", it also reports, either: * `Filename -- GVIM1 - Insert-mode` OR `Filename -- GVIM1 - Normal-mode`, depending on the current state of Vim. Please advise if there is a better way to have Vim dynamically update its "Title". [1]: https://i.sstatic.net/BDfxg.png ## Explanation At the end of the day, I would like to detect the precise Vim mode through its "Window Title". This opens new doors for re-mapping indistinguishable pairs of keys, like `<tab>` and `<c-i>`. For example, through AutoHotKey, which runs on Windows OS, I can happily assign `<tab>` (in normal mode) to a particular command-line function, while keeping `<c-i>` behaving "normally" (go to the next position on the jump list). AutoHotKey detects WinTitle by default and will need a lot more effort to conduct real-time OCR on the dynamic Window of Gvim, to tell its current mode. Blindly remapping the `<tab>` key will distort the _normal usage_ of `<tab>` key in Insert-mode. Please advise if this is achievable, as it is funny to learn that `<tab>` and `<c-i>` are identical keys in the year 2019 :) ## Motivation and cross-reference (TL;DR) Things start from [this post about Vimwiki](https://github.com/vimwiki/vimwiki/issues/607), where I re-learned that `<c-i>` and `<tab>` are indistinguishable by the Modern Vim. This brings conflict in my hard-to-change muscle memory. For the mappings in normal mode: * `<c-i>` should take me to the more recent position in the jump list (opposite of `<c-o>`), and * `<tab>` should handle its own business: * For Vimwiki, `<tab>` jumps to the next hyperlink, and `<s-tab>` jumps to the previous hyperlink * For other filetypes, I do not press `<tab>` key in normal mode. I tend to spend a considerable amount of time in Markdown documents, and I rely on [Vimwiki](https://github.com/vimwiki/vimwiki) to nativage the stacks of Markdown files. (I maintain two websites + one personal wiki with more than 2,000 entires.) At the end of the day, I would like to "split" the functionality of `<tab>` and `<c-i>` ==> In Normal-mode, pressing `<tab>` shall issue `:VimwikiNextLink<CR>` and `<c-i>` shall bring me to the next point in the Jump list. Since it is well established that `<tab>` and `<c-i>` are treated alike by Vim, I am planning to use AutoHotKey to _overwrite_ the `<tab>` key **only in Normal Mode**. This is where all dots should connect: through a title-matching trick in AutoHotKey, `<tab>` is only mapped to `:VimwikiNextLink<CR>` in normal mode. Given the tweak on the `titlestring` option, I see the light of distinguishing modes.