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

gblwokeq  于 2022-11-19  发布在  Ruby
关注(0)|答案(4)|浏览(186)

我从here中发现,如果你有一个脚本想在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控制台中。但是当我从sublime text 3中抓取相同的文本时,它在第二行后出错,错误如下:是否显示所有522种可能性?(y或n)..
答案我找到了原因。我的脚本(在崇高的文本)使用制表符作为缩进。Rails控制台只接受空格作为缩进。这是我生命中的一个小时,我不会回来。我希望这节省别人一些时间。

mspsb9vt

mspsb9vt1#

这个问题(将多行代码粘贴到控制台上的irb中,在Mac上,使用iTerm)困扰了我很长时间,最终找到了解决方案。
在我的例子中,问题出在iTerm上,结果是iTerm在默认情况下粘贴内容的速度对于readline来说太快了,readline是irb用来读取输入的库。
解决方法是执行 * 编辑〉选择性粘贴〉慢速粘贴 * 两次。
类似的案例请参见此处:https://gitlab.com/gnachman/iterm2/issues/3607

c3frrgcw

c3frrgcw2#

溶液

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

rails console -- --nomultiline

你可以粘贴许多行代码没有问题。

说明

这里的问题是IRB想一次写一封信。你可以通过在关闭代码块之前放弃上下移动光标的功能来禁用这种行为。
来源:https://tosbourn.com/speed-up-pasting-text-into-rails-console/

r6hnlfcb

r6hnlfcb3#

我不能评论,因为声誉,所以我添加了一个关于“提示”的答案,可以保存你的一些时间。
在大多数用于编写代码的文本编辑器/ IDE中,你可以选择用一定的空格来替换表格。这样做可以避免文件中的表格字符引发类似你的错误;)
https://www.sublimetext.com/docs/3/indentation.html

slsn1g29

slsn1g294#

对我来说,将制表符替换为空格是不够的,可能是因为我试图粘贴的内容太大了。对我来说,有效的方法是删除所有不需要的空格,用分号替换换行符,用一行花括号块替换do...end块。基本上是将所有内容都放到尽可能少的行中。

相关问题