小编Nic*_*rto的帖子

在 VS 代码中设置 Neovim 集成

目前是 (neo)vim 用户,我读到 VS Code 支持 Neovim 后端集成,但搜索后我找不到如何设置它。

有人可以解释如何在 VS Code 中设置 Neovim 集成吗?

谢谢你。

PS:我同时使用 linux 和 windows,所以如果有一些操作系统特性,你可以提到它。

neovim visual-studio-code vscode-settings

9
推荐指数
1
解决办法
9343
查看次数

运行MetaOCaml代码

我刚刚安装了BER MetaOCaml,其中包括:

 $ opam update
 $ opam switch 4.02.1+BER
 $ eval `opam config env`
Run Code Online (Sandbox Code Playgroud)

而且我无法在tuareg toplevel中运行MetaOCaml代码或只是ocaml toplevel.以下代码:

let a = .<1+2>.;;
Run Code Online (Sandbox Code Playgroud)

结果是

Error: Reference to undefined global `Trx'
Run Code Online (Sandbox Code Playgroud)

我试过#load "trx.cma"但它找不到文件.

答案编辑:

metaocaml是正确的可执行文件.

添加后:

`(defun tuareg-run-metaocaml ()
    "Run an OCaml toplevel process.  I/O via buffer `*ocaml-toplevel*'."
    (interactive)
    (tuareg-run-process-if-needed
     "/usr/bin/opam config exec -- metaocaml")
    (display-buffer tuareg-interactive-buffer-name))

  (add-hook 'tuareg-mode-hook
        ' (lambda ()
              (define-key tuareg-mode-map (kbd "C-c M-s")
            'tuareg-run-metaocaml)))`
Run Code Online (Sandbox Code Playgroud)

对于我的.emacs,我现在可以运行MetaOCaml了C-c M-s.

ocaml metaocaml

8
推荐指数
0
解决办法
287
查看次数

OCaml,扩展了一个程序a Emacs

我喜欢OCaml,我正在等待我的Real World OCaml副本!我是初学OCaml程序员,只知道功能部分,有点必要,但对模块,仿函数,对象等并不多...

对于某种翻译项目,我做了类似新手emacs的评估.我保留一个三元组列表,其中包含一个命令名绑定列表作为字符串,一个描述字符串和要调用的ocaml函数.主循环只查找列表中的匹配条目并调用该函数.

然后,它是非常简单的添加新functionnalities,你只写一个函数,并把在列表中的条目.

我喜欢像Emacs这样可自我扩展的概念,这很容易扩展,但不能真正自我扩展.

我可以使用OCaml自行扩展程序吗?我该怎么办?

我知道Emacs是如何工作的,它是一个很大的虚拟机,因此它可以解释代码并自行修改它的运行时环境,但有没有办法通过用户添加的模块为OCaml程序添加功能?或者是其他东西 ?

ps:如果我的项目听起来很基本但我是初学者,请不要嘲笑我!

谢谢

ocaml

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

Awk与我的所有参赛作品都不匹配

我正在尝试制作一个"脚本" - 本质上是一个awk命令 - 在.c文件中提取C代码函数的原型,以自动生成一个头.h.我是awk的新手,所以我没有得到所有细节.

这是源.c的示例:

dict_t dictup(dict_t d, const char * key, const char * newval)
{

  int i = dictlook(d, key);

  if (i == DICT_NOT_FOUND) {

    fprintf(stderr, "key \"%s\" doesn't exist.\n", key);
    dictdump(d);
  }
  else {

    strncpy(d.entry[i].val, newval, DICTENT_VALLENGTH);
  }

  return d;
}


dict_t* dictrm(dict_t* d, const char * key) {

  int i = dictlook(d, key);

  if (i == DICT_NOT_FOUND) {

    fprintf(stderr, "key \"%s\" doesn't exist.\n", key);
    dictdump(d);
  }
  else {
    d->entry[i] = d->entry[--d.size];
  }
  if ( ((float)d->size)/d.maxsise …
Run Code Online (Sandbox Code Playgroud)

regex awk text-extraction header-files

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

MetaOCaml:无法从方括号中运行代码

我正在尝试使用MetaOCaml,所以我做了以下出色的代码:

#let a = .<1>.;;
val a : int code = .<1>. 
# let b = !. a;;
Error: Unbound value !.
# let b = .!a;;
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?

另外,我也尝试过!..!因为我在网站上都看过这两个网站,但不知道哪一个是正确的网站。

ocaml metaocaml

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

Variadic宏预期')'在数字常量之前

这是实际的宏:

#ifdef DEBUG                                                                   
#define debug(funcname, format, ...) \                                         
        printf(BOLD UNDERLINED REVERSE \                                    
        "DEBUG IN " __FILE__ \                                             
        " LINE " __LINE__ ":" \                                            
        RESET UNDERLINED REVERSE \                                         
        "In " funcname \                                                   
        RESET REVERSE format RESET, ##__VA_ARGS__)                         
#else                                                                          
#define debug(funcname, format, ...)                                           
#endif                                                                        
Run Code Online (Sandbox Code Playgroud)

所有使用的常量都是明确定义的字符串常量.我称之为:

char message[] = "Hello StackOverflow !\n";
debug("main()", "Message: %s\n", message);
Run Code Online (Sandbox Code Playgroud)

但是我收到了消息

error: expected ‘)’ before numeric constant debug("main()", "Message: ", message); 在最后的括号中徘徊.

这很奇怪,因为我第一次测试宏,现在项目已经与团队一起推进它不起作用......

c c-preprocessor variadic-macros

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

C奇怪的stat st_mode

我打印的结果S_ISDIR(info->st_mode)S_ISREG(info->st_mode)包含带.so扩展名的动态库的目录,结果非常令人惊讶,S_ISREG返回0S_ISDIR返回1.

我有一点困惑...

代码:

DIR *dir;
if ((dir = opendir (dirname)) != NULL) {
  struct dirent *ent;
  while ((ent = readdir (dir)) != NULL) {
    struct stat info;
    stat(ent->d_name, &info);
    printf("file: %s, S_ISREG: %d, S_ISDIR: %d", ent->d_name, S_ISREG(info.st_mode), S_ISDIR(info.st_mode));
  }
}
closedir(dir);
Run Code Online (Sandbox Code Playgroud)

输出如下:

file: ., S_ISREG: 0, S_ISDIR: 1
file: zyva.so, S_ISREG: 0, S_ISDIR: 1
file: .gitignore, S_ISREG: 1, S_ISDIR: 0
file: .., S_ISREG: 0, S_ISDIR: 1
file: plugin-app, …
Run Code Online (Sandbox Code Playgroud)

c unix stat

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