小编bqu*_*i56的帖子

在Windows上设置gVim

我试图让gVim在Windows 7机器上工作,并且遇到以下问题:

  • 每当我尝试更改_vimrc文件时,我都会收到一条消息,说我无权保存在此位置.这是我的家用电脑顺便说一句.

  • 我似乎无法更改保存我编辑的文件的目录.目前他们都被保存到我的桌面.我尝试过:将dir = path设置为我要保存的位置......但没有成功.

我想通过vimtutor; 但是,每当我将vimtutor键入cmd时,vim会打开一秒钟然后关闭.

如何更改_vimrc文件以及如何为编辑的文件设置目标?

permissions vim windows-7

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

如何逐行评估流

我试图避免创建任何新文件来存储输出,以最大限度地减少覆盖具有相同名称的目录中的内容的风险.我试图用管道评估流中的每一行,而不是输出到文件,然后使用while read line do done < file循环.就像是:

echo -e "1\n2\n3\n4\n5" | #evaluate current line separately#
Run Code Online (Sandbox Code Playgroud)

我能以某种方式将每一行读入数组,然后评估数组中的元素吗?还是有更好的方法来避免意外覆盖文件?

unix bash shell

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

Object.method(o)和o.method()之间的区别

可能重复:
为什么是Object.defineProperty()而不是this.defineProperty()(对象)?

我注意到特定对象的所有方法都可以从实际的对象实例中调用,即,object.method();或者通过将对象Object.method()作为参数传递.例如:

var a = ['one', 2, 3, 'four'];
a.reverse();
// OR
Array.reverse(a);
Run Code Online (Sandbox Code Playgroud)

我似乎得到了同样的行为.我想知道差异是什么,什么时候会用到另一个?

javascript

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

如何循环拆分字符串

如何在某个分隔符上拆分字符串然后循环遍历各个部分?我尝试了一些函数和循环类型但没有成功.我正在努力实现以下目标:

create or replace function splitloop() returns void
as $$
DECLARE
part text;
BEGIN
   foreach part in string_to_array('one,two,three', ',')
   loop
      -- do something with part
   end loop;
END;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

sql postgresql plpgsql

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

哪个<<是我在此声明中的重载运算符?

我有一个重载的<<运算符来自我的reckful类,实现如下:

ostream& operator << (ostream& os, const reckful& p)
{
    os << p.PrintStuff();

    return os;
}
Run Code Online (Sandbox Code Playgroud)

PrintStuff()只是reckful的成员函数,返回一个字符串.

我理解事物的方式,如果我要编写类似cout << reckobject << endl;main()的东西,cout << reckobject将优先使用我的重载<<(使用cout作为左操作数,reckobject作为右操作数)将返回ostream对象os,将表达式保留os << endl;为被评估哪个将输出字符串然后结束该行.那么,第一个<<是我宣布的那个,第二个是标准的<<对吧?

但是,我的主要问题是......事件的顺序是什么,它是左右操作数,以及<<运算符是当我运行这样的语句时:

cout << "reckful object = " << reckobject << "!" << endl;
Run Code Online (Sandbox Code Playgroud)

如果在一个<<的两边都没有ostream对象和一个reckful对象,为什么这个工作?

谢谢.

c++

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

为什么这个递归函数会生成此输出?

我想了解下面打印的程序的输出.当我看到它时,我看到当使用参数1调用printnum()时,将打印"1",然后从1 <7开始,该函数将调用自身.此过程将继续,直到打印"6",然后调用printnum(7).因此,现在打印"7"并且不满足if条件,因此跳过代码并且我们移动到第二个printf("%d",x)函数,其中再次打印出"7".在第二个printf("%d",x)之后没有任何内容,那么为什么一切都没有结束呢?是什么让程序继续按降序再次打印数字?

#include <stdio.h>

int printnum ( int x )
{
  printf("%d", x);

  if ( x < 7 )         
  {
      printnum ( x + 1 );    
  }
  printf("%d",x);         
}

int main()
{
printnum(1);
}
Run Code Online (Sandbox Code Playgroud)

输出:

12345677654321

c

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

这些类型是什么?

我正在阅读有关元组的boost文档,并遇到了以下有效的元组实例化(A,B和C是一些用户定义的类):

tuple<A, int(*)(char, int), B(A::*)(C&), C>
Run Code Online (Sandbox Code Playgroud)

我无法理解第二和第三参数的类型是什么.究竟是什么int(*)(char, int)B(A::*)(C&)类型?

c++

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

基类中重载的输出运算符

我有许多代表各种计算机组件的类,每个类都有一个重载的<<运算符,声明如下:

friend ostream& operator << (ostream& os, const MotherBoard& mb);
Run Code Online (Sandbox Code Playgroud)

