E
Eric_Dexter
I am having trouble contolling vim with subprocess on a windows
machine. It appears that vim comes up on the machine all right and it
sometimes looks like it is doing the searchs what I am asking it to do
but when I am asking it to load a file it doesn't do anything. Is
there something I need to do to push the data through the pipe?? Here
is a couple different ways I am trying to do it.
def load_instrument(instr_name, csdname):
"load an instrument using vim a path should be defined for vim
currently I am doing that with the .bat file that loads the program"
f = open('csdfile.tmp','w')
my_path = "/dex tracker"
cmd = ["gvim",csdname]
vimin = subprocess.Popen(cmd,stdin=subprocess.PIPE)#.comunicate()
[0] #, stdout = f, stderr = f, cwd = my_path )
#f.close
#x = subprocess.Popen("clear").communicate(None)[0]
innum = csr.return_unique_instr_number(csdname) - 1
cmd = """/;<start""" + str(innum) + '>' +'\n'
print(cmd)
vimin.stdin.write(cmd)
cmd = """/;<endin>""" +'\n'
vimin.stdin.communicate(cmd)
cmd = ':r ' + instr_name +'\n'
print(cmd)
vimin.stdin.write(cmd)
#vimin.stdin.write(instr_name + '\n')
cmd = instr_name + '\n'
f.close()
def load_instrument2(instr_name, csdname):
"second try uses comunicate"
cmd = ["gvim",csdname]
proc = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, )
cmd = """/;start""" + '\n'
proc.communicate(cmd)[0]
cmd = """/;<endin>""" + '\n'
proc.communicate(cmd)[0]
cmd = ':r ' + instr_name + '/n'
proc.communicate(cmd)[0]
proc.close()
I am calling these with
load_instrument2("""strings.orc""",'bay-at-night.csd')
and I define the path of vim in a batch file befour I call the
routines
path c:\program files\vim\vim71
python_awk_bridge.py
pause
machine. It appears that vim comes up on the machine all right and it
sometimes looks like it is doing the searchs what I am asking it to do
but when I am asking it to load a file it doesn't do anything. Is
there something I need to do to push the data through the pipe?? Here
is a couple different ways I am trying to do it.
def load_instrument(instr_name, csdname):
"load an instrument using vim a path should be defined for vim
currently I am doing that with the .bat file that loads the program"
f = open('csdfile.tmp','w')
my_path = "/dex tracker"
cmd = ["gvim",csdname]
vimin = subprocess.Popen(cmd,stdin=subprocess.PIPE)#.comunicate()
[0] #, stdout = f, stderr = f, cwd = my_path )
#f.close
#x = subprocess.Popen("clear").communicate(None)[0]
innum = csr.return_unique_instr_number(csdname) - 1
cmd = """/;<start""" + str(innum) + '>' +'\n'
print(cmd)
vimin.stdin.write(cmd)
cmd = """/;<endin>""" +'\n'
vimin.stdin.communicate(cmd)
cmd = ':r ' + instr_name +'\n'
print(cmd)
vimin.stdin.write(cmd)
#vimin.stdin.write(instr_name + '\n')
cmd = instr_name + '\n'
f.close()
def load_instrument2(instr_name, csdname):
"second try uses comunicate"
cmd = ["gvim",csdname]
proc = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, )
cmd = """/;start""" + '\n'
proc.communicate(cmd)[0]
cmd = """/;<endin>""" + '\n'
proc.communicate(cmd)[0]
cmd = ':r ' + instr_name + '/n'
proc.communicate(cmd)[0]
proc.close()
I am calling these with
load_instrument2("""strings.orc""",'bay-at-night.csd')
and I define the path of vim in a batch file befour I call the
routines
path c:\program files\vim\vim71
python_awk_bridge.py
pause