How to refresh (reload) an opened file?

36 views
Skip to first unread message

Andy Richer

unread,
Feb 26, 2013, 1:53:00 PM2/26/13
to vim
Hi vim Guru:

I opened a report file that is changed once I correct some code and re-generate report.
Is there a way that I can do "refresh" or "reload" without quit the re-open the file to see updated contents?


Thanks in advance
Andy Richer

Tim Chase

unread,
Feb 26, 2013, 2:10:32 PM2/26/13
to vim...@googlegroups.com, andy....@gmail.com, vim
On 2013-02-26 10:53, Andy Richer wrote:
> I opened a report file that is changed once I correct some code and
> re-generate report.
> Is there a way that I can do "refresh" or "reload" without quit the
> re-open the file to see updated contents?

Depends on what behavior you want, and whether you want to preserve
any changes you made in the first version of the output. To re-read
the file from disk, you can use

:e

(note: no filename) If you've made changes in the current buffer,
you can abandon those with

:e!

If you want to keep the current version in Vim and read the existing
file into another buffer, you can do that either by preserving what
you have into another scratch buffer and re-reading as above:

:%y " yank the old contents
:new " create a new buffer
:put " dump the old contents into this buffer
:1d " delete the initial blank line
:e! " reread the updated file

Or, you can leave the current buffer pointed at the file and read the
new file into a new buffer:

:new " create a new empty buffer
:r filename.txt " read in the contents from disk
:1d " delete the initial blank line

If you want to compare the old-version with the new version, I
recommend the "yank, new, put, e!" version, possibly followed by a
":diffthis" in each buffer.

-tim



Kfir Shay

unread,
Feb 26, 2013, 2:08:44 PM2/26/13
to vim...@googlegroups.com, vim
use 
:e 

to reload the file.  if you've made changes to the file
:e! 



--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
 
---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

John Little

unread,
Feb 26, 2013, 2:40:14 PM2/26/13
to vim...@googlegroups.com, vim
On Wednesday, February 27, 2013 7:53:00 AM UTC+13, andy richer wrote:

> Is there a way that I can do "refresh" or "reload" without quit the re-open the file to see updated contents?

The 'autoread' option does this. This works well in gvim because there is an implicit
:checktime
when gvim regains the input focus. See :help timestamp.

If you want a vim in a terminal to refresh, or gvim without getting the input focus, one can use the client-server stuff to tell vim to check if the file has changed. See :help client-server.

Regards, John Little

Sven Guckes

unread,
Feb 26, 2013, 2:49:20 PM2/26/13
to vim
* Tim Chase <v...@tim.thechases.com> [2013-02-26 20:36]:
> Or, you can leave the current buffer pointed at
> the file and read the new file into a new buffer:
> :new " create a new empty buffer
> :r filename.txt " read in the contents from disk
> :1d " delete the initial blank line

slight variation:

:new " create a new empty buffer
:r # " read in the contents from disk
:1d " delete the initial blank line

where the '#' is the "alternate file name" (read:
the file name associated with the alternate buffer).

you can probably map this to a key...

map <f9> :new|:r #|:1d

but when i enter this mapping then the '#' is
expanded right away and gives me an error:

E484: Can't open file #

how to stop that from happening again?

Sven

Ben Fritz

unread,
Feb 26, 2013, 4:57:06 PM2/26/13
to vim...@googlegroups.com, vim, guc...@guckes.net
On Tuesday, February 26, 2013 1:49:20 PM UTC-6, Sven Guckes wrote:
>
> you can probably map this to a key...
>
>
>
> map <f9> :new|:r #|:1d
>
>
>
> but when i enter this mapping then the '#' is
>
> expanded right away and gives me an error:
>
>
>
> E484: Can't open file #
>
>
>
> how to stop that from happening again?
>


In mappings you must either escape the | or use <Bar>.

map <f9> :new\|:r #\|:1d

map <f9> :new<Bar>:r #<Bar>:1d

Otherwise, Vim sees this as:

map <F9> :new

Followed by a separate :r # command.

Actually, this is best written without the redundant : characters, and you will need to end command-line mode with <CR>:

map <f9> :new\|r #\|1d<CR>

Ben Fritz

