Thread: Need "Open (read-only)" or "View" in "File" menu
Cream is a free, easy-to-use configuration of the Vim text editor
Brought to you by:
digitect
From: BG - B. A. <BAr...@dy...> - 2005-04-04 20:08:57
|
It would be nice to have either a "Open (read-only)" or "View" menu item under the "File" menu so that other files may be opened safely (usually to copy bits out of them) without running the risk of accidentally writing the buffer and damaging the original file, which we never intended to change in the first place. I know you don't want to "clutter" the "File" menu, but I'm being asked by users of our old editor if we can provide this, because it was able to do this. We consider having a read-only open within the editor essential functionality now that we can't live without. Thanks, Ben |
From: Steve H. <dig...@mi...> - 2005-04-05 01:59:57
|
On Mon, 2005-04-04 at 17:08 -0300, BG - Ben Armstrong wrote: > > It would be nice to have either a "Open (read-only)" or "View" menu > item under the "File" menu so that other files may be opened safely > (usually to copy bits out of them) without running the risk of > accidentally writing the buffer and damaging the original file, > which we never intended to change in the first place. > > I know you don't want to "clutter" the "File" menu, but I'm being > asked by users of our old editor if we can provide this, because it > was able to do this. We consider having a read-only open within the > editor essential functionality now that we can't live without. For a quick hack, plop this into cream-lib.vim: function! Cream_file_open_readonly(...) " similar to open() except file is made readonly " window management (not from a special) if Cream_buffer_isspecial(bufnr("%")) call Cream_TryAnotherWindow() endif " if argument passed if a:0 == 0 " open dialog let myfile = browse(0, "Select file", "", '') else let myfile = a:1 endif " ignore Cancel return if myfile == "" return endif " make sure we can edit! if filewritable(myfile) == 2 call confirm( \ "Can not edit a directory!\n" . \ "\n", "&Ok", 1, "Info") return endif if filereadable(myfile) == 0 call confirm( \ "Error: File does not exist!\n" . \ "\n", "&Ok", 1, "Error") return endif " escape spaces let myfile = escape(myfile, ' ') " open in current window execute "view " . myfile " refresh syntax highlighting call Cream_filetype() endfunction and this into cream-menu-file.vim: anoremenu <silent> 10.104 &File.&Open\ (Read-Only)\.\.\. :call Cream_file_open_readonly()<CR> [that's one line] This will notify the user that the file is readonly on edit and warn that it is readonly on attempted save. But it will not prevent the user from overriding the read-only status after warning. To do that would require a flag on open that would close without the save or warning dialog. -- Steve Hall [ digitect mindspring com ] :: Cream... something good to put in your Vim! :: http://cream.sourceforge.net |
From: BG - B. A. <BAr...@dy...> - 2005-04-05 13:05:03
|
On Mon, 2005-04-04 at 21:59 -0400, Steve Hall wrote: > anoremenu <silent> 10.104 &File.&Open\ (Read-Only)\.\.\. :call > Cream_file_open_readonly()<CR> OK, except I have put this in cream-user instead. Well, we would like to avoid the dialog box, yes, because the user shouldn't have the opportunity to accidentally click "Yes". If we can work out that kink, it would be really great if you could include at least the cream-lib stuff in a future release. How do I *suppress* a menu entry via cream-user.vim? I know how to add one, but until I implement the .jou-lockfile stuff, I need to prevent users from opening other files any way other than read-only, and we have agreed among our team that simply dropping the normal "Open" menu entry is a good-enough interim solution. Ben |