小编Ala*_*lan的帖子

通过Emacs,如何将两条线连接成一条线?

我是Emacs的新手.我用谷歌搜索了这个但没有好的答案.其中一个是Ctrl-n Ctrl-a Backspace这有效,但很愚蠢.是否有一种快速简单的方法将一行线加入一行?

实际上,我现在可以使用Esc-q自动填充段落,但是如果没有UNDO,我怎么能让它恢复呢?

emacs editor

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

我什么时候应该使用std :: bind?

每次我需要使用时std::bind,我最终都会使用lambda.那么我std::bind什么时候应该使用?我刚刚从一个代码库中删除它,我发现lambdas总是更简单,更清晰std::bind.是不是std::bind完全没必要?它不应该在将来被弃用吗?我std::bind什么时候应该更喜欢lambda函数?(必须有一个原因,它与lambda一起进入标准.)

我也注意到越来越多的人熟悉lambdas(所以他们知道lambdas做了什么).但是,很少有人熟悉std::bindstd::placeholders.

c++ lambda bind standard-library c++11

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

如何才能完全替代 3.10 中已弃用的 distutils?

根据PEP 632distutils将被正式标记为已弃用,并且在 Python 3.12 中,它将被删除。我的产品很快就会支持 Python 3.10,我不想忍受弃用警告,所以我想删除现在的引用distutils。问题是我找不到好的、全面的文档来系统地让我知道distutils模块 C、D 和 E 中的 A 可以替换为 B。 PEP 中的迁移建议出人意料地粗略,我还没有\没有找到 的标准文档,或者任何需要替换的distutils模块(例如?)的标准文档,这可以让我填补空白。我也不确定如何查看已安装的标准发行版的内容(即物理目录和文件)以便为自己回答这些问题。setuptoolsdistutils

\n

“迁移建议”部分说:

\n
\n

对于这些模块或类型,setuptools是最好的替代品:

\n
    \n
  • distutils.ccompiler
  • \n
  • distutils.cmd.Command
  • \n
  • distutils.command
  • \n
  • distutils.config
  • \n
  • distutils.core.Distribution
  • \n
  • distutils.errors
  • \n
\n

...

\n

对于这些模块或函数,请使用所示的标准库模块:

\n

...

\n
    \n
  • distutils.util.get_platform\xe2\x80\x94 使用platform模块
  • \n
\n
\n

据推测,这意味着setuptools这些模块或类型要么有直接替代品,要么有接近的替代品(尽管我不确定如何验证这一点)。例如,也许setuptools.command.build_py可以替换distutils.command.build_py. 那是对的吗?无论如何,这些又如何呢?

\n
    \n
  • distutils.core.setup
  • \n …

distutils python-3.x

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

setup.py sdist排除子目录中的包

我有以下项目结构我想打包:

??? doc
?   ??? source
??? src
?   ??? core
?   ?   ??? config
?   ?   ?   ??? log.tmpl
?   ?   ??? job
?   ??? scripts
?   ??? test
??? tools
Run Code Online (Sandbox Code Playgroud)

我想包coresrc,但排除test.这是我尝试失败的原因:

      setup(name='core',
      version=version,  
      package_dir = {'': 'src'}, # Our packages live under src but src is not a package itself
      packages = find_packages("src", exclude=["test"]), # I also tried exclude=["src/test"]
      install_requires=['xmltodict==0.9.0',
                        'pymongo==2.7.2',
                        'ftputil==3.1',
                        'psutil==2.1.1',
                        'suds==0.4',
                        ],
      include_package_data=True,
      )
Run Code Online (Sandbox Code Playgroud)

我知道我可以排除test使用MANIFEST.in文件,但如果你能告诉我如何使用setup和,我会很高兴 …

python setuptools

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

使用参数值输入对的缩写 - 为什么cellfun的''UniformOutput',false`工作为'un',0`?

作为频繁使用者cellfun(..., 'UniformOutput', false),我惊讶地发现后两个参数可以输入为cellfun(..., 'un', 0).这立即缩短了我的代码.我的问题是,那里还有其他类似的快捷方式/别名吗?

这似乎没有在MathWorks网站上记录.淘气!

matlab

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

标准库中的boost :: make_transform_iterator相当于什么?

处理const向量时,以下方法不起作用:

const std::vector<std::string> v;
v.push_back("test"); // error: v cannot be modified
Run Code Online (Sandbox Code Playgroud)