unread,
Feb 26, 2013, 4:59:27 PM2/26/13
to vim...@googlegroups.com, andy....@gmail.com, vim
On Tuesday, February 26, 2013 1:10:32 PM UTC-6, Tim Chase wrote:
> On 2013-02-26 10:53, Andy Richer wrote:
>
> > I opened a report file that is changed once I correct some code and
>
> > re-generate report.
>
> > Is there a way that I can do "refresh" or "reload" without quit the
>
> > re-open the file to see updated contents?
>
>
>
> Depends on what behavior you want, and whether you want to preserve
>
> any changes you made in the first version of the output. To re-read
>
> the file from disk, you can use
>
>
>
> :e
>
>
>
> (note: no filename) If you've made changes in the current buffer,
>
> you can abandon those with
>
>
>
> :e!
>
>
>

Note, this will destroy undo history, unless you have 'undofile' set, and 'undoreload' is a number larger than the number of lines in your file.

If 'undofile' and 'undoreload' are set properly, you can actually undo reading in the file if it abandoned your unsaved changes.

Gary Johnson

unread,
Feb 26, 2013, 7:13:56 PM2/26/13
to vim...@googlegroups.com
On 2013-02-26, Tim Chase wrote:
> On 2013-02-26 10:53, Andy Richer wrote:
> > I opened a report file that is changed once I correct some code and
> > re-generate report.
> > Is there a way that I can do "refresh" or "reload" without quit the
> > re-open the file to see updated contents?
>
> Depends on what behavior you want, and whether you want to preserve
> any changes you made in the first version of the output. To re-read
> the file from disk, you can use
>
> :e
>
> (note: no filename) If you've made changes in the current buffer,
> you can abandon those with
>
> :e!
>
> If you want to keep the current version in Vim and read the existing
> file into another buffer, ...

An easy way to compare the current buffer contents with the version
on-disk is to use the DiffOrig command. See

:help DiffOrig

Regards,
Gary

taco

unread,
May 18, 2013, 1:52:49 AM5/18/13
to vim...@googlegroups.com
:e
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit [1]http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google
> Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to vim_use+u...@googlegroups.com.
> For more options, visit [2]https://groups.google.com/groups/opt_out.
>
> References
>
> 1. http://www.vim.org/maillist.php
> 2. https://groups.google.com/groups/opt_out

Sam Roberts

unread,
May 18, 2013, 11:42:19 AM5/18/13
to vim...@googlegroups.com
:e %

e is edit
% is current file name

Tim Chase

unread,
May 18, 2013, 5:20:48 PM5/18/13
to vim...@googlegroups.com
The "%" is optional, as that's the default if you don't specify
anything. If you've made unsaved changes to your current buffer,
you'll need to "!" it:

:e!

Note that reloading loses things like the jump-list and undo history
for the buffer, so it might be better to do something like

:%d
:$r %
:0d

which should keep at least preserve the undo history though the
reload.

-tim



Ben Fritz

unread,
May 19, 2013, 9:20:23 PM5/19/13
to vim...@googlegroups.com
On Saturday, May 18, 2013 4:20:48 PM UTC-5, Tim Chase wrote:
>
> Note that reloading loses things like the jump-list and undo history
>
> for the buffer, so it might be better to do something like
>
>
>
> :%d
>
> :$r %
>
> :0d
>
>
>
> which should keep at least preserve the undo history though the
>
> reload.
>
>
>
> -tim

As I mentioned back in February, if you have 'undofile' and 'undoreload' set properly, you can actually undo reading in the file if it abandoned your unsaved changes.

Tim Chase

unread,
May 19, 2013, 9:29:06 PM5/19/13
to vim...@googlegroups.com, fritzo...@gmail.com
On 2013-05-19 18:20, Ben Fritz wrote:
> On Saturday, May 18, 2013 4:20:48 PM UTC-5, Tim Chase wrote:
>> Note that reloading loses things like the jump-list and undo
>> history
>
> As I mentioned back in February, if you have 'undofile' and
> 'undoreload' set properly, you can actually undo reading in the
> file if it abandoned your unsaved changes.

Ah, I knew this thread sounded familiar, and I'd forgotten about
that. I'm not sure why the thread was resurrected 3 months later o_O

-tim


Reply all
Reply to author
Forward
0 new messages