小编Ben*_*oit的帖子

使用vim的-W选项

-w-WVIM的选项具有理论上的效果如下:

-w {scriptout}您输入的所有字符都记录在文件"scriptout"中,直到您退出Vim.如果要创建要与"vim -s"或":source!"一起使用的脚本文件,这将非常有用.当"scriptout"文件已存在时,将追加新字符.另见| complex-repeat |.{scriptout}不能以数字开头.{Vi无此功能}

-W {scriptout}与-w类似,但不附加,覆盖现有文件.{Vi无此功能}

但是当我这样做时,{scriptout}文件将始终以十六进制序列开头80 fd 60(有时是80 fd 62).

我在portableapps.com上使用gvimportable.exe 7.3.使用-u NONE开关,它也是如此.

这个"神奇数字"是什么?在Windows下使用gvim.exe我无法重播我的脚本,直到我删除了这三个前导字节...

似乎这个功能非常有用,但很难记录.

谢谢您的回答.

vim

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

Cmd:不评估循环内的变量

试图制作.bat脚本,并需要让一些字符串正常工作.

这是我到目前为止所得到的

@echo off
for /r %%i in (*.csv) do (
set str=%%i
set str=%str:csv=rar%
echo %%i
echo.%str%
)
Run Code Online (Sandbox Code Playgroud)

假设我已经在C:\中运行,并得到5 csv,1.csv,2.csv ... 5.csv

我第一次运行它,得到输出:

C:\1.csv

C:\2.csv

C:\3.csv

C:\4.csv

C:\5.csv
Run Code Online (Sandbox Code Playgroud)

我第二次得到:

C:\1.csv
csv=rar
C:\2.csv
csv=rar
C:\3.csv
csv=rar
C:\4.csv
csv=rar
C:\5.csv
Run Code Online (Sandbox Code Playgroud)

然后我得到所有后续电话:

C:\1.csv
rar=rar
C:\2.csv
rar=rar
C:\3.csv
rar=rar
C:\4.csv
rar=rar
C:\5.csv
Run Code Online (Sandbox Code Playgroud)

当我期待得到的是直接的:

C:\1.csv
C:\1.rar
C:\2.csv
C:\2.rar
C:\3.csv
C:\3.rar
C:\4.csv
C:\4.rar
C:\5.csv
C:\5.rar
Run Code Online (Sandbox Code Playgroud)

所以我删除了替换:

@echo off
for /r %%i in (*.csv) do (
echo %%i
set str=%%i
echo.%str%
)
Run Code Online (Sandbox Code Playgroud)

第一次运行:

C:\1.csv

C:\2.csv

C:\3.csv …
Run Code Online (Sandbox Code Playgroud)

cmd batch-file

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

如何使用HTML5将1000个记录插入sqlite时加快进程

我是开发HTML5应用程序的新手.在这里我想用HTML5将1000条记录插入sqlite数据库.这个过程非常缓慢.如何在插入记录之前使用BEGIN/COMMIT.以这种方式加快插入.请指导我任何人.提前致谢.请在Chrome浏览器中运行此示例.这是供您参考的代码:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
var msg;
//db.transaction(function(tx){tx.executeSql("BEGIN",[]);});
for(var i=0;i<1000;i++)
{
    txquer(i,"test");
}
//db.transaction(function(tx){tx.executeSql("COMMIT",[]);});
db.transaction(function (tx) {
  tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
   var len = results.rows.length, i;
   msg = "<p>Found rows: " + len + "</p>";
   document.querySelector('#status').innerHTML +=  msg;  
 }, null);
});
function txquer(i,test)
{ 
    db.transaction(
    function(tx){
      tx.executeSql('INSERT INTO LOGS (id, log) VALUES (?, ?)',[i,test]);    
    }
    );
} 
</script>
</head>
<body>
<div …
Run Code Online (Sandbox Code Playgroud)

sqlite html5

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

默认情况下,如何使用PRAGMA synchronous = OFF让SQLite更快地运行

我刚从命令行创建了一个新的SQLite数据库,并且我有一个到SQLite数据库的ODBC连接.
如果我发出查询,默认情况下,同步似乎是"开启",这实际上是在减慢INSERT性能的大时间.

如何在PRAGMA synchronous = OFF 不需要发送SQL命令的情况下将SQLite数据库设置为默认值?我可以创建一个.INI文件或其他东西来启用它吗?

database sqlite

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

如何在Vim中设置元功能键组合?

我需要在非gui模式下重新定义Vim的键盘映射.

我根本不明白为什么以下命令不起作用:

