我想在我的launch.json文件中指定用于调试的参数.我知道我可以做到以下几点:
"args": ["--arg1","value","--arg2"]
Run Code Online (Sandbox Code Playgroud)
但是,我有一个很长的参数列表,格式化为空格分隔的字符串.像这样:"--arg1 value --arg2".我尝试指定:
"args": ["--arg1 value --arg2"]
Run Code Online (Sandbox Code Playgroud)
但那没用.现在我的工作流程是获取参数字符串,通过python脚本运行它,将字符串更改为列表并将其复制粘贴到我的launch.json文件中.有一个更好的方法吗?
我试图序列化数千个对象,其中一些对象是lambda对象.
既然cPickle不适用于lambdas,我尝试过使用dill.然而,当解开(或开膛(?))时,计算速度的下降超过10倍.从源头看,似乎内部dill使用pickle可能是速度下降的原因.
对于我来说,还有另一个选项可以结合两个模块的最佳选择吗?
编辑:最显着的速度下降是在unpickleing期间.
是否有一种有效的方法来查找数字的log2,假设它是2的幂.我知道明显的方法,如有一张桌子或
for (log2=0;x!=1;x>>=1,log2++);
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更有效/更优雅的方式.
是否有一种简单的方法可以更改活动窗口的背景颜色,以轻松地区分哪个窗口具有输入?
我知道hiwin-mode(https://github.com/masutaka/hiwin-mode)。但是,此模式很难很好地掌控头盔。
我也知道color-theme-buffer-local(https://github.com/vic/color-theme-buffer-local),我想知道是否可以对其进行定制以实现我想要的功能。
免责声明:我是org-mode的新手.
在组织模式中,我有时会添加额外的空行,以便在扩展时使不同任务之间的分离更加清晰.像这样:
** Task 1
*** Subtask 1.1
text text
*** Subtask 1.2
** Task 2
Run Code Online (Sandbox Code Playgroud)
问题是,当我折叠"任务1"(通过在其行上按C-tab)时,子任务及其内容被正确折叠,但"子任务1.2"的内容也被折叠(即,其下的新行) ).
如果我按"子任务1.2"的线C-标签同时,消息"SUBTREE(没有孩子)"被印刷和"子任务1.2"被正确地不折叠.
这是正常的吗?我可以以某种方式纠正这种行为,以便不折叠空内容吗?
我使用hide-show来折叠文本的某些部分,并使用下面的代码显示隐藏线的数量.
但是,当文件足够大(例如C++或LaTeX)并且我崩溃所有区域(从而创建了数十个叠加层)时,Emacs变得非常缓慢到无法使用的程度.即使将标记从一行移动到另一行也需要半秒钟左右.
有没有办法解决这个问题?
(defun display-code-line-counts (ov)
(overlay-put ov 'display
(format "...%d..."
(count-lines (overlay-start ov)
(overlay-end ov))
))
(overlay-put ov 'face '(:foreground "red" :box (:line-width 1 :style none)))
)
(setq hs-set-up-overlay 'display-code-line-counts)
Run Code Online (Sandbox Code Playgroud)
编辑:原因是emacs变得非常慢是因为linum minor模式创建了数千个(隐藏)叠加层,这些叠加层与hide-show一起折叠.有没有办法来解决这个问题?还是更好的行号模式?
我还在学习Perl,如果这是一个显而易见的问题,请道歉.有没有办法匹配括号内未包含的文本?例如,搜索foo仅匹配第二行.
(bar foo bar)
bar foo (
bar foo
(bar) (foo)
)
Run Code Online (Sandbox Code Playgroud) 有没有办法在STL容器中封装固定大小的C数组?换句话说,假设我有一个arrC大小的C数组size,我想要一个容器(不涉及复制),它使用arrC但实现了常用的函数和迭代器.这是我正在考虑的用例:
int arrC[] = {1,2,3,4,5,6};
auto myarr = c_array(arrC, 6); // The data is not saved internally here, just the pointer and the size
for (auto itr=myarr.begin();itr!=myarr.end();++itr)
std::cout << *itr << std::endl;
Run Code Online (Sandbox Code Playgroud)
当然,我知道这可能是不安全的,因为我可以释放arrC.
编辑:我需要这个的原因是因为我的C++为其他语言(包括Python)提供了一个C接口,我希望能够处理传递给我的C++函数的数据,而不必复制它.
我知道我无法复制a stringstream,但是我想知道是否可以复制它,以便可以使用相似的输出说明符创建两个字符串。
像这样
std::stringstream s1;
s1 << std::scientific << std::setprecision(4);
s1 << 0.01;
// Later on I want to create s2 given s1
std::stringstream s2;
// Copy formatting specifiers from s1 to s2, so that the effect is
// s2 << std::scientific << std::setprecision(4);
s2 << 0.02;
Run Code Online (Sandbox Code Playgroud)
我的原因是我正在编写一个接受字符串流的函数,并且我想在修改字符串流之前了解某些输出的宽度。
我已经看完了stringstream这里的大部分问题,但找不到这个特定案例的答案。
我经常在文件中忘记一些临时代码(用于调试或其他方式),然后提交它们并将这些提交推送到我的远程存储库中。当然,可以通过还原更改来解决此问题,但是我的提交变得混乱不堪,“忘记删除xxx”。
我养成了用“ TEMP”注释标记我的临时代码的习惯。但是是否可以自定义git,以便在文档中找到该单词时会返回警告(或错误)消息?
谢谢
我在头文件中有以下代码
class Bar {
public:
void public_foo();
private:
void private_foo();
};
Run Code Online (Sandbox Code Playgroud)
该实现隐藏在源文件中
void Bar::public_foo(){
private_foo();
}
void Bar::private_foo(){
// Some more stuff
}
Run Code Online (Sandbox Code Playgroud)
我想在头文件中看不到私有函数.做这个的最好方式是什么?我知道两种方式:
1)private_foo创建这样的非成员函数
void private_foo(Bar* this){ /* ... */ }
Run Code Online (Sandbox Code Playgroud)
并public_foo像这样称呼:private_foo(this).这对我来说不是很吸引人,因为它不是特别的OO编程.
2)使用这样的隐藏实现类
// In header
class Bar {
public:
virtual void public_foo();
virtual ~Bar() { };
};
Bar* CreateBar();
// In Source
class Bar_impl : public Bar {
public:
void public_foo();
private:
void private_foo();
};
Bar* CreateBar(){
return new Bar_impl;
}
void …Run Code Online (Sandbox Code Playgroud)