小编Mal*_*ous的帖子

你怎么告诉Emacs在搜索和替换字符串中单独留下案例?

我正在尝试执行正则表达式搜索并替换Emacs(使用M-x query-replace-regexp),但通常有用的智能案例正在阻碍.我的来源是:

One
Two
Three
Run Code Online (Sandbox Code Playgroud)

我想用相似的东西替换每一行<item name="One"/>.不幸的是,每一行开头的资本都被误解了,我得到<Item>了一个我不想要的大写字母.

我可以找到有关如何使搜索大小写敏感的示例,以及如何\1在替换字符串中保留小写,但没有关于如何保持整个替换字符串大小写 - 未修改.

emacs replace case-sensitive

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

Python:如何访问父模块中声明的变量

使用Python文档中的结构:

sound/
  __init__.py
  effects/
          __init__.py
          echo.py
          surround.py
          reverse.py
Run Code Online (Sandbox Code Playgroud)

说我想要import sound.effects并获得可用效果的列表.我可以在声明模块级变量做到这一点sound.effects,然后当每个.py文件导入追加到它.所以声音/效果/ __ init__.py可能是这样的:

effectList = []
import echo
import surround   # Could write code to import *.py instead
...
Run Code Online (Sandbox Code Playgroud)

从我的主代码我现在可以访问sound.effects.effectList以获取效果列表,但如何effectList从echo.py中访问以进行实际追加?我被困在试图访问变量:

# None of these work :-(
# from . import self
# from .. import effects
# import sound.effects

sound.effect.effectList.append({'name': 'echo'})
Run Code Online (Sandbox Code Playgroud)

python import

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

如何在appveyor.yml中的多行上拆分命令

我想在我的appveyor.yml文件中跨多行分割一个长构建命令,但是我不能让它解包,所以当第一个FOR命令被切断并返回错误时,构建失败.我不确定如何正确分割.yml文件中的行,以便在Appveyor中重新组合它们.如何才能做到这一点?

这是一个简化版本:

build_script:
- cmd: >-
    @echo off
    FOR %%P IN (x86,x64) DO ( ^
      FOR %%C IN (Debug,Release) DO ( ^
        msbuild ^
          /p:Configuration=%%C ^
          /p:Platform=%%P ... ^
        || EXIT 1 ^
      ) ^
    )
Run Code Online (Sandbox Code Playgroud)

我希望它出现在AppVeyor中:

@echo off
FOR %%P IN (x86,x64) DO ( FOR %%C IN (Debug,Release) DO ( msbuild /p:Configuration=%%C /p:Platform=%%P ... || EXIT 1 ) )
Run Code Online (Sandbox Code Playgroud)

额外的空间是不重要的,重要的是从开始FOR直到最后)的线出现在同一条线上.

请注意,从理论上讲,Appveyor也可以看到:

