小编ib.*_*ib.的帖子

如何用Vim有效地"制造"

我想要做的似乎是一个非常基本的东西,但我找不到任何关于它的东西.我正在研究像往常一样建造的项目:

project
|-- bin
|-- inc
`-- src
Run Code Online (Sandbox Code Playgroud)

我想使用Vim中包含的make命令来创建我的项目.但每次我必须指定:make -C ../.我更喜欢,如果当前目录中没有Makefile文件,请进入父目录.我已经这样做了

set tags+=./tags;/
Run Code Online (Sandbox Code Playgroud)

在我的.vimrc.

此外,make默认是丑陋的.是否有添加颜色的选项,并允许直接访问错误(如在Emacs中).

谢谢

vim plugins makefile

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

Vim Regex替换

我认为这是一个非常简单的解决方案,但我一直试图找到大约一个小时的答案,似乎无法弄明白.

我正在尝试在Vim中进行查找/替换,以替换一系列以数字开头103并且后跟四位数123后跟相同四位数的数字,如下所示:

1033303- > 1233303
1033213- >1233213

我最接近的是:

%s/103\d\{4}/123\0/g
Run Code Online (Sandbox Code Playgroud)

然而,这导致整个数字匹配\0,因此:

1033303 - > 1231033303

非常感谢您的帮助

regex vim

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

为什么glibc的fclose(NULL)会导致分段错误而不是返回错误?

根据手册页fclose(3):

返回值

成功完成后返回0.否则,EOF返回并设置全局变量errno以指示错误.在任何一种情况下fclose(),对流的任何进一步访问(包括另一次调用)都会导致未定义的行为.

错误

EBADF底层文件描述符fp无效.

fclose()函数也可能失败并设置errno为例程指定的任何错误close(2),write(2)fflush(3).

当然fclose(NULL)应该失败,但我希望它能够errno正常返回,而不是直接通过分段故障死亡.这种行为有什么原因吗?

提前致谢.

更新:我将把我的代码放在这里(strerror()特别是我正在努力).

FILE *not_exist = NULL;

not_exist = fopen("nonexist", "r");
if(not_exist == NULL){
    printError(errno);
}

if(fclose(not_exist) == EOF){
    printError(errno);
}
Run Code Online (Sandbox Code Playgroud)

c linux segmentation-fault fclose

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

如何在Vim中获取外部命令的返回(状态)值

我想$?在Vim中获取外部shell命令的退出值(在shell上返回;通常为0或1表示成功或失败).请注意,我也希望得到它的标准输出.所以我可以在Vim条件表达式中使用输出和退出值.这可能吗?

linux vim shell

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

VIM:如何将grep结果存储在缓冲区中

我想调试一个进程,因此我将strace附加到进程并将输出重定向到文件然后执行操作.在此过程中,它创建了许多流程.所以这就是我想要做的,我想选择一个进程执行的所有系统调用.为此,我使用grep命令将pattern作为pid:

:grep pid %
Run Code Online (Sandbox Code Playgroud)

它显示了结果,但我无法遍历结果,它承诺

Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

并返回文件.我想要做的是将结果存储在缓冲区中,然后查看它,如果需要,将其保存到文件中,或者丢弃它并返回到原始文件.有没有办法在退出vim编辑器时执行此操作?提前致谢.

我想搜索结果并将其存储在缓冲区中.

vim

17
推荐指数
2
解决办法
7992
查看次数

Nerdtree - 保存已打开目录的状态

对我来说典型的工作流程是打开Vim(确切地说是MacVim),做:

:NERDTree <bookmark>
Run Code Online (Sandbox Code Playgroud)

然后手动打开我想要使用的各个子目录.通常它是我上次处理项目时打开的同一组目录.我知道Orecursive-open命令但是如果它是一棵大树我就必须关闭它们以清除屏幕.

有没有办法拯救那些开放的/一般的"国家"?

vim nerdtree

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

防止在Vim中保存具有特定名称的文件

我打字很快,并意识到有时我不小心保存了一个名为;或的文件:(我打字:wq,有时会引入拼写错误).

有没有办法编写一个拒绝保存匹配某些名称的文件的宏?

vim autocmd

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

在Vim窗口之间移动的快捷方式

假设我有单个Vim选项卡显示9个缓冲区(同样分开,如表3x3).目前,从左上方窗口右下角一送,我必须按3,Ctrl+ W,J,然后3,Ctrl+ W,L.这是麻烦的,我想只能够按Ctrl+ 9转到第九窗口和Ctrl+ 3去第三窗口,等有没有简单的方法可以让我在地图Vim的这样呢?

vim buffer window

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

删除VIM中的所有空缓冲区

我现在在Vim打开了120个缓冲区.这些缓冲区中约有50%是空文件.我想以某种方式使用bufdo!关闭所有空的缓冲区.有没有办法可以说:

bufdo! (something)
Run Code Online (Sandbox Code Playgroud)

当前缓冲区(something)的条件命令bdeleteIF在哪里,该缓冲区的长度/大小为零?

vim

16
推荐指数
3
解决办法
3442
查看次数

如何从下到上移动Vim状态栏?

如何通过编辑~/.vimrc或其他方式配置Vim ,以便状态栏可以显示在窗口的顶部.

我的意思是底部信息栏,看起来像index.html 22L,538C written 15,3-9 ALL.

vim configuration

16
推荐指数
2
解决办法
5298
查看次数