小编ser*_*gio的帖子

Vim 语句运动

根据 Vim 的手册:

一个句子被定义为以“.”、“!”结尾 或者 '?' 后跟行尾,或空格或制表符。

但是()如果句子之间只有一个空格,则正常模式运动似乎没有效果:

First sentence. Second sentence.
Run Code Online (Sandbox Code Playgroud)

但是()如果句子之间有多个空格,则按预期工作:

First sentence.  Second sentence.
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么()有没有效果时,句子用空格分开?

vim

10
推荐指数
1
解决办法
3363
查看次数

FrozenError - 无法修改冻结字符串(ruby 2.5+)

我试图更新红宝石在我们的项目到2.5及以上,并从捆绑1.17.22.0.1。这样做之后,运行我们的应用程序会在多个地方产生以下错误:

FrozenError - can't modify frozen String:
Run Code Online (Sandbox Code Playgroud)

这是尝试在控制器 ( Time.zone = current_user.location.time_zone) 和其他地方设置时区的结果。

ruby ruby-on-rails bundler

10
推荐指数
1
解决办法
3531
查看次数

Minitest 警告:已弃用 must_match 的全局使用。使用`_(obj)`

我正在使用 Minitest 5.12.0 编写以下测试:

require 'minitest/autorun'
require 'nokogiri'
require 'net/http'

class NetClass; end

describe NetClass do
  attr_accessor :uri, :net
  before do
    @uri=URI('http://example.com/index.html')
    @net=Net::HTTP.get(uri)
  end

  it 'gets uri' do
    net.must_match /Example Domain/i
  end
end
Run Code Online (Sandbox Code Playgroud)

测试成功,但输出警告:

已弃用:全局使用来自 net_test.rb:16 的 must_match 改为使用_(obj).must_match。这将在 Minitest 6 中失败

为了消除警告,我更改了以下行:

net.must_match /Example Domain/i
Run Code Online (Sandbox Code Playgroud)

_(net).must_match /Example Domain/i
Run Code Online (Sandbox Code Playgroud)

我之前没有见过_(obj)语法,所以我的问题是_()在这种情况下在做什么。

ruby testing minitest

6
推荐指数
1
解决办法
1568
查看次数

如何在 C 中创建指针数组?

如何创建一个指针数组,其中每个元素都保存一个指向其他值的指针

例如,如果我有

int** arr[5] = {0xbfjeabfbfe,0x...}; //is it the right way to do it?
Run Code Online (Sandbox Code Playgroud)

数组类型意味着什么void?喜欢void **newArray[5];

假设我想使用 malloc 或 calloc 为指针数组动态分配内存!语法是什么?

c arrays pointers

5
推荐指数
2
解决办法
3万
查看次数

Ruby 在 unicode 字符串中插入变量

为了获得 unicode 表情符号,我这样做:

irb> "\u{1f384}"
=> ""
Run Code Online (Sandbox Code Playgroud)

但如果我在 unicode 中使用变量,则会出现以下错误:

irb> d=4
=> 4
irb> "\u{1f38#{d}}"
(irb):11: unterminated Unicode escape
"\u{1f38#{d}}"
Run Code Online (Sandbox Code Playgroud)

如何在unicode中使用字符串插值?

ruby string unicode

5
推荐指数
1
解决办法
245
查看次数

Rails-删除之前确认对话框的定制视图

要删除rails中的记录,我正在使用此代码

<%= link_to "close #{user.name}'s light", light_path(id: light), method: :delete, data: { confirm: 'Are you sure?' } %>
Run Code Online (Sandbox Code Playgroud)

结果,我得到这样的对话框 在此处输入图片说明

但是我希望这个对话框看起来像这样 在此处输入图片说明

有什么方法可以自定义确认对话框的默认视图?

ruby ruby-on-rails ruby-on-rails-4

2
推荐指数
1
解决办法
1160
查看次数

将零添加到列表中

我有以下输入文件:

a,10,12,13
b,20,22
c,30
d,33
Run Code Online (Sandbox Code Playgroud)

并且想要添加零,直到每行有三个数字,所以这应该是输出:

a,10,12,13
b,20,22,0
c,30,0,0
d,33,0,0
Run Code Online (Sandbox Code Playgroud)

sed我可以使用这两个命令:

sed 's/\([a-z],[0-9]\+$\)/\1,0,0/g'
sed 's/\([a-z],[0-9]\+,[0-9]\+$\)/\1,0/g'
Run Code Online (Sandbox Code Playgroud)

我的正则表达式知识是有限的sed,我想知道如何用awk或实现这一点perl.

regex perl awk

2
推荐指数
1
解决办法
128
查看次数

Array#map 返回意外值

我使用此代码得到了意外的返回值:

str = ''; 'abc'.chars.map {|c| str<<c}
Run Code Online (Sandbox Code Playgroud)

预期输出:

["a", "ab", "abc"]
Run Code Online (Sandbox Code Playgroud)

实际输出:

["abc", "abc", "abc"]
Run Code Online (Sandbox Code Playgroud)

添加puts(str)用于调试:

str = ''; 'abc'.chars.map {|c| puts(str); str<<c}

a
ab
=> ["abc", "abc", "abc"]
Run Code Online (Sandbox Code Playgroud)

为什么上面的代码没有返回预期的输出?谢谢。

ruby arrays

1
推荐指数
1
解决办法
72
查看次数

在系统调用中使用`\ r`字符写(2)

我正在尝试在终端中打印数字.数字必须打印在同一位置.所以1应该打印然后1将被删除,2并将打印等.我正在使用以下C代码:

#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
    useconds_t milisecs;
    milisecs = 500000;
    int i;
    char buffer[1024];

    /* print numbers in-place */
    for (i=0;i<10;i++) {
        printf("%d\r",i);
        fflush(stdout);
        usleep(milisecs);
    }

    /* print numbers in-place using write() */
    for (i=0;i<10;i++) {
        snprintf(buffer, sizeof(buffer), "%d\r", i);
        write(1,buffer,1);
        usleep(milisecs);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

第一个for循环使用printf()并按预期工作.然而第二个循环与write()打印0123456789.如何让第二个循环输出与第一个循环相同的文本?我认为问题与\r不被承认有关write().

c

0
推荐指数
1
解决办法
44
查看次数

SIGTERM 不会终止脚本

我试图理解这个脚本:

#!/usr/bin/env sh

trap "pkill -f sleep" term

sleep 1000
Run Code Online (Sandbox Code Playgroud)

运行脚本后,我想通过发送一个来停止它SIGTERM

# run script in the background
$ ./signals.sh &
[1] 5389

# check if script is running
$ ps aux | grep 'signals.sh\|sleep' | grep -v grep
sergioro  5389  0.0  0.0 216520  3112 pts/0    S    09:07   0:00 sh ./signals.sh
sergioro  5390  0.0  0.0 214984   708 pts/0    S    09:07   0:00 sleep 1000

# send SIGTERM to script
$ pkill -fe signals.sh
sh killed (pid 5389)

# why hasn't …
Run Code Online (Sandbox Code Playgroud)

sh

0
推荐指数
1
解决办法
126
查看次数

标签 统计

ruby ×5

arrays ×2

c ×2

ruby-on-rails ×2

awk ×1

bundler ×1

minitest ×1

perl ×1

pointers ×1

regex ×1

ruby-on-rails-4 ×1

sh ×1

string ×1

testing ×1

unicode ×1

vim ×1