Vimside has been tested with multiple Vim processes. One Vim
can start the Ensime Server (normal start command) and a second
Vim editor (not window, but another Vim process) in the same
project is asked to start the Ensime server ('<Leader> vs'), it will find the
Ensime port file and simply connect to the already running server.
This seems to work with the caveats:
  - If the configuration is to stop the server when Vim is exited,
  then when the Vim editor that started the server exits, then
  the server is stopped even if other Vim editor are still connected
  to it. Have to implement some kind of Vim connection counter if
  this becomes an issue.
  - If the Ensime configuration file is changed between starting the
  first and second Vim, things might not work (since the Ensime
  server will only know about the configuration that the first
  Vim process passed to it).
If the configuration is that the Ensime server is not stopped when
the launching Vim process is exited, then any Vim process that
connects to the server can explicitly generate the stop server
command ('<Leader> vS')to kill the server (or using 'ps' and 'kill -9').

Previously, when Vim stopped, the Ensime server was stopped
(with a call to shut it down). Now, this is optional.
There is a new Options 'ensime-shutdown-on-vim-exit' which if
set to true (1), then the old behavior is seen; the Ensime server
is shutdown when the Vim editor is exited. But, now if the
Option is false (0), then when Vim stops, the Ensime server
is not stopped. To stop the server one must explicitly issue the
command:
  nmap <silent> <Leader>vS :call vimside#command#StopEnsime()<CR>
This lets one save the running server between Vim sessions and, in
addition, allows one to use multiple Vim processes to edit the
same project's files. To enable this, Vimside was also changed so
that if it finds an Ensime port file, rather than start Ensime
it reads the file, gets the port, and tries to connect to Ensime.
If this fails, then it starts Ensime.
A note of caution, if you change your Ensime config file between
Vim invocations but do not re-start the Ensime server, the second
Vim invocation will be talking to an Ensime server which is out of sync.
Default value for this Options is true, the old behavior -
shutdown Ensime when Vim exits.

Add Option 'vimside-log-file-use-pid'. If true then current Vim
process id is a suffix to the log file name. Useful when you
have more than one Vim process or if you are running a series
of tests on Vimside code and wish to generate separate log file
for each test. Default is false, no pid suffix.

Add Option 'ensime-log-file-use-pid'. If true then the Ensime log
file as a suffix has the process id of the Vim process that started
it.  Useful to coordinate Ensime log files with Vim process that
launched the server. Default is false, no pid suffix.

Removed the call to vimside#scheduler#ClearAuto during
shutdown; the function did not exist.

The Option 'tailor-sbt-error-read-size' is used as the size of
the socket buffer used to read results returned by a SBT compile
request. This should be large enough to read all of the errors.
If it is too small, then only a partial read occurs and the
code that converts the errors to Quickfix window entries may
fail.  Default value is 10000 which, hopefully, is big enough for
most SBT compile error results.

The Option 'vimside-port-file-wait-time' is the time to wait
after starting the Ensime Server before attempting to read the
port file generated by the server (the port is the server socket
port). Default is 4 seconds, but anywhere from 0 to 5 seconds might
be OK.