相反,您必须在构造它的同一行初始化向量.但是,即使有这个限制,boost::make_transform_iterator也可以在将它们推入v之前轻松地使用另一个vector的元素.在这个例子中,convert是一个返回输入元素的转换版本的一元函数:

auto beg = boost::make_transform_iterator(args.begin(), convert);
auto end = boost::make_transform_iterator(args.end(), convert);

const std::vector<const char*> vc { beg, end };
Run Code Online (Sandbox Code Playgroud)

我已经看了可用的功能<iterator>,但没有看到等效功能.它只是缺失或标准库没有它的原因吗?

c++ boost iterator c++11

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

PHP - "包含"功能是否安全?

我正在使用"include"函数(ex"include'head2.php'"或"include'class.users.php'")在我的网站中添加标题或会话类.我真的不记得在哪里,但我听说黑客滥用,不知何故,这个"包含"的东西,发送虚假的包含页面或类似的东西.所以基本上我想知道什么是"包含"功能,我该如何保护它,它们如何滥用它以及是否有更好的解决方案来满足我的需求.

提前致谢.

php include

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

Emacs中的lgrep和rgrep

我遇到了Emacs中的greps问题.

a)grep似乎不理解.[ch]用于搜索.c和.h文件.这是Emacs使用lgrep命令提供的默认选项.该示例是在.c/.h文件中搜索"global"一词.

grep -i -nH "global" *.[ch]
grep: *.[ch]: No such file or directory

Grep exited abnormally with code 2 at Mon Feb 16 19:34:36
Run Code Online (Sandbox Code Playgroud)

这种格式无效吗?

b)使用rgrep我收到以下错误:

find . "(" -path "*/CVS" -o -path "*/.svn" -o -path "*/{arch}" -o -path "*/.hg" -o -path "*/_darcs" -o -path "*/.git" -o -path "*/.bzr" ")" -prune -o  -type f "(" -iname "*.[ch]" ")" -print0 | xargs -0 -e grep -i -nH "global"
FIND: Wrong parameter format

Grep finished (matches found) …
Run Code Online (Sandbox Code Playgroud)

emacs grep

6
推荐指数
3
解决办法
7102
查看次数

有没有办法在C++中确定Mac stdout是否指向控制台?

不久前,我我如何从Windows上运行的C++程序中确定stdout是否指向控制台.我收到了一个有用的答案:GetConsoleMode().

更新:具体来说,如果stdout指向控制台,则此表达式的计算结果为true:

GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &temp)
Run Code Online (Sandbox Code Playgroud)

现在我正试图在Mac上解决同样的问题.是否有类似的功能,我可以从Mac OS X调用,以确定是否stdout指向控制台?

更新:人们建议使用函数isatty(),它接受文件描述符.在Windows的情况下,该描述符是通过调用GetStdHandle(STD_OUTPUT_HANDLE)获得的.我会isatty(fileno(stdout))按照建议查看我是否可以打电话.

c++ macos

6
推荐指数
0
解决办法
81
查看次数

参数包扩展的"模式"的定义,特别是在函数调用中

据我所知,当包含参数包的模式右侧出现省略号(...)时,模式会对包中的每个参数展开一次.然而,尽管我已经能够通过扩展找到模式的孤立示例,但我无法找到模式构成的定义.从我所看到的,空格在模式的定义中没有任何作用,但是括号有.例如,在此示例中:

template<typename ... Ts>
void func(Ts)
{
    do_something(validate(Ts)...);
}
Run Code Online (Sandbox Code Playgroud)

do_something行将扩展为:

    do_something(validate(var1), validate(var2), validate(var3))
Run Code Online (Sandbox Code Playgroud)

如果Ts碰巧代表三个变量.相比之下:

    do_something(validate(Ts...));
Run Code Online (Sandbox Code Playgroud)

将扩大到:

    do_something(validate(var1, var2, var3));
Run Code Online (Sandbox Code Playgroud)

因此,明确括号与确定模式的开始和结束位置有关.我也可以看到空白没有.但这只能让我到目前为止.我想知道什么构成一个模式,以及它将如何扩展.我尝试搜索C++标准,但发现太多"参数包"实例使其有效.有人可以给我一个"模式"的定义,或定义的链接,或两者兼而有之?

更新:为了限制我的问题的范围,我想集中讨论在函数调用中出现模式的情况.我已经相应地编辑了标题.对不起,我从一开始就没说清楚.

c++ c++11

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