(Adding some text to explain the reasoning behind the options discussed and adding "Usage" category) |
(Added an alternative `Silent` command which fixes redraw issues in a slightly more general way.) Tags: Visual edit apiedit |
||
(14 intermediate revisions by 8 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= |
+ | |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 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 |
+ | To decrease message size, use the <code>'shortmess'</code> option. Add the following line to your [[vimrc]]: |
+ | <pre> |
||
⚫ | |||
+ | </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'}}) |
||
⚫ | |||
⚫ | |||
− | This will use abbreviations for status messages to make lines shorter. |
||
+ | <pre> |
||
⚫ | |||
+ | </pre> |
||
⚫ | |||
⚫ | |||
+ | 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 <code>:silent</code> to keep external commands from triggering the "Hit ENTER" prompt: |
||
⚫ | |||
+ | <pre> |
||
− | To get more help on these options, use |
||
+ | :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== |
||
− | 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. |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | *{{help|:!cmd}} |
||
+ | *{{help|:silent}} |
||
+ | ==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.<br>The 't' option chops the beginning portion of file lines, indicating the truncation with a < 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. |
||
− | [[Category:Options]] |
||
+ | ::: [[User:Majkinetor|Majkinetor]] ([[User talk:Majkinetor|talk]]) 09:24, January 14, 2014 (UTC) |
||
− | [[Category:Usage]] |
||
+ | |||
⚫ |
Revision as of 12:35, 29 April 2015
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
- Execute external programs asynchronously under Windows for the "Hit any key to close this window..." prompt under Windows
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)