每个都返回一个ostream对象,该对象具有描述该组件的唯一流,其中一些组件由其他组件组成.我决定创建一个被调用的基类Component,以便生成一个唯一的id以及所有组件将公开派生的一些其他函数.当然,重载的<<运算符不适用于指向Component对象的指针.

我想知道我将如何影响纯粹的虚函数,这些函数将被每个派生类的<<运算符覆盖,所以我可以做类似的事情:

Component* mobo = new MotherBoard();

cout << *mobo << endl;

delete mobo;
Run Code Online (Sandbox Code Playgroud)

还涉及:重载<<运算符和继承类

c++

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

为什么我不能在这里使用成员初始化列表?

我刚刚创建了一个"Point"类,并且正在开发一个"Line"类,它有两个Point对象(Point startpoint和Point端点)作为数据成员.我在我的Line类中创建了一个构造函数,它接受两个Point对象作为参数,并且最初创建它如下:

Line(const Point& p1, const Point& p2)
{
    startpoint = p1;
    endpoint = p2;
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,但后来我决定使用成员初始化列表,而不是将成员分配给正文中的p1和p2,只是因为...但是当我将其更改为:

Line(const Point& p1, const Point& p2): startpoint(p1), endpoint(p2)
{
}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误说"没有构造函数的实例"Point :: Point"匹配参数列表"并且不明白这意味着什么.

为什么成员初始化列表不在这里工作?

谢谢.

编辑:对不起,我不知道我的积分课的细节是否相关:

// Point.h

class Point
{
private:
    double x;
    double y;

public:
    Point();
    Point(Point& p);
    Point(double x1, double y1);
    ~Point();

    double X() const;
    double Y() const;

    void X(double newx);
    void Y(double newy);
    };
Run Code Online (Sandbox Code Playgroud)

// Point.cpp

#include "Point.h"

Point::Point(): x(0), y(0)
{
}

Point::Point(Point& p)
{
    x = p.x; …
Run Code Online (Sandbox Code Playgroud)

c++

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

这个MSVC符号是什么意思?

我注意到项目源文件上的这个小标志,并不知道它的含义.

在此输入图像描述

c++ visual-c++

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

为什么这些正则表达式不同?

我正在寻找有撇号的行,并尝试了一些看起来与我相同的表达; 然而,有些人工作,有些人没有.为什么我会得到以下行为:

egrep \' file      # works as expected

egrep "\'" file    # seems to return all lines

egrep "[\']" file  # works as expected

egrep '\'' file    # seems to be waiting for more input
Run Code Online (Sandbox Code Playgroud)

regex grep

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

dustjs-linkedin with express 3

我正在尝试dustjs-linkedin使用快速3项目,但我似乎无法通过此错误:

Error: Template name parameter cannot be undefined when calling dust.compile
at Object.compiler.compile (/home/user/project/node_modules/dustjs-linkedin/lib/compiler.js:21:16)
at Object.dust.compileFn (/home/user/project/node_modules/dustjs-linkedin/lib/dust.js:109:37)
at Function.exports.dust.render (/home/user/project/node_modules/consolidate/lib/consolidate.js:226:56)
at /home/user/project/node_modules/consolidate/lib/consolidate.js:146:25
at /home/user/project/node_modules/consolidate/lib/consolidate.js:99:5
at fs.js:266:14
at Object.oncomplete (fs.js:107:15)
Run Code Online (Sandbox Code Playgroud)

我可以用一个全新的快递3项目来重现这个:

app.js

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// added these 3
var dust = require('dustjs-linkedin');
var cons = require('consolidate');
app.engine('dust', cons.dust);


app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));

// added …
Run Code Online (Sandbox Code Playgroud)

template-engine node.js express dust.js

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

为什么这个文件没有复制到我的$ PATH?

我试图按照这个问题将mvim shell脚本添加到/ usr/local/bin表单bash ,一切似乎都有效; 但是,每当我尝试执行脚本时,我仍然会收到"命令未找到".

从我的mvim文件所在的目录(下载),我输入:

sudo cp -v mvim /usr/local/bin
Run Code Online (Sandbox Code Playgroud)

我得到输出:

mvim -> /usr/local/bin
Run Code Online (Sandbox Code Playgroud)

然后,无论我输入mvim还是输入,它都不起作用mvim -v

我之前从未向我的$ PATH添加过一些内容,但即使在查看了有关它如何完成的一些教程之后,我似乎也无法mvim作为终端命令工作.

编辑:

echo $PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Run Code Online (Sandbox Code Playgroud)

ls -l mvim

-rwxr-xr-x ...
Run Code Online (Sandbox Code Playgroud)

ls -l /usr/local/bin

-rwxr-xr-x ...
Run Code Online (Sandbox Code Playgroud)

bash macvim

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