:set <M-F5>=^[[15~

"E518: Unknown option: <M-F5>=^[[15~"
Run Code Online (Sandbox Code Playgroud)

而单独F5键或Meta与非功能键的映射确实有效:

:set <F5>=^[[15~

"ok"

:set <M-space>=^[[15~

"ok"
Run Code Online (Sandbox Code Playgroud)

如何用Vim中的功能键F1-F12重新定义Alt/Meta?

Thx提前.

大卫

更新:问题更 正在我的.vimrc中,我有以下键组合映射

autocmd Filetype python noremap <buffer> <silent> <M-F9> :w !pylint -E %<CR>
Run Code Online (Sandbox Code Playgroud)

但它只适用于gVim.遗憾的是,它不适用于非gui版本的Vim,因为Vim接收转义序列"^ [[20~"而不是直接的Meta-F9键码.

vim

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

Visual Studio可以记住我的源文件的MD5,以避免在时间戳更改但不是内容时重建它们吗?

大部分时间我在同一个项目上做了几个不同的开发,并且为了在它们之间进行一些逻辑分离,我在一个项目中使用个人版本控制系统(即化石,但这太过细节了).

这允许我在不同的分支中提交我的工作,以便之后合并它们.与此同时,我维护了一个行李箱分支,我在那里承担了同事的工作.

但是,当我从一个分支切换到另一个(以便执行例如一些合并行动),并回到我来自哪里时,Visual Studio来将检测时间戳修改和重建还没有真正被修改的文件.

有没有办法要求Visual Studio在其内容的某些哈希值发生更改时考虑源文件已更改?

由于答案似乎是"不",这是实现我想要的另一种方式,为此我开始赏金.请继续阅读以上内容.

您知道一种简单的方法来获取源文件的时间戳和MD5哈希值的快照,然后,对于时间戳更改的每个文件,如果MD5没有更改,则比较MD5和回滚时间戳修改?

谢谢您的回答.

build-process visual-studio-2010 visual-studio

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

awk stumper:字段内的正则表达式替换

我是awk的新手,我似乎无法想出这个.如何使用正则表达式替换单个字段?

在perl中,我可以将感兴趣的字段分配给变量,然后$myvar =~ s/foo/bar/g.当然在perl中我也必须自己进行现场管理,这在awk中更容易.

对于刚才的问题,它是欧洲的货币记录,我想在金额字段中将逗号更改为期间.但是我只需要定位那个字段,所以我不会破坏其他字段,其中逗号可以用作散文标点符号.

解决方案比我想象的更困难吗?还是更简单?我是否必须更改记录分隔符或类似的东西?

谢谢您的帮助!

regex awk

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

SELECT*FROM TABLE(流水线函数):我可以确定结果中行的顺序吗?

在下面的示例中,我将始终获得"1,2",或者是否可以获得"2,1"并且您能告诉我您在文档中的哪个位置可以保证它是否存在?

如果答案是肯定的,那就意味着没有ORDER BYORDER SIBLINGS没有办法确定SELECT语句中的结果集顺序.

CREATE TYPE temp_row IS OBJECT(x number);
/

CREATE TYPE temp_table IS TABLE OF temp_row;
/

CREATE FUNCTION temp_func
RETURN temp_table PIPELINED
IS
BEGIN
    PIPE ROW(temp_row(1));
    PIPE ROW(temp_row(2));
END;
/

SELECT * FROM table(temp_func());
Run Code Online (Sandbox Code Playgroud)

谢谢.

oracle plsql pipelined-function

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

在C编程中需要有关malloc的帮助.它分配的空间比预期的多

让我先说一下,我是一个新手,我在学校的入门级C班.

我正在编写一个程序,要求我使用malloc和malloc在所有情况下分配8倍我期望的空间.即使只是对malloc(1),它是分配8个字节而不是1,我很困惑为什么.

这是我测试过的代码.这应该只允许输入一个字符加上转义字符.相反,我可以输入8,所以它是分配8 bytes而不是1,即使我只使用一个整数,也是如此malloc().请忽略该x变量,它在实际程序中使用,但不在此测试中.:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main (int argc ,char* argv[]){

    int x = 0;
    char *A = NULL;
    A=(char*)malloc(sizeof(char)+1);
    scanf("%s",A);
    printf("%s", A);
    free(A);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c malloc

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

在Visual 2010中使用lambda函数和枚举的C2665,它是一个bug还是正常的?

我可以得到以下代码来编译:

enum E {a, b, c};
void f()
{
    E e;
    std::function<void()> f = [&]() { e = a; };
} 
Run Code Online (Sandbox Code Playgroud)

但不是以下一个:

void f()
{
    enum E {a, b, c};
    E e;
    std::function<void()> f = [&]() { e = a; };
} 
Run Code Online (Sandbox Code Playgroud)

发出以下编译器错误:

1>test.cpp(5): error C2665: '`anonymous-namespace'::<lambda1>::<lambda1>' : none of the 2 overloads could convert all the argument types
1>          test.cpp(5): could be '`anonymous-namespace'::<lambda1>::(f::E &,f::E &)'
1>          while trying to match the argument list '(f::E, f::E)'
Run Code Online (Sandbox Code Playgroud)

这个错误是可以预料的还是一个错误?

c++ lambda visual-studio-2010 visual-c++ c++11

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