好的,问题有一些我必须首先描述的部分,然后是问题。 我写了一个Sublime Text 2插件,用于从系统的文本选择中打开一个新文件。即使在终端中选择了文本,该命令也应该从所选文本中打开文件 - 是的,它是Nedit的Ctrl + Y功能。 为此,我为Sublime编写了一个插件(我的代码在安全的环境中,所以我只能在这里重现相关的部分 - 原谅错别字)
class OpenNamedFileCommand(sublime_plugin.WindowCommand):
def run(self):
cmd = ['/home/razvan/clip.exe']
popen_arg_list = {"shell": False,
"stdout":subprocess.PIPE,
"stdin":subprocess.PIPE}
proc = subprocess.Popen(cmd, **popen_arg_list)
selection = proc.communicate()[0]
print selection #for debug puposes i just print the text in the sublime console
另一段代码是clip.exe,一个用C编写的小型gtk应用程序(下面的简化版本 - 我使用了glib.h,gtk.h和string.h)
int main(int argc, char **argv){
GtkClipboard *clipboard;
gchar *clipboard_text;
gtk_init(&argc, &argv);
clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
clipboard_text = gtk_clipboard_wait_for_text(clipboard);
puts(clipboard_text);
return 0;
}
用法:
我试过了:
思考? 提前感谢您阅读这本小说:)