import os import sys config = { # path to directory containing vim.exe and gvim.exe 'vimdir': 'C:\\apps\\Vim\\vim73', # list of (name, path) tuples defining gvim contexts 'servers': [], # default server name to use if no server paths match 'default_server': 'GVIM', } def read_config_file(config, path): if os.path.exists(path): fh = open(path, 'r') script = fh.read() fh.close() try: exec(script, config) except: sys.stderr.write('Configuration file error in "%s":\n' % path) traceback.print_exception(sys.exc_info()[0], sys.exc_info()[1], None) tb = traceback.extract_tb(sys.exc_info()[2]) for ent in tb[1:]: lineno, fn = ent[1:3] sys.stderr.write(' File "%s", line %d, in %s\n' % (path, lineno, fn)) def get_server_name(config, fname): return config['default_server'] def main(argv): if (len(argv) < 2): return -1 read_config_file(config, os.path.expanduser('~/.gvim-wrapper')) for fname in argv[1:]: servername = get_server_name(config, fname) os.execv(config['vimdir'] + '\\gvim.exe', ['gvim', '--servername', servername, '--remote-tab-silent', fname]) if __name__ == '__main__': sys.exit(main(sys.argv))