我在Vim中有一个热键,可以将我带到命令模式并调用Bash脚本。Bash脚本尝试执行以下步骤:
如果我手动键入所有内容,脚本将起作用,但是如果我运行脚本,则直到脚本完成后,文本块才保存为文件,当IPython稍后尝试在脚本中加载文件时会导致错误。
这是我尝试的步骤:
#!/bin/bash
# Text to be written has been selected in Vim
tmux send-keys ':w jtemp.py'
tmux send-keys 'Enter'
# Load code selection in IPython
tmux select-pane -t 1
tmux send-keys '%load jtemp.py'
tmux send-keys 'Enter'
tmux send-keys 'Enter'
当Bash脚本仍在处理中时,如何将文件保存到磁盘?
问题很可能(但是我不确定)是Vim阻塞了,直到脚本完成才处理按键。我不知道是否可以让Vim在后台运行脚本,但是如果您将热键绑定到tmux中而不是使用run-shell -b
,可以这样:
bind F1 run -b "bash /path/to/my/script"
实际上,如果在tmux中执行此操作,则可能不需要脚本在后台运行,因为两个受影响的应用程序(Vim和IPython)不会阻塞,并且tmux是否会无关紧要。因此,您可以不进行-b
任何操作。
您仍然几乎肯定会Enter在选择窗格和选择窗格之间需要睡眠一秒钟或半秒(“ sleep 1”或“ sleep 0.5”,实验),否则在Vim编写文件和IPython读取文件之间会发生争执。 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句