@echo off
FOR %%P IN (x86,x64) DO ( …
Run Code Online (Sandbox Code Playgroud)

yaml appveyor

10
推荐指数
2
解决办法
4019
查看次数

字节序操作 - 有一个C库吗?

有了我编写的程序(使用原始文件数据),我经常需要在大端和小端之间进行转换的函数.通常我自己写这些(这里有许多其他帖子都介绍过),但我并不是因为多种原因而热衷于这样做 - 主要原因是缺乏测试.我真的不想花大量时间在大端模拟器中测试我的代码,而且通常只是省略大端机器的代码.我还希望利用各种编译器提供的更快的功能,同时仍然保持我的程序跨平台.

我能找到的唯一的东西是套接字调用,比如htons(),但是它们在每个平台上需要不同的#include文件,以及一些像这样的 GPL代码,但是这个特定的文件虽然全面,但似乎错过了一些高性能函数由一些编译器提供.

那么,有没有人知道一个经过充分测试的库(理想情况下只是一个.h文件)并提供了一套标准的函数来处理许多编译器和平台的字节序?

c endianness

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

如何在调用其他函数的const和非const函数之间重用代码

在此示例代码中,两个process()函数内的循环是重复的.唯一的区别是一个是const,另一个不是.

有没有办法删除代码重复,这样循环只存在一次?这只是一个例子,但在实际代码中循环非常复杂,因此出于维护原因,我只希望循环存在一次.

#include <iostream>
#include <vector>

typedef unsigned int Item;
typedef std::vector<Item *> Data;

struct ReadOnlyAction {
    void action(const Item *i)
    {
        // Read item, do not modify
        std::cout << "Reading item " << *i << "\n";
    }
};

struct ModifyAction {
    void action(Item *i)
    {
        // Modify item
        std::cout << "Modifying item " << *i << "\n";
        (*i)++;
    }
};

void process(Data *d, ModifyAction *cb) {
    // This loop is actually really complicated, and there …
Run Code Online (Sandbox Code Playgroud)

c++ templates const

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

声明变量而不进行初始化的最佳实践,因此auto不可用

我想声明两个相同类型的变量,并让编译器找出类型.但是我不想在以后初始化其中一个变量.我不认为我可以auto在这里使用,那么最好的选择是什么?

std::vector<int> v;

// `start` and `end` should be the same type
auto start = v.begin();
??? end;

// complicated code to assign a value to `end` (i.e. putting
// the code in a function or using ?: is not practical here)  
if (...) {
    end = ...;
} else {
    end = v.end();
}
Run Code Online (Sandbox Code Playgroud)

什么是告诉编译器end应该是相同类型的最佳方法start,但不必初始化变量?

auto start = v.begin(), end;  // Doesn't work, `end` has to be initialised
decltype(start) end;          // Does work, …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

8
推荐指数
5
解决办法
1559
查看次数

更改git历史记录中所有提交的时区

我正在将旧的CVS存储库转换为git,除了所有提交都是UTC而不是每个作者的本地时区之外,它已经很好地工作了.

我想基于每个作者更改这些提交的时区,因此例如来自一个作者的所有提交从+0000变为+1000,而来自其他作者的提交不变.(所以我可以为每位作者执行一次此程序.)

实际的时刻应保持不变,因此目前02:00:00 +0000应该成为一个提交12:00:00 +1000.

这有可能git filter-branch吗?

git timezone git-filter-branch

8
推荐指数
2
解决办法
665
查看次数

如何更改材质UI输入下划线颜色?

我有一个Select在深色背景上的材质UI 组件,所以对于这个组件我想要更改它,以便文本和线条颜色都是白色.其余的Select实例应保持不变.

虽然我可以让文字和图标改变颜色,但我似乎无法弄清楚如何使用classes道具设置下划线颜色.我的尝试似乎也使打开的图标包裹到下一行.这是一个证明问题的例子:

编辑材料演示

我的风格是这样的:

const styles = theme => ({
  underline: {
    borderBottom: '2px solid white',
    '&:after': {
      // The MUI source seems to use this but it doesn't work
      borderBottom: '2px solid white',
    },
  }
};
Run Code Online (Sandbox Code Playgroud)

然后我将它设置为:

<Select
  classes={{
    underline: classes.underline,     // Does it go here?
  }}
  inputProps={{
    classes: {
      underline: classes.underline,   // Or does it go here?
    },
  }}
>
Run Code Online (Sandbox Code Playgroud)

这个方法适用于文本(上面没有显示,但在链接的例子中),它只是我无法改变的下划线颜色.我错过了什么?

css material-ui

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

获取配置文件的跨平台路径(C/C++)

我想将我的应用程序的设置存储在配置文件中.在Linux(和Mac?)下,这个(可能)是/home/user/.config/app.conf,而在Windows下它可能是"C:\ Documents and Settings\username\Application Data\app.conf".它当然可以存储在其他地方,因此获得正确位置的唯一方法是使用特定于平台的功能.

我只想说我不想冒这个问题自己编写错误(因为我无法访问其中一些平台进行测试),所以有人知道是否有任何经过良好测试的跨平台C/C++库那可以吗?使用一堆#defines的.h/.hpp文件也可以,只要它被广泛使用.

我认为Boost的程序选项库可能(因为它可以加载配置文件),但它似乎无法.

有什么建议?

c++ cross-platform configuration-files

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

PHP:如何将实例变量传递给闭包?

如果要在类中使用闭包,如何从该类传递实例变量?

class Example {
    private $myVar;
    public function test() {
        $this->myVar = 5;
        $func = function() use ($this->myVar) { echo 'myVar is: ' . $this->myVar; };

        // The next line is for example purposes only if you want to run this code.
        // $func is actually passed as a callback to a library, so I don't have
        // control over the actual call.
        $func();
    }
}
$e = new Example();
$e->test();
Run Code Online (Sandbox Code Playgroud)

PHP不喜欢这种语法:

PHP Fatal error:  Cannot use $this as lexical …
Run Code Online (Sandbox Code Playgroud)

php closures

7
推荐指数
2
解决办法
2643
查看次数