一次从文件中粘贴一行(或部分)

时间:2014-11-27 16:09:46

标签: windows clipboard paste presentation

我是一名使用Windows的教师,希望能够将我所拥有的示例文件中的短程序片段一个接一个地粘贴到我正在教授的任何编程环境中(例如python IDLE shell或编辑器)。在讲座中,我将IDLE打开,然后使用Ctrl-v将文件中的第1行粘贴到IDLE,执行&讨论它,然后使用Ctrl-v将文件中的第2行粘贴到IDLE中,执行&讨论它,然后使用Ctrl-V将第3行引入IDLE,依此类推......

我怀疑有一些方法可以使用剪贴板管理器进行此操作,但尚未在线找到它。

能够粘贴代码段而不仅仅是单行代码也非常有用。文件中的代码部分可以用空行或某种文本字符串指示符分隔。

拥有此功能将允许我在文件中准备好所有示例,然后在讲座期间使用Ctrl-v一次快速访问所有示例。

3 个答案:

答案 0 :(得分:0)

当您按下Win + Ctrl + V(在Windows上)时,以下AutoHotKey脚本将粘贴剪贴板中的行,一次一行。

如果您还没有使用过AutoHotKey,我强烈推荐它。

#^v::
{
    originalClipboard := Clipboard
    StringSplit, ClipLines, originalClipboard, `n`r
    size := StrLen(ClipLines1) + 3
    Clipboard = %ClipLines1%
    Send ^v`n   
    Clipboard := SubStr(originalClipboard, size)
    return
}

警告:

  • 它可能无法稳健地处理行结尾 - 它仅适用于双字符\r\n结尾(Windows标准)。这应该是大多数(如果不是全部)现实世界的用法。
  • AutoHotKey似乎仅适用于Windows。
  • 粘贴一行后,该行将从剪贴板中删除,以便您为下一行做好准备。
  • 它总是一次粘贴整行,即使源是部分线。
  • 当你用完剪贴板线时,它会粘贴空白行,直到你意识到它为止。
  • 通过发送换行符添加新行。不确定这是否适用于所有文本编辑器,但它在记事本和我尝试的其他一些工作中有效。
  • 可能还有其他细微差别处理得不好。

答案 1 :(得分:0)

不幸的是,我无法发表评论,但@Patrick 的出色解决方案仅在我添加 ffmpeg -i video.mp4 -i background.jpg -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease[fg];[1][fg]overlay=(W-w)/2:(H-h)/2" output.mp4 命令时对我有用 - 否则,剪贴板内容在粘贴行之前会被覆盖。因此,如果您遇到类似问题,以下版本可能会这样做:

sleep

答案 2 :(得分:-1)

从IDLE(或整个IdleX)的IdleX扩展安装MultiLineRun.py脚本。 Idlex可在此处获取:http://idlex.sourceforge.net/

如果你想自动化它:

import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate("Python 2.7.9 Shell") 
# or the title of your idle shell window
for line in source.readlines(): 
    # open your source file of examples 
    # better parse it into groups of commands
    # and work each group in a batch
    line= line.replace("(","{(}") # sendkeys escape
    line= line.replace(")","{)}")
    shell.SendKeys(line)
    shell.SendKeys("{ENTER}") # for good measure.  
"""SendKeys sends a string to the active window.
You can automate reading lines in batches linked to a button press etc
put in delays, copy per char etc 
Go to town and make it a mini slide show! 
"""