小编gca*_*ali的帖子

如何更改vim状态行颜色?

我想通过编辑我来改变vim的状态行颜色.vimrc.

通过使用该命令au,我尝试在进入或退出插入模式时更改状态行的颜色; 通过使用此命令没有任何反应:

hi StatusLine guibg=whatevercolourIwant

通过直接更改状态行颜色,无需任何au命令,背景保持不变.

是否有理由通过执行

:hi StatusLine guibg=red,

例如,状态栏的背景仍然是绿色的?

vim statusbar background-color

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

Python类型提示和`*args`

假设我有这样的函数:

def foo(*args):
    for x in args:
        print(x)
Run Code Online (Sandbox Code Playgroud)

而且我想说我想说的所有元素args都是int; 从PEP 0484开始表达它的正确方法是什么?我应该做点什么吗

from typing import Tuple


def foo(*args: Tuple[int, ...]) -> None:
    for x in args:
        print(x)
Run Code Online (Sandbox Code Playgroud)

或类似的东西

def foo(*args: int) -> None:
    for x in args:
        print(x)
Run Code Online (Sandbox Code Playgroud)

或完全不同的东西?

特别是,我试图在PyCharm中有效地使用类型提示,而我所想到的解决方案似乎都没有帮助PyCharm理解x应该是一个int.

python types pycharm python-3.x typehints

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

如何使表示二叉树的点图更对称?

在尝试使用 Graphviz 为二叉树创建图形时,我遇到了很多次问题;显然,如果树足够高且足够大nodesep,结果图往往不对称。例如,这是一个点源

digraph G {
    nodesep=0.8;
    ranksep=0.5;

    {node[style=invis,label=""]; cx_30;
    }

    {rank=same; 20; 45; cx_30}
    {rank=same; 10; 25;}
    {rank=same; 40; 50}

    30 -> 20;
    30 -> 45;
    20 -> 10;
    20 -> 25;

    45 -> 40;
    45 -> 50;

    {edge[style=invis];
                        //Distantiate nodes
                        30 -> cx_30;
                            20 -> cx_30 -> 45;

                        //Force ordering between childs
                        10:e -> 25:w;
                        40:e -> 50:w;
    } 
} 
Run Code Online (Sandbox Code Playgroud)

与相应的输出(编译dot -Tpng file.dot > file.png点树结果

如您所见,45不是放在40和之间的中间50。我可以在40和之间使用不可见的节点 …

layout graphviz

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

如果与xxd一起使用,则修改文件

我试图理解ID3标签是如何工作的,因此,在阅读了一些文档之后,我开始查看一些mp3的原始数据.Vim通常是我的首选编辑器,因此,经过一些谷歌搜索,我发现我可以使用xxd通过调用来查看我的文件的十六进制表示

:%!xxd  
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是当我把所有东西都整理好了

:%!xxd -r  
Run Code Online (Sandbox Code Playgroud)

然后退出,我发现该文件已被修改; vlc再也无法播放了,差异告诉我文件不同.我以为我偶然修改了一些东西,但进一步的实验表明,即使打开文件并使用xxd然后xxd -r也会以某种方式更改文件.

这是为什么?我怎样才能防止它发生?难道我做错了什么?

vim mp3 raw-data xxd

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

使用libtinfo依赖编译的ncurses的C代码

我最近在Linux上使用ncurses在C中编写了扫雷实现; 我的电脑上的一切正常,但如果我尝试将编译的二进制文件提供给其他人,他们经常会收到错误:

error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

如果我让他们重新编译代码一切都很好.通过环顾四周,我发现这是libtinfo和libncurses之间分离的问题.它可以通过制作一些simlink来解决,但只有当用户拥有root权限时才能解决这个问题.

截至此处(和其他来源),http://www.cyberspice.org.uk/blog/2009/12/24/tinfo-about-dash/,似乎这是一个可以通过编写代码来解决的问题以不同的方式或可能以不同的方式编译.我宁愿能够解决问题,而不是强迫人们制作simlinks.

任何指示正确的方向,以了解如何解决我的问题?如果需要,我可以添加任何代码或细节,但发布所有内容似乎有点过分,所以请告诉我可以添加什么(如果需要)以更好地理解问题.

我现在唯一发布的是makefile:

CC=gcc -std=gnu89 -pedantic -Wall -Wno-unused-but-set-variable
CFLAGS=-c -g
LDFLAGS=-lncurses

NAME=campo_ex
OBJECTS=error.o interface.o utilities.o main.o grid.o

DEBUG_NAME=debug
DEBUG_OBJECTS=error.o interface.o utilities.o debug.o

$(NAME): $(OBJECTS)
    $(CC) -o $(NAME) $(OBJECTS) $(LDFLAGS)

main.o: main.c interface.h grid.h
    $(CC) $(CFLAGS) main.c

debug.o: debug.c interface.h
    $(CC) $(CFLAGS) debug.c

error.o: error.c error.h
    $(CC) $(CFLAGS) error.c

utilities.o: utilities.c utilities.h
    $(CC) $(CFLAGS) utilities.c

interface.o: interface.c interface.h …
Run Code Online (Sandbox Code Playgroud)

c linux ncurses

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