小编Ama*_*ain的帖子

如何在vim中删除搜索模式周围的行?

在文件中,我希望能够删除搜索模式周围的上下文.

根据上下文,我的意思是:a)模式之前的'n'行b)模式之后的'n'行c)模式之后和之前的'n'行通过删除模式行来执行a,b,c )执行a,b,c而不删除模式行

有没有办法使用:g/或以:%s其他方式做到这一点?我可以用宏来做到这一点,但那不是我想要的.

这是示例文本:

search_pattern random text 1
line below search pattern(delete me)
abc def
pqr stu
...
line above search pattern(delete me)
search_pattern random text 2
line below search pattern(delete me)
...
Run Code Online (Sandbox Code Playgroud)

vim

13
推荐指数
2
解决办法
6165
查看次数

你用vim做过的最好的事情是什么帮助你编程?

在冲浪时,我发现有人使用vim完成了河内塔.哇!!!

你能和人分享你在vim做过的所有很酷的事吗?

编辑:不确定使用vim的河内塔解决方案是否有用.但我认为应该重新打开这个问题,让人们评论他们用vim做过的任何有用的事情.为了我?请参阅下面的答案.( - :

vim

8
推荐指数
4
解决办法
806
查看次数

如何在PE中将PE(可移植可执行文件)格式转换为ELF

将PE二进制文件转换为ELF二进制文件的最佳工具是什么?

以下是此问题的简要动机:

  1. 假设我有一个简单的C程序.
  2. 我使用gcc for linux编译它(这给了ELF),并使用'i586-mingw32msvc-gcc'用于Windows(这给出了一个PE二进制文件).
  3. 我想分析这两个二进制文件的相似之处,使用Bitblaze的静态分析工具 - vine(http://bitblaze.cs.berkeley.edu/vine.html)
  4. 现在藤蔓没有对PE二进制文件的良好支持,所以我想转换PE-> ELF,然后进行我的比较/分析.

由于所有分析都必须在Linux上运行,我更喜欢在Linux上运行的实用程序/工具.

谢谢

linux binary elf portable-executable

8
推荐指数
3
解决办法
8914
查看次数

如何调试strace中显示的futex争用?

我正在调试多线程linux进程中的一个问题,其中某个线程似乎没有执行几秒钟.查看strace输出显示它等待futex,例如
1673109 14:36:28.600329 futex(0x44b8d20,FUTEX_WAIT_PRIVATE,
1673109 14:36:33.221850 <... futex resumed>)= 0 <4.621514>

我如何找出这个futex(0x44b8d20)在用户空间中引用的内容,即如何将其映射到内部使用futex的锁定构造.

linux multithreading futex

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

在2n + 3个点之间找到一个圆的算法,使得它包含n个内部,n个外部点和3个点

以下是careercup.com的Google访谈部分提出的问题:

在2d空间中给定2*n + 3个点,没有3个点共线且没有4个点位于圆上,
设计一个算法,该算法将找到一个圆圈,其中包含n个点,n在其外部,3个在其上.

我可以想到一个O(n ^ 4)解决方案:
a)选择任意3个点[以C(2n + 3,3)方式]并用这些(O(n ^ 3))做一个圆
b)现在每个圈,检查它内部是否有'n'点O(n)

由于这是一种天真的方法,我想问一下是否有更好的方法
来解决这个问题?即O(n log n)的顺序

algorithm computational-geometry

7
推荐指数
2
解决办法
903
查看次数

用于有效绘制一组线的算法

我发现以下算法在线提问,但找不到任何有效的解决方案.
谷歌访谈时询问了这个问题.问题是这样的:

给定要绘制的一系列线条(每条线具有起点和终点),
给出一种算法,帮助您在最短的时间内绘制线条.
没有必要仅从起点绘制线.

有一种方法将每一行视为图中的一个节点.
并且2个节点之间的边缘是第一行的结束节点
和第二行的起始节点之间的距离.在此之后,如果我们计算最小生成树,
它将给出最佳答案.

但我不确定这是否始终提供最佳解决方案,因为它假设
线仅在一个方向上绘制.

任何人都可以提供关于如何解决这类问题的提示吗?

algorithm

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

如何通过调度程序看到Linux上的pthreads

我有一个关于Linux上pthread实现的问题.

假设一个进程有5个线程.现在,调度程序如何看待这些线程(或根本看不到).例如,当调用调度程序时,它是仅调度主进程,然后是主进程在每个线程之间进行调度的负担.

或者是另一种方式,调度程序将每个线程调度为一个单独的进程.

pthreads scheduler linux-kernel

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

如何列出包含头文件的所有文件

标准 cscope 搜索“查找文件 #include this file”

仅返回 foo.h 直接包含在 bar.c 中的匹配项

但我对所有直接或间接的文件感兴趣

(例如,包含包含 foo.h 的头文件) include foo.h

c header-files

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

如何在Vim中过滤cscope输出

我正在寻找一种方法来cscope从Vim查询输出查询.

以下对我不起作用:

:cs f s symbol !grep pattern
Run Code Online (Sandbox Code Playgroud)

它给了:

E259: no matches found for cscope query s symbol !grep pattern ...
Run Code Online (Sandbox Code Playgroud)

PS:
我知道redir方法,我正在寻找一种更简单的方法来
通过Unix命令过滤ex命令的输出.

vim cscope

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

如何在gdb中递归打印C结构

如何让gdb递归地打印结构的字段,
即跟随指针.

现在,我必须进入每个字段并指定一个'*'来打印
子结构,或者必须键入强制转换以查看子结构中的内容.

例如

typedef struct {
int a;
}A;

typedef struct {
A *pA;
int b;
}B;

typedef struct {
B *pB;
int c;
}C;

C var_c;
C *pC = var_c;
Run Code Online (Sandbox Code Playgroud)

......

现在,我想在gdb提示符下执行"p*pc",
查看所有内容而不仅仅是pB的地址.

gdb

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