In my .vimrc file I have set noshowmode

However, upon starting vim, :set noshowmode? returns showmode.

Something must be adjusting this setting upon startup (perhaps a plugin?). What's the best way to go about diagnosing something like this?

For the record, I've tried starting vim with the following command: vim -V9verbose.log but for some reason it still outputs the results to the command line rather than to the named file. I have to quit vim to save myself from being caught in a seemingly never ending verbose hell. Am I not using that command properly?

Thank you in advance for any help, please let me know if you need any more info!

  • 2
    :verbose set showmode? will tell you where it was last set from. – B Layer Aug 9 at 20:36
  • B Layer, that should be an answer. – Spidey Aug 10 at 10:37
  • @Spidey You have a point. Will create an answer. Cheers. – B Layer Aug 10 at 19:56
up vote 1 down vote accepted

The easiest thing to do is to run the following:

:verbose set showmode?

This should tell you from where the option was last set.

For many command types prepending :verbose is the same as setting 'verbose' to 1 and...

...when 'verbose' is non-zero, listing the value of a Vim option or a key map or an abbreviation or a user-defined function or a command or a highlight group or an autocommand will also display where it was last defined. If it was defined manually then there will be no "Last set" message. When it was defined while executing a function, user command or autocommand, the script in which it was defined is reported.

If this doesn't help for some reason then some general advice can be found in How do I debug my vimrc. (E.g. if you want to rule out any plugins as the cause.)


As for your use of -V that looks perfectly fine to me. You might want to check that you have file system permissions set up correctly to allow the Vim process to create/write a file in that directory and/or make sure there isn't already a file with that name with restricted permissions. That's all I can think of at this point. Oh, and use -V1 rather than -V9 while you're trying to figure it out. :)

  • Thank you B Layer! In my instance, this helped me narrow it down to the vim-workspace plugin. For some reason my .vimrc's set nowshowmode was being overridden by the plugin. In order to fix the issue, I had to configure the plugin with the following line: let g:workspace_nocompatible = 0 – Spectator6 Aug 10 at 23:06
  • @Spectator6 Glad it helped. – B Layer Aug 11 at 0:29

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.