小编Vin*_*vic的帖子

如何用Vim中的换行符替换字符?

我正在尝试用,新行替换当前文件中的每个:

:%s/,/\n/g 
Run Code Online (Sandbox Code Playgroud)

但它插入的内容看起来像是一个^@而不是实际的换行符.该文件不是DOS模式或任何东西.

我该怎么办?

如果你像我一样好奇,请检查问题为什么\ raim的换行?同样.

vi vim replace newline escaping

1870
推荐指数
11
解决办法
75万
查看次数

为什么\ raim的换行?

问题如何在Vim中替换换行符?.替换新行的文本时必须使用\ r,如下所示

:%s/%/\r/g
Run Code Online (Sandbox Code Playgroud)

但是当替换字符的行尾和换行符时,您可以这样做:

:%s/\n/%/g 
Run Code Online (Sandbox Code Playgroud)

手册的哪一部分记录了这些行为,以及它们背后的原因是什么?

vim

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

何时/为何在SQL Server中使用级联?

在SQL Server中设置外键时,在什么情况下应该在删除或更新时级联它,背后的原因是什么?

这可能也适用于其他数据库.

我最关注每个场景的具体例子,最好是那些成功使用它们的人.

sql-server rdbms database-design cascade foreign-keys

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

从python中的字符串中剥离不可打印的字符

我用来跑

$s =~ s/[^[:print:]]//g;
Run Code Online (Sandbox Code Playgroud)

在Perl上摆脱不可打印的字符.

在Python中没有POSIX正则表达式类,我不能写[:print:]让它意味着我想要的东西.我知道在Python中无法检测字符是否可打印.

你会怎么做?

编辑:它也必须支持Unicode字符.string.printable方式很乐意将它们从输出中剥离出来.对于任何unicode字符,curses.ascii.isprint都将返回false.

python string non-printable

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

随机数生成最安全的种子是什么?

种子随机数生成器最安全的熵源是什么?此问题与语言和平台无关,适用于网络上的任何计算机.理想情况下,我正在寻找托管公司提供的云环境或服务器中的计算机可用的源.

要牢记两个重要的弱点.使用时间发送随机数发生器违反了CWE-337.使用小种子空间将违反CWE-339.

security random cryptography

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

C#(.NET 2.0)中Windows的进程间通信

我以前从未在Windows上做过IPC.目前我正在开发一对程序,一个标准的GUI/CLI应用程序和一个Windows服务.该应用程序必须告诉服务该做什么.因此,假设通信只是本地通信,那么这两个进程的最佳通信方法是什么?

最好的地方被定义为更健壮,更不容易出错,不是最高性能也不是最容易编码.

代码示例将非常受欢迎,但不是必需的:-)

注意我只是询问使用什么,标准TCP套接字,命名管道或其他一些通信方式.

谢谢!

.net c# ipc

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

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

用于Python的XML编写工具

我正在尝试使用ElementTree,它看起来很好,它可以逃脱HTML实体等等.我错过了一些我没听说过的真正精彩的东西吗?

这与我实际做的类似:

import xml.etree.ElementTree as ET
root = ET.Element('html')
head = ET.SubElement(root,'head')
script = ET.SubElement(head,'script')
script.set('type','text/javascript')
script.text = "var a = 'I love á letters'"
body = ET.SubElement(root,'body')
h1 = ET.SubElement(body,'h1')
h1.text = "And I like the fact that 3 > 1"
tree = ET.ElementTree(root)
tree.write('foo.xhtml')

# more foo.xhtml
<html><head><script type="text/javascript">var a = 'I love &amp;aacute;
letters'</script></head><body><h1>And I like the fact that 3 &gt; 1</h1>
</body></html>
Run Code Online (Sandbox Code Playgroud)

python xml xhtml

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

为非现有网络共享加速File.Exists

我必须检查一组文件路径是否代表现有文件.

它工作正常,除非路径包含不在当前网络上的计算机上的网络共享.在这种情况下,超时需要很长时间(30或60秒).

问题

  • 有没有办法缩短非现有网络共享的超时?(我确信当他们确实存在时他们会很快回答,所以超时1秒就可以了)

  • 有没有其他方法可以解决这个问题,而无需开始缓存并使算法更复杂?(即,我已经知道这些X网络共享不存在,跳过其余的匹配路径)

更新:使用线程工作,但不是特别优雅

public bool pathExists(string path) 
{
    bool exists = true;
    Thread t = new Thread
    (
        new ThreadStart(delegate () 
        {
            exists = System.IO.File.Exists(path); 
        })
    );
    t.Start();
    bool completed = t.Join(500); //half a sec of timeout
    if (!completed) { exists = false; t.Abort(); }
    return exists;
}
Run Code Online (Sandbox Code Playgroud)

此解决方案避免了每次尝试需要一个线程,首先检查哪些驱动器可以访问并将其存储在某处.


专家交换解决方案:

首先,您可以在IsDriveReady函数中设置"超时"值.我把它设置为5秒,但设置它适合任何适合你的.

下面使用3种方法:

  1. 第一个是WNetGetConnection API函数,它获取驱动器的UNC(\ servername\share)
  2. 第二个是我们的主要方法:Button1_Click事件
  3. 第三个是ping服务器的IsDriveReady功能.

这对我很有用!干得好:

'This API Function will be used to get the UNC of the drive
Private Declare Function WNetGetConnection Lib …
Run Code Online (Sandbox Code Playgroud)

c# networking timeout c#-2.0

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

为什么'''被实现为'as'?

鉴于这是一个非常自然的用例(如果你不知道as实际上是什么),

if (x is Bar) {
   Bar y = x as Bar;
   something();
}
Run Code Online (Sandbox Code Playgroud)

实际上是等效的(也就是说,编译器生成的CIL来自上面的代码将是等价的):

Bar y = x as Bar;
if (y != null) {
    y = x as Bar; //The conversion is done twice!
    something();
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我想我没有说清楚我的问题.我不会写第二个片段,因为它当然是多余的.我声称在编译第一个片段时编译器生成的CIL等同于第二个片段,这是多余的.问题:a)这是正确的吗?b)如果是这样,为什么这样is实施?

这是因为我发现第一个片段比实际写得更好更清晰,更漂亮

Bar y = x as Bar;
if (y != null) {
   something();
}
Run Code Online (Sandbox Code Playgroud)

结论:

优化is/ ascase不是编译器的责任,而是JIT的责任.

此外,与空检查它具有比这两个方案(较少(更便宜)的说明isasiscast).

附录:

与nullcheck一样的CIL(.NET 3.5):

L_0001: ldarg.1 …
Run Code Online (Sandbox Code Playgroud)

.net c# as-keyword

28
推荐指数
4
解决办法
1698
查看次数