小编Dop*_*ger的帖子

vim"用sudo写"技巧如何工作?

很多人可能已经看到了允许你在需要root权限的文件上写的命令,即使你忘了用sudo打开vim:

:w !sudo tee %
Run Code Online (Sandbox Code Playgroud)

问题是我不知道这里到底发生了什么.

我已经想到了这个: w是为了这个

                                                        *:w_c* *:write_c*
:[range]w[rite] [++opt] !{cmd}
                        Execute {cmd} with [range] lines as standard input
                        (note the space in front of the '!').  {cmd} is
                        executed like with ":!{cmd}", any '!' is replaced with
                        the previous command |:!|.
Run Code Online (Sandbox Code Playgroud)

所以它将所有行作为标准输入传递.

!sudo tee部件tee使用管理员权限调用.

为了让所有人有意义,%应输出文件名(作为参数tee),但我找不到有关此行为的帮助的参考.

tl; dr有人可以帮我剖析这个命令吗?

vim sudo

1347
推荐指数
7
解决办法
35万
查看次数

Python vs Bash - 在哪种任务中,每个人都会以其他方式表现出来?

显然Python更加用户友好,谷歌快速搜索显示许多结果,因为Python字节编译通常更快.我甚至发现一点声称你可以看到基于字典的操作有超过2000%的改进.

你对这件事的经历是什么?在哪种任务中,每个人都是明显的赢家?

python bash performance

85
推荐指数
9
解决办法
9万
查看次数

Python argparse:有没有办法在nargs中指定范围?

我有一个可选参数,支持一个参数列表本身.

我的意思是,它应该支持:

  • -f 1 2
  • -f 1 2 3

但不是:

  • -f 1
  • -f 1 2 3 4

有没有办法在argparse中强制执行此操作?现在我使用nargs ="*",然后检查列表长度.

编辑:根据要求,我需要的是能够定义一系列可接受的参数.我的意思是,说(在例子中)2或3个args是正确的,但不是1或4或任何不在2..3范围内的东西

python argparse

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

为什么golang比scala慢?

在这个测试中,我们可以看到golang的性能有时比scala慢得多.在我看来,由于golang的代码直接编译为c/c ++兼容的二进制代码,而scala的代码被编译为JVM字节代码,golang应该具有更好的性能,特别是在基准测试的这些计算密集型算法中.我的理解不正确吗?

http://benchmarksgame.alioth.debian.org/u64/chartvs.php?r=eNoljskRAEEIAlPCA48ozD%2Bb1dkX1UIhzELXeGcih5BqXeksDvbs8Vgi9HFr23iGiD82SgxJqRWkKNctgkMVUfwlHXnZWDkut%2BMK1nGawoYeDLlYQ8eLG1tvF91Dd8NVGm4sBfGaYo0Pok0rWQ%3D%3D&m=eNozMFFwSU1WMDIwNFYoNTNRyAMAIvoEBA%3D%3D&w=eNpLz%2FcvTk7MSQQADkoDKg%3D%3D

performance scala go

20
推荐指数
4
解决办法
3万
查看次数

Python错误:ImportError:无法导入名称Akismet

我见过很多类似的错误,但我看不到适用于我的特定问题的解决方案.

我正在尝试使用我的PYTHONPATH上的Akismet模块,然后如果我启动交互式解释器,当我运行时 from akismet import Akismet(如docstring所说),我收到以下错误:

from akismet import Akismet
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name Akismet
Run Code Online (Sandbox Code Playgroud)

python environment-variables python-import

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

我可以用Java中的文件构建结果集吗?

我没有太多使用结果集的经验,但由于ResultSet是一个接口,我想我可以实现它来处理文件作为后端.这是胡说八道吗?我的问题已经解决了吗?

java csv jdbc resultset text-files

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

如何将包含多个搜索和替换的宏保存到我的.vimrc中

我有一个宏用于替换其html实体的特殊字符.我想将它保存在我的.vimrc中.

根据这个,我应该使用let @ r =' macro_text_goes_here '.问题是我的宏是一系列搜索和替换,如下所示:

:%s:á:\&aacute;:Ige
:%s:é:\&eacute;:Ige
:%s:í:\&iacute;:Ige
Run Code Online (Sandbox Code Playgroud)

所以,我尝试使用实际换行符使用^ V-enter,<enter>,<CR>,但它永远不会有效.另一方面,如果我将文本放在寄存器上然后运行宏,它按预期工作.

vim macros replace multiline

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

AttributeError:'module'对象在运行cProfile时没有属性'maketrans'

使用python 2.7我收到此错误:

    Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/cProfile.py", line 199, in <module>
    main()
  File "/usr/lib/python2.7/cProfile.py", line 165, in main
    from optparse import OptionParser
  File "/usr/lib/python2.7/optparse.py", line 77, in <module>
    import textwrap
  File "/usr/lib/python2.7/textwrap.py", line 32, in <module>
    class TextWrapper:
  File "/usr/lib/python2.7/textwrap.py", line 74, in TextWrapper
    whitespace_trans = string.maketrans(_whitespace, ' ' * len(_whitespace))
AttributeError: 'module' object has no attribute 'maketrans' …
Run Code Online (Sandbox Code Playgroud)

python profiler

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

无法获得与javascript长度相关的正则表达式

我正在尝试编写一个Javascript正则表达式,匹配少于3个字母的单词(并且不匹配更长的单词).我不明白为什么这不起作用.

<html>
        <body>
                <script>
                var re = new RegExp("(\W|^)\w{0,2}(\W|$)", "gi");
                var text = "ab ab";
                var matched = re.test(text);
                document.write(matched)

                </script>
        </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我试图得到一个最小的例子,但我有更多的要求,如果示例不完整,我将编辑并添加任何必要的.

javascript regex

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

使用值接收器附加到具有足够容量的切片

有人可以帮助我理解这里发生了什么吗?

package main

import (
    "fmt"
)

func appendString(slice []string, newString string) {
    slice = append(slice, newString)
}

func main() {
    slice := make([]string, 0, 1)
    appendString(slice, "a")
    fmt.Println(slice)
}
Run Code Online (Sandbox Code Playgroud)

我了解切片头以及使用指针接收器的需要。但在这里,由于底层数组有足够的容量,我希望追加能够正常工作(只需将新值添加到底层数组中,原始的[复制]标头按预期工作)

我的假设有什么问题吗?

pointers append go slice

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