我经常是vim用户,我只是喜欢你可以导航缓冲区的方式,而无需使用鼠标.我特别喜欢相对的线号,让我跳到具有完美适应性的特定线条,它只是让导航速度更快.我也使用tmux,因为我的终端经常会有很多东西.
最让我烦恼的是当我使用tmux复制模式时,如果你使用箭头键,ctrl + p或k,它只需要永远导航到你想要复制的行.
在缓冲区中搜索唯一关键字也不理想,但如果您已经知道要搜索什么,它可能会更快.很多时候你进行搜索只是为了发现你搜索的关键字毕竟不是那么独特,而你最终还没有达到你想要的那条线.
我的问题是:
..或者根本就行数?
我在网上找不到任何关于此的信息.似乎没有人在任何地方提到这件事.有没有更好的办法?
使用键盘在tmux复制模式下进行超高速导航的任何其他技巧也将非常受欢迎.
我无法使用 strcmp 在 GDB 中创建条件断点:
break x if strcmp(str.c_str(), "foo") == 0
Run Code Online (Sandbox Code Playgroud)
你为什么问?
因为:
print strcmp("hello", "hello")
Run Code Online (Sandbox Code Playgroud)
产量
(int (*)(const char *, const char *)) 0x7ffff76ffe70 <__strcmp_sse2_unaligned>
Run Code Online (Sandbox Code Playgroud)
即使将其转换为整数:
print (int)strcmp("hello", "hello")
Run Code Online (Sandbox Code Playgroud)
它返回一些无意义的值,如 -143655312
这是“解决”我的问题的一种不太优雅的方法。我可以在自己的代码中定义一个函数:
int mystrcmp(const char *str1, const char* str2){
return strcmp(str1, str2);
}
Run Code Online (Sandbox Code Playgroud)
现在我可以使用这个函数来代替我的条件断点。但这不是真正的调试,是吗?当您必须更改原始代码以进行调试时,您就输了!
那么我错过了什么?