小编Ida*_*n K的帖子

Vim:将光标移动到最后位置

是否可以在(g)Vim中将光标移动到其先前的位置(在正常模式下)?在先前光标位置列表中来回循环的东西将是理想的.但也只是切换到最后一个位置就足够了(类似于cd -bash与目录).

这是一个小小的示范:

line |1| <- cursor position
line 2
line 3
line 4
Run Code Online (Sandbox Code Playgroud)

假设我做了2j,现在是这样的:

line 1
line 2
line |3| <- cursor position
line 4
Run Code Online (Sandbox Code Playgroud)

现在我想按某些东西(除了2k显而易见的东西)回到第一个位置,也可能回到以前的位置.

vim

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

Emacs C++ - 模式不正确的缩进?

我正在使用c ++模式运行emacs 23并且存在一些缩进问题.假设我有这个代码:

void foo()
{
   if (cond)
     { <---
        int i;
        ...
     } <---
}
Run Code Online (Sandbox Code Playgroud)

这似乎是自动缩进的默认行为.但是我想改变它所以它会是这样的:

void foo()
{
   if (cond)
   {
      int i;
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法通过配置c ++模式或我的.emacs文件轻松完成此操作?

c++ emacs indentation

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

代码浏览,重构,Emacs中的自动完成

我最近切换到Emacs并仍然找到了解决方法.我用C++编写代码,并想知道哪些工具扩展了Emacs以支持代码浏览(查找符号等),重构和代码完成.我听说过:

  • CEDET
  • 的ETag
  • cscope的

但我对我的需求感到困惑.有些地方说cedet提供了所有功能,但其他地方说我需要调用etags才能使cedet正常工作.

有人可以为我清除这个吗?我需要所有这些工具吗?

c++ emacs

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

当我从本机Java方法抛出C++异常时会发生什么?

假设我将Sun的JVM嵌入到C++应用程序中.通过JNI,我调用了一个Java方法(我自己的),它又调用了我在共享库中实现的本机方法.

如果此本机方法抛出C++异常会发生什么?

编辑:编译器是gcc 3.4.x,jvm是sun的1.6.20.

c++ java linux java-native-interface exception

24
推荐指数
2
解决办法
9914
查看次数

你见过的最糟糕的Django练习

你注意到使用Django框架的最大错误是什么?您是否看到过一些真正的误用,可能应该作为对Django文档的警告?

python django

23
推荐指数
7
解决办法
2322
查看次数

使用Javassist将注释添加到运行时生成的方法/类中

我正在使用Javassist生成一个foo带有方法的类,bar但我似乎无法找到一种方法来向方法添加注释(注释本身不是运行时生成的).我试过的代码看起来像这样:

ClassPool pool = ClassPool.getDefault();

// create the class
CtClass cc = pool.makeClass("foo");

// create the method
CtMethod mthd = CtNewMethod.make("public Integer getInteger() { return null; }", cc);
cc.addMethod(mthd);

ClassFile ccFile = cc.getClassFile();
ConstPool constpool = ccFile.getConstPool();

// create the annotation
AnnotationsAttribute attr = new AnnotationsAttribute(constpool, AnnotationsAttribute.visibleTag);
Annotation annot = new Annotation("MyAnnotation", constpool);
annot.addMemberValue("value", new IntegerMemberValue(ccFile.getConstPool(), 0));
attr.addAnnotation(annot);
ccFile.addAttribute(attr);

// generate the class
clazz = cc.toClass();

// length is zero
java.lang.annotation.Annotation[] annots = clazz.getAnnotations(); …
Run Code Online (Sandbox Code Playgroud)

java annotations javassist

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

合并而不更改工作目录

我有以下场景:

* ab82147 (HEAD, topic) changes
* 8993636 changes
* 82f4426 changes
* 18be5a3 (master) first
Run Code Online (Sandbox Code Playgroud)

我想(非快进)合并topicmaster.这需要我:

  • git checkout master
  • git merge --no-ff topic

但是检查master,然后将主题合并到它会导致git更改我的工作目录(虽然最终结果与检查master之前的结果相同),而我遇到的问题是由于我们项目的大小,构建它需要大约30分钟(使用IncrediBuild)虽然没有真正改变,但它简直无法忍受.

所以我想得到的是以下内容:

*   9075cf4 (HEAD, master) Merge branch 'topic'
|\  
| * ab82147 (topic) changes
| * 8993636 changes
| * 82f4426 changes
|/  
* 18be5a3 first
Run Code Online (Sandbox Code Playgroud)

没有真正触及工作目录(或至少以某种方式欺骗git).

git

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

C程序可以处理C++异常吗?

我正在开发可供C或C++应用程序使用的C++组件DLL.暴露的dll功能如下

#include <tchar.h>
#ifdef IMPORT
#define DLL __declspec(dllimport)
#else 
#define DLL __declspec(dllexport)
#endif

extern "C" {

    DLL  bool __cdecl Init();
    DLL  bool __cdecl Foo(const TCHAR*);
    DLL  bool __cdecl Release();

}
Run Code Online (Sandbox Code Playgroud)

这些函数的内部实现是没有公开的C++类,我假设使用这种风格,dll可以在C或C++应用程序中使用.问题是我没有处理任何类型的c ++异常(即bad_alloc),我将这些东西留给了调用者(更高层).经过与同事的多次辩论,我应该捕获所有异常并返回错误代码或至少是错误的,因为在C应用程序的情况下,它无法处理C++异常?真的吗?我一般应该做些什么?如果您正在开发将由其他系统使用的组件,是否有处理exeptions的经验法则.

c c++ exception-handling

16
推荐指数
5
解决办法
5516
查看次数

JVM信号链接SIGPIPE

我们有一个带有嵌入式JVM(Sun)的C++应用程序.因为我们注册了自己的信号处理程序,所以建议我们在初始化JVM之前这样做,因为它安装了自己的处理程序(参见此处).

根据我的理解,JVM内部知道信号是否源自其自己的代码,如果不是它将链路传递给我们的处理程序.

我们开始看到的是我们正在获得SIGPIPE,其调用堆栈看起来大致相同(顶部条目是我们的信号处理程序):

/.../libos_independent_utilities.so(_ZN2os32smart_synchronous_signal_handlerEiP7siginfoPv+0x9) [0x2b124f7a3989]
/.../jvm/jre/lib/amd64/server/libjvm.so [0x2aaaab05dc6c]
/.../jvm/jre/lib/amd64/server/libjvm.so [0x2aaaab05bffb]
/.../jvm/jre/lib/amd64/server/libjvm.so(JVM_handle_linux_signal+0x718) [0x2aaaab05e878]
/.../jvm/jre/lib/amd64/server/libjvm.so [0x2aaaab05bf0e]
/lib64/libpthread.so.0 [0x3c2140e4c0]
/lib64/libpthread.so.0(send+0x91) [0x3c2140d841]
/.../jvm/jre/lib/amd64/libnet.so [0x2aaabd360269]
/.../jvm/jre/lib/amd64/libnet.so(Java_java_net_SocketOutputStream_socketWrite0+0xee) [0x2aaabd35cf4e]
[0x2aaaaeb3bf7f]
Run Code Online (Sandbox Code Playgroud)

似乎JVM决定将从中提出的SIGPIPE send传递给我们的信号处理程序.这样做是对的吗?

另外,为什么调用堆栈不完整?我的意思是显然它不能告诉我以前的java代码,socketWrite0但为什么我不能在java代码之前看到堆栈?

c++ java linux multithreading signals

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

Vim:未定义的变量没有标记

最近我在Vim中进行重构时犯了一些错误,结果是未定义和未使用的变量.任何体面的IDE(如NetBeans)都会将它们标记为这样,但我还没有遇到过这样做的Vim插件.

谁能帮我吗?我主要是用PHP编程.

php vim plugins

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