小编Neh*_*kar的帖子

在Vim中如何在.h和.cpp文件之间快速切换同名?

假设我有一个包含大量.h和.cpp文件的文件夹.我经常需要做以下事情:

  1. 打开一个文件prefix_SomeReallyLongFileName.h,
  2. 做一些改变,
  3. 然后打开prefix_SomeReallyLongFileName.cpp.

我可以:e <filename>使用自动完成来完成此操作,但由于许多文件的前缀相同,因此变得不方便.

有没有一种快速方法可以打开与当前文件同名的文件,但是有不同的扩展名?

其他人是否也会遇到这种情况,如果是这样,您在目录中导航C++文件的首选方式是什么?谢谢.

vim

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

如何断言C++ 11应该用于编译我的程序?

我想在我的程序中使用一些C++ 11功能.我将来可能不得不与其他人分享我的源代码.如何在代码中声明C++ 11应该用于编译我的程序?较旧的编译器可能会抛出错误,但我希望用户能够清楚地知道需要C++ 11.

我正在使用以下C++ 11功能,如果这很重要:

  • 指定存储大小的枚举
  • std共享指针

谢谢

c++ c++11

11
推荐指数
3
解决办法
1307
查看次数

Gnu Parallel:嵌套并行

是否可以在脚本的多次运行中调用gnu parallel,而这些脚本又由gnu parallel生成?

我有一个运行100次连续迭代的python脚本,并且在每次迭代中的某个地方,并行计算4个值(使用gnu parallel).现在我想同时使用gnu parallel生成多个这样的脚本.这可能吗?gnu parallel会不会好好利用可用内核?

例如,如果在内部循环中,4个值中有2个已完成且2个正在运行,那么在计算所有4个值之前,单个脚本无法继续下一次迭代.这两个免费核心是否会用于自动计算不同脚本运行的结果?如何指定可用的核心总数?在内部呼叫并行或外部呼叫?

这个问题表明可以将调用嵌套到并行中,但是当我从脚本内部调用嵌套并行时,我不确定这是否会发生变化.

PS:Thrashing不是一个问题,我可以使用大型集群中的大量核心.

PS2:gnu-parallel是一款非常棒的工具......谢谢!:)

parallel-processing gnu-parallel

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

从Python脚本调用scons

我是scons和Python的新手.我想知道是否有办法在python脚本中调用scons.

我的python脚本从用户接受一个目录列表,其中要编译的代码位于其中(除了执行其他一些非平凡的事情).它还生成一个字符串,用作scons创建的可执行文件的名称.

我想将这些信息从我的python脚本传递给scons,然后调用scons.有一个简单的方法吗?

我可以想到以下几种可能性:

  • 使用subprocess.call("scons"...)我不确定scons是否接受我需要传递的所有信息作为命令行参数
  • 让python脚本写入文件.让SConscript解析文件并获取传递的信息.

python scons

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

在Vim中如何在两个文件之间跳转

我需要在Vim中的两个文件之间来回跳转.

我可以手动执行此操作,:e file1.txt然后按:e file2.txt.是否有直接跳转到以前打开的文件的快捷方式?

注意:我不想在拆分窗口或多个选项卡中打开这两个文件.

我正在寻找类似的东西[ctrl + o],只有跳转应该是以前的文件,而不是以前的位置在同一个文件中

谢谢你的任何提示

vim

7
推荐指数
4
解决办法
2056
查看次数

多个进程共享一个Joblib缓存

我正在使用Joblib在我的python脚本中缓存计算成本高昂的函数的结果.函数的输入参数和返回值是numpy数组.缓存适用于我的python脚本的单次运行.现在我想并行生成我的python脚本的多个运行,以便在实验中扫描一些参数.(函数的定义在所有运行中保持相同).

有没有办法在多个并行运行的python脚本之间共享joblib缓存?这将节省许多功能评估,这些功能评估在不同的运行中重复,但不会在单次运行中重复.我在Joblib的文档中找不到这是否可行

python caching numpy joblib

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

使用shell脚本杀死vim进程会留下.swp文件

我开发了一个脚本来杀死处理xxx.log文件的所有'vim'进程:

ps -ef|grep vim|grep xxx.log|awk '{print $2}'|xargs kill -9
Run Code Online (Sandbox Code Playgroud)

但是,每个vim实例都会保留.swp(swap)文件.如何在同一个脚本中删除交换文件,或者其他一些简短的解决方案,而无需搜索交换位置等?

linux vim bash shell

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

使用 antlr 和 line 指令插入 C++ 代码

我正在使用 antlr 将自定义语言转换为 C++ 代码。在这种语言中,用户可以在$code...$endcode指令之间嵌入 C++ 代码片段,按原样插入到翻译后的 C++ 代码中。

我有以下问题:当代码片段中有错误时,我希望编译器指向源文件而不是翻译后的 C++ 代码。

我尝试按如下方式使用行指令,但没有奏效:

"foo.custom_laguage"
1 $code
2 ...some c++ code...
3 $endcode
Run Code Online (Sandbox Code Playgroud)

被翻译成

"auto-generated.cpp"
42 #line 2 "foo.custom_language"
43 ...some c++ code...
44 #line __LINE__ __FILE__
Run Code Online (Sandbox Code Playgroud)

这不起作用,我认为是因为 #line 指令会修改__LINE__宏稍后写入的内容。如何将行号设置回已翻译的 C++ 代码中的实际行号?antlr 是如何做到这一点的?

这是我希望自动生成的代码的样子:

"auto-generated.cpp"
42 #line 2 "foo.custom_language"
43 ...some c++ code...
44 #line 44 "auto-generated.cpp"  //actual line in this file
45 ..some more C++ code ...
Run Code Online (Sandbox Code Playgroud)

编辑: 我刚刚发现有一种方法可以通过使用#line default指令在 C# 语言中做到这一点: …

c++ translation antlr

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

Core i7中每核L2和L3之间的互连

英特尔酷睿i7具有每核L1和L2高速缓存以及大型共享L3高速缓存.我需要知道哪种互连将多个L2连接到单个L3.我是学生,需要编写缓存子系统的粗略行为模型.它是横梁吗?一辆公共汽车?戒指?我遇到的参考文献提到了缓存的结构细节,但没有一个提到存在什么样的片上互连.

谢谢,

-neha

x86 computer-architecture cpu-cache

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

在gnu并行文件I/O.

我有一个程序只需一个参数.我正在使用gnu parallel来对此参数执行参数扫描.每次运行都会生成一个结果,我想将所有结果附加到单个文件中,比如Results.txt.

这样做的正确方法是什么?

我不应该让每个实例打开文件并写入它,因为这可能会产生冲突并且还会破坏结果的顺序.我能想到这样做的唯一方法是让每个运行在具有唯一名称的文件中生成其输出,然后,当gnu并行完成运行时,使用脚本将结果合并到单个文件中.

  1. 有没有更简单的方法来实现这一目标?
  2. 当多个实例写入/读取同一文件时会发生什么?gnu并行创建多个副本,每个实例一个副本,就像stdout和stderror一样吗?

谢谢

parallel-processing file-io gnu-parallel

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