小编tho*_*i56的帖子

我可以使用类定义覆盖#id ul li行为

我有一个由#id标识的区域,并且有一个像:

#id ul li {
    margin:0;
}
Run Code Online (Sandbox Code Playgroud)

对于该领域的特定UL,我可以覆盖边距设置吗?我知道#id在评估格式时会产生非常高的优先级.

我试过了:

.myclass ul li {
    margin-left: 20px;
}
Run Code Online (Sandbox Code Playgroud)

#id ul.myclass {
Run Code Online (Sandbox Code Playgroud)

以及

#id li.myclass {
Run Code Online (Sandbox Code Playgroud)

它甚至可能吗?

css css-selectors

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

如何在Eclipse中区分同一文件的两个区域

我是TDDer,经常需要重构常见或类似的代码.类似的代码并不总是复制和粘贴的结果.

我不是在寻找识别区域或可疑重复的工具,有很多工具可以做到这一点.如果代码完全相同没有大问题,Eclipse几乎总能自己做到这一点.

我正在寻找工具来可视化完全不同的代码部分的差异,但我的人眼可以看到结构上的相似性,并且可能更加相似,以便最终可以将公共代码考虑在内.

如果有可能标记两个区域并获得Eclipse(或其他工具)来标记差异,那将非常方便.利用这些信息,迭代地移动区域直到它们相同然后激活提取方法重构将更加简单.

它当然可以在Emacs中完成,但我想从Eclipse中随时可以获得.有什么指针吗?

eclipse diff refactoring extract

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

为什么tput中既有setf/setb又有setaf/setab?

我正在尝试使用tput以独立于设备的方式在终端中设置前景色和背景色.

如果termcap/terminfo/tput的整个目的是与设备无关,那么为什么两个版本都明确使用ANSI控件(setaf/setab)和那些不应该(不应该)的版本?

这个讨论引用了terminfo(5),它反过来引用了明确表示那些分别用ANSI而不是ANSI实现的标准.

为什么不存在setf/setb,它们总是设置前景色和背景色.我不在乎它是怎么做的,这就是我使用tput的原因!

unix terminal colors terminfo ansi-colors

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

使用CMake获取目标文件名而无需扩展名

如何使用CMake获取目标库的基本名称?

我正在使用CMake变量名$ {lib}创建一个库,如下所示:

