Vim Tips Wiki
m (Categorize)
(Added an alternative `Silent` command which fixes redraw issues in a slightly more general way.)
Tags: Visual edit apiedit
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
  +
{{TipImported
{{Tip
 
 
|id=16
 
|id=16
  +
|previous=15
|title=Avoiding the "Hit ENTER to continue" prompts
 
  +
|next=17
|created=February 24, 2001 18:04
+
|created=2001
 
|complexity=basic
 
|complexity=basic
 
|author=Yegappan
 
|author=Yegappan
 
|version=5.7
 
|version=5.7
 
|rating=33/20
 
|rating=33/20
  +
|category1=Options
|text=
 
  +
|category2=Usage
 
}}
  +
The "Hit ENTER to continue" prompt is displayed when Vim is about to redraw the screen, but there's text on the screen that you might need to read. This happens when something is displayed on the status line that is wider than the window, and after executing an external command.
   
To avoid the "Hit ENTER to continue" prompt, use the 'shortmess' option. Add the following line to your .vimrc file:
+
To reduce how often you see the "Hit ENTER to continue" prompt, you can shorten the messages, increase the space for displaying messages, or even tell Vim not to worry about external command output.
   
  +
To decrease message size, use the <code>'shortmess'</code> option. Add the following line to your [[vimrc]]:
:set shortmess=a
 
  +
<pre>
 
:set shortmess=a
  +
</pre>
   
  +
This will use abbreviations for status messages to make lines shorter. (There are several other flags for <code>'shortmess'</code> that can shorten messages even more. {{help|'shortmess'}})
Also, you can increase the height of the command line to 2
 
   
 
To give more space for displaying messages, you can increase the height of the command line to 2 or greater:
:set cmdheight=2
 
  +
<pre>
 
:set cmdheight=2
  +
</pre>
   
The default command height is 1.
+
The default command height is 1. Increasing <code>cmdheight</code> will allow more room for commands, although it will take some space away from editing.
   
  +
You can temporarily change the <code>cmdheight</code> to display a prompt for example, and then revert it to its original value. This way, you won't have to hit enter and it won't take space once finished.
To get more help on these options, use
 
   
  +
Finally, you can use <code>:silent</code> to keep external commands from triggering the "Hit ENTER" prompt:
{{help|hit-enter}}
 
{{help|'shortmess'}}
 
{{help|'cmdheight'}}
 
   
  +
<pre>
}}
 
  +
:silent !echo Hello
  +
</pre>
  +
  +
If the command generates any output, you may need to manually refresh the screen once you return to Vim (by typing Ctrl-L or entering <code>:redraw!</code>). If you're running a GUI version of Vim, <code>:silent</code> may keep you from seeing any output from the command at all!
  +
To fix the above problem with regular vim, you can use a custom command like this one:
  +
<pre>
  +
command! -nargs=1 Silent
  +
\ | execute ':silent !'.<q-args>
  +
\ | execute ':redraw!'
  +
</pre>
  +
Use it like a regular command:
  +
<pre>
  +
:Silent command
  +
</pre>Or to fix the redraw problems with external grep use:
  +
command! -nargs=+ Silent execute 'silent <args>' | redraw!
  +
Which you can use like this:
  +
:Silent grep! -RIi "Lost words" .
  +
  +
==See also==
  +
*[[VimTip1549|Execute external programs asynchronously under Windows]] for the "Hit any key to close this window..." prompt under Windows
  +
  +
==References==
 
*{{help|hit-enter}}
 
*{{help|'shortmess'}}
 
*{{help|'cmdheight'}}
  +
*{{help|:!cmd}}
  +
*{{help|:silent}}
  +
 
==Comments==
  +
* putting the following setting into your .vimrc settings file works good for eliminating the &lt;Press Enter&gt; message when first bringing up a vim editor to a specific file with a large path.<br>The 't' option chops the beginning portion of file lines, indicating the truncation with a &lt; sign at the point of truncation. <pre>set shortmess=at</pre>[[User:Keithel|Keithel]] 21:08, 13 August 2009 (UTC)
   
  +
::: That option generally doesn't prevent the message.
== Comments ==
 
  +
::: [[User:Majkinetor|Majkinetor]] ([[User talk:Majkinetor|talk]]) 09:24, January 14, 2014 (UTC)
The "Hit ENTER to continue" commands that I find most annoying are actually disabled by setting shortmess="oO" rather than "a". shortmess is set to "filnxtToO" by default, so these messages should not appear by default anyhow.
 
   
michael--AT--endbracket.net, October 23, 2003 18:33
 
 
----
 
----
<!-- parsed by vimtips.py in 0.736610 seconds-->
 
[[Category:Options]]
 

Revision as of 12:35, 29 April 2015

Tip 16 Printable Monobook Previous Next

created 2001 · complexity basic · author Yegappan · version 5.7


The "Hit ENTER to continue" prompt is displayed when Vim is about to redraw the screen, but there's text on the screen that you might need to read. This happens when something is displayed on the status line that is wider than the window, and after executing an external command.

To reduce how often you see the "Hit ENTER to continue" prompt, you can shorten the messages, increase the space for displaying messages, or even tell Vim not to worry about external command output.

To decrease message size, use the 'shortmess' option. Add the following line to your vimrc:

:set shortmess=a

This will use abbreviations for status messages to make lines shorter. (There are several other flags for 'shortmess' that can shorten messages even more. :help 'shortmess')

To give more space for displaying messages, you can increase the height of the command line to 2 or greater:

:set cmdheight=2

The default command height is 1. Increasing cmdheight will allow more room for commands, although it will take some space away from editing.

You can temporarily change the cmdheight to display a prompt for example, and then revert it to its original value. This way, you won't have to hit enter and it won't take space once finished.

Finally, you can use :silent to keep external commands from triggering the "Hit ENTER" prompt:

:silent !echo Hello

If the command generates any output, you may need to manually refresh the screen once you return to Vim (by typing Ctrl-L or entering :redraw!). If you're running a GUI version of Vim, :silent may keep you from seeing any output from the command at all! To fix the above problem with regular vim, you can use a custom command like this one:

command! -nargs=1 Silent
\ | execute ':silent !'.<q-args>
\ | execute ':redraw!'

Use it like a regular command:

:Silent command

Or to fix the redraw problems with external grep use:

command! -nargs=+ Silent execute 'silent <args>' | redraw!

Which you can use like this:

:Silent grep! -RIi "Lost words" .

See also

References

Comments

  • putting the following setting into your .vimrc settings file works good for eliminating the <Press Enter> message when first bringing up a vim editor to a specific file with a large path.
    The 't' option chops the beginning portion of file lines, indicating the truncation with a < sign at the point of truncation.
    set shortmess=at
    Keithel 21:08, 13 August 2009 (UTC)
That option generally doesn't prevent the message.
Majkinetor (talk) 09:24, January 14, 2014 (UTC)