Wikia

Vim Tips Wiki

Changes: Prevent a second instance of Vim from starting

Edit

Back to page

(Comments)
(Change <tt> to <code>, perhaps also minor tweak.)
 
Line 4: Line 4:
 
|previous=955
 
|previous=955
 
|next=958
 
|next=958
|created=July 7, 2005
+
|created=2005
 
|complexity=basic
 
|complexity=basic
 
|author=Jonathan Orlev
 
|author=Jonathan Orlev
Line 50: Line 50:
 
</pre>
 
</pre>
   
I agree, this serverlist() functions is working on Linux, where v:servername does not. Replace the original!
+
I agree, this serverlist() functions is working on Linux, where v:servername does not. Replace the original!
   
 
----
 
----
Line 56: Line 56:
   
 
----
 
----
See the <tt>:RemoteOpen</tt> command from remoteopen.vim which is part of latex-suite plugin.
+
See the <code>:RemoteOpen</code> command from remoteopen.vim which is part of latex-suite plugin.
   
 
----
 
----

Latest revision as of 05:59, July 13, 2012

Tip 957 Printable Monobook Previous Next

created 2005 · complexity basic · author Jonathan Orlev · version 5.7


For me, the most irritating thing when using the wonderful Vim is starting a second copy of Vim while a first one was already running.

For example: opening a file already open in the first Vim instance within a second instance of Vim gives an error message, because the swap file is already in use (not to mention that this might cause a loss of data).

So I added this to my vimrc. I am using gvim on Windows, but this will probably also work with gvim in other systems.

" If the v:servername ends with a number, then this is for sure a second
" copy of Vim.
if v:servername =~? '^.*[0-9][0-9]*$'
  echo "MyWarning: Another copy of gvim or Vim is probably loaded!"
endif

CommentsEdit

For users running gvim on Unixes, an alternative is to always use

/usr/local/bin/gvim --remote-silent FILENAME

If gvim is already running, the file is opened there. Otherwise, a new gvim instance is started.

For interactive shell sessions, it would help to define a shorter alias, such as:

alias gvimrem='/usr/local/bin/gvim --remote-silent'

Here is a better version for the tip. This is more general, and therefore preferable:

" If the serverlist contains more than one item, than another instance of
" Vim is loaded.
if serverlist() =~? "\n."
  echo "MyWarning: Another copy of gvim or Vim is probably loaded !"
endif

I agree, this serverlist() functions is working on Linux, where v:servername does not. Replace the original!


And you may also replace the operator '=~?' with '=~'


See the :RemoteOpen command from remoteopen.vim which is part of latex-suite plugin.


Around Wikia's network

Random Wiki