set(lib lib)
add_library(${lib} ...
Run Code Online (Sandbox Code Playgroud)

我需要生成的库文件的基本名称。

CMake将使用文件名创建库,<prefix>lib.<extension>其中<prefix><extension>都是平台特定的。

我已经尝试过使用生成器$<TARGET_FILE_NAME:${lib}>给我全名,它可以工作,因为我需要在COMMAND中使用它,这是CMake允许生成器的少数几个地方之一。

要使用CMake删除扩展名,我需要使用GET_FILENAME_COMPONENT,如

GET_FILENAME_COMPONENT(<var> <filename> NAME_WE)
Run Code Online (Sandbox Code Playgroud)

但这用于设置变量<var>(以常规CMake方式),并且生成器在那里不起作用。

(如果您问我,CMake语言是不规则的可恶。从概念上讲,CMake非常酷。)

cmake

6
推荐指数
2
解决办法
6420
查看次数

可视化 C 结构依赖项

在大型 C 项目中,有许多structs 具有其他structs 或指向它们的指针作为字段。我想创建一个有向图来显示“类型”之间的依赖关系。一个例子是

typedef struct javaStat {
    int idNo;
    struct idIdentList *className;
    struct typeModifiers *thisType;
    struct symbol thisClass;
} ...
Run Code Online (Sandbox Code Playgroud)

由此我想生成一个 DOT 结构,它看起来像

digraph {
    javaStat -> idIdentList
    javaStat -> typeModifiers
    javaStat -> symbol
}
Run Code Online (Sandbox Code Playgroud)

或者,使用 DOT 简写:

digraph {
    javaStat -> {idIdentList typeModifiers symbol}
}
Run Code Online (Sandbox Code Playgroud)

当然,可以手动添加第一行和最后一行,因此主要问题是将结构引用转换为图形“指针”行。

在这一点上,我对第一级解决方案感到满意,这意味着可以忽略更深的嵌套。

我首先尝试了一个简单的方法grep struct *.h,它产生了一些可行的方法:

typedef struct javaStat {
    struct idIdentList *className;
    struct typeModifiers *thisType;
    struct symbol thisClass;
typedef struct <next struct> {
Run Code Online (Sandbox Code Playgroud)

这是一个简单的问题,它是由Python的几行就可以解决,但是否有其他方便的解决方案,可能使用sed, …

c struct dot

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

为什么CDT在不相关的项目中重建我的C项目?

我有一个Eclipse工作区,CDT项目与其他不相关的项目一起存在.但是,当我在其中一个项目中运行"build as Ant build"时,CDT也坚持重建其项目.

任何人有任何想法在哪里寻找断开这种"隐藏"的依赖?(不,它不在"链接资源"或"项目参考"中......)

eclipse ant dependencies build eclipse-cdt

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

我如何告诉外壳它正在Emacs中运行?

我有一个程序使用ansi终端代码来执行一些花哨的工作,例如在终端中运行时擦除行。当从Emacs内部运行时,显然会弄乱缓冲区。

该程序有一个不使用这些选项的选项,因此我希望能够在Emacs中的shell中运行时打开该选项。

我从终端或在Emacs中使用编译模式将此程序作为Makefile的一部分执行。

那么,有没有一种方法可以让编译模式设置一个环境变量(或类似的变量),以便在合适的情况下很容易在Makefile中捕获它以使用该选项?

我试图避免在make命令中手动添加一个额外的参数(无论哪种情况)。

emacs environment-variables

4
推荐指数
2
解决办法
1054
查看次数

“流星测试”未获取* .test [s] .js

我使用的是Meteor 1.7.0.3,想编写单元测试。

我有tests/main.js一些meteor test --driver-package meteortesting:mocha --once从命令行运行的测试标准。

但是,my.tests.js无论放在哪里,都不会拾取名为的新文件中的代码。

流星测试指南明确指出

  1. 切切希望在我们的应用程序中加载任何看起来像.test [s]的文件(包括导入/文件夹中的文件).spec [s]。

我错过了一些配置吗?

unit-testing meteor

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

.class-name是什么意思作为CSS选择器?

所以,如果我有一个名为"class-name"的CSS类,以下是什么意思?

.class-name {
  margin: 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么,如果我有以下HTML

<div id="some-id">
    <ul>
        <li class="class-name">
    ...
Run Code Online (Sandbox Code Playgroud)

是选择器

#some-id .class-name ul li
Run Code Online (Sandbox Code Playgroud)

不存在?

css css-selectors

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

如何使 Make *not* 打印“目标配方失败?

我正在为一系列编译构建一个 Makefile,以显示用于与教程中的示例同步的渐进式输出差异。其中一些运行会生成错误代码,但由于这是“问题”定义的一部分,因此当目标失败时,由 make (“ Makefile:15: recipe for target `run3' failed ”)输出的消息有点进入道路。

我知道忽略错误代码,但是否可以抑制该输出?最好在 Makefile 中。

在类似的说明中,是否可以抑制从 Makefile 中进入和离开子目录的消息(相当于“--no-print-directory”)?

而且,是的,我对 GNU Make 的回答感到满意。

makefile gnu-make

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

在Python字符串替换中使用星号字符(*)作为小丑?

我是 python 的初学者,目前正在努力解决一些问题:

我想在一个字符串中进行一些更改。是否可以使用单个星号 (*) 作为几个字符的替代小丑?例如我有一个字符串:

string1 = "The new year is about to become an old year"
Run Code Online (Sandbox Code Playgroud)

我想使用这种模式来查找:

find:
*year*year*

replace it with:
*century*one*
Run Code Online (Sandbox Code Playgroud)

这将导致:

string1 = "The new century is about to become an old one"
Run Code Online (Sandbox Code Playgroud)

意思是“*”字符将替换“year”和“year”单词之间和之前的所有字符。那可能吗?

python regex string replace

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

为什么`project()`会影响CMake对`CMAKE_SIZEOF_VOID_P`的看法?

对于我的 CMake 项目,我想构建 32 位和 64 位版本的库,并使用 CMake 将它们安装在正确的位置。

但是,即使我使用该GNUInstallDirs模块,CMake 也不会将库安装在正确的位置。

我已经将问题追溯到project()影响 void* 大小的事实,这看起来很奇怪。(GNUInstallDirs 使用`CMAKE_SIZEOF_VOID_P)。

使用以下 CMakeLists.txt:

cmake_minimum_required(VERSION 3.7)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
    message (STATUS "CMake think we are compiling for 64-bit")
else ()
    message (STATUS "CMake think we are compiling for something not 64-bit")
endif()
Run Code Online (Sandbox Code Playgroud)

结果是“CMake 认为我们正在编译 64 位”。

但是如果我添加

project(x)
Run Code Online (Sandbox Code Playgroud)

最后,CMake 输出“CMake 认为我们正在编译非 64 位的内容”。

是什么在project()改变这一点,我怎样才能避免这种情况?

installation cmake

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

C 中使用 * 作为通配符匹配字符串

我了解那里的正则表达式实现,包括广泛用于 C 的 POSIX 版本。但是,它并非在所有地方都可用。而且我不需要完整的正则表达式表达能力。

因此,我正在寻找一种简单的方法来使用单个通配符“*”来匹配单个 C 字符串。例如

a*, b*c, *d

其中“*”表示匹配任意数量的字符。

c regex wildcard

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