Vim Tips Wiki
(Added an alternative `Silent` command which fixes redraw issues in a slightly more general way.)
Tags: Visual edit apiedit
(7 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
|previous=15
 
|previous=15
 
|next=17
 
|next=17
|created=February 24, 2001
+
|created=2001
 
|complexity=basic
 
|complexity=basic
 
|author=Yegappan
 
|author=Yegappan
Line 15: Line 15:
 
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 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 <tt>'shortmess'</tt> option. Add the following line to your [[vimrc]]:
+
To decrease message size, use the <code>'shortmess'</code> option. Add the following line to your [[vimrc]]:
 
<pre>
 
<pre>
 
:set shortmess=a
 
:set shortmess=a
 
</pre>
 
</pre>
   
This will use abbreviations for status messages to make lines shorter. (There are several other flags for <tt>'shortmess'</tt> that can shorten messages even more. {{help|'shortmess'}})
+
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'}})
   
 
To give more space for displaying messages, you can increase the height of the command line to 2 or greater:
 
To give more space for displaying messages, you can increase the height of the command line to 2 or greater:
Line 27: Line 27:
 
</pre>
 
</pre>
   
The default command height is 1. Increasing <tt>cmdheight</tt> will allow more room for commands, although it will take some space away from editing.
+
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.
Finally, you can use <tt>:silent</tt> to keep external commands from triggering the "Hit ENTER" prompt:
 
  +
 
Finally, you can use <code>:silent</code> to keep external commands from triggering the "Hit ENTER" prompt:
   
 
<pre>
 
<pre>
Line 35: Line 37:
 
</pre>
 
</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 <tt>:redraw!</tt>). (If you're running a GUI version of Vim, <tt>:silent</tt> may keep you from seeing any output from the command at all!)
+
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==
 
==See also==
Line 48: Line 63:
   
 
==Comments==
 
==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. the 't' option chops the beginning portion of file lines, indicating the truncation with a &lt; sign at the point of truncation (beginning of the line.
+
* 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)
  +
<pre>
 
  +
::: That option generally doesn't prevent the message.
set shortmess=at
 
</pre>[[User:Keithel|Keithel]] 21:05, 13 August 2009 (UTC)
+
::: [[User:Majkinetor|Majkinetor]] ([[User talk:Majkinetor|talk]]) 09:24, January 14, 2014 (UTC)
  +
  +
----

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)