如何将多行代码复制粘贴到 rails 控制台中(例如,从脚本中复制粘贴)



我从这里发现,如果你有一个要在 rails 控制台中运行的脚本,有时你必须逐行复制粘贴它(一次复制粘贴并不总是有效(

这对于冗长的脚本来说非常乏味

有没有解决方法或更快的方法?

示例 - 这不会将粘贴从文本编辑器复制到控制台:

class Article
    def initialize(title, link, paragraphs)
        @title = title
        @link = link
        @paragraphs = paragraphs 
    end
    attr_reader :title
    attr_reader :link
    attr_reader :paragraphs
end

编辑上面的截图确实将粘贴直接复制到 rails 控制台中。但是当我从崇高的文本 3 中抓取相同的文本时,它在第二行之后出错,如下所示:显示所有 522 种可能性?(y 或 n(..

答案我弄清楚了原因。我的脚本(在崇高的文本中(使用制表符作为缩进。轨道控制台仅接受空格作为缩进。那是我生命中一个小时,我再也回不来了。我希望这能为其他人节省一些时间。

这个问题(使用 iTerm 将多行代码粘贴到 iR 上的控制台、Mac 上的 irb 中(困扰了我很长时间,终于找到了解决方案。

就我而言,问题出在iTerm上。事实证明,默认情况下,iTerm 以太快的速度粘贴内容,对于 readline(irb 用来读取输入的库(来说太快了。

解决方案是编辑>粘贴特殊>粘贴速度慢两次。

有关类似案例,请参见此处:https://gitlab.com/gnachman/iterm2/issues/3607

解决方案

使用此选项打开 rails 控制台:

rails console -- --nomultiline

然后,您可以毫无问题地粘贴许多行代码。

解释

这里的问题是IRB想一次写一封信。您可以通过放弃在关闭代码块之前编写和编辑代码块时上下移动光标的功能来禁用此行为。

源:https://tosbourn.com/speed-up-pasting-text-into-rails-console/

由于声誉,我无法发表评论,所以我添加一个关于"提示"的答案,可以节省一些时间。

在大多数用于编写代码的文本编辑器/IDE中,您可以选择将制表替换为一定数量的空间。这样做是一件好事,以避免文件中的制表字符引发一些错误,例如您的错误;)

https://www.sublimetext.com/docs/3/indentation.html

对我来说,

将制表符替换为空格是不够的,可能是因为我尝试粘贴的内容太大了。对我有用的是删除所有不需要的空格,用分号替换换行符,并替换 do...带有单行花括号块的端块。基本上将所有内容都放在尽可能少的行中。

相关内容

最新更新