首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过nix主管理器定义的vimrc中的空字符串语法。

通过nix主管理器定义的vimrc中的空字符串语法。
EN

Unix & Linux用户
提问于 2019-12-25 12:56:37
回答 1查看 225关注 0票数 0

我想使用主管理器使用extraConfig选项在nix表达式中声明我的vim配置。我正在尝试从.vimrc运行示例coc.nvim配置,其中一行内容如下:

设置statusline^=%{coc#status()}%{get(b:,‘coc_coc#status_function’,'')} }

在最小的home.nix中,我将其设置如下:

代码语言:javascript
复制
{ config, pkgs, ... }:

{
  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;

  home.packages = [ 
    pkgs.nodejs
  ];

programs.vim = { 
    enable = true;
    plugins = [
      pkgs.vimPlugins.coc-nvim
    ];
    extraConfig = ''
" Add status line support, for integration with other plugin, checkout `:h coc-status`
set statusline^=%{coc"status()}%{get(b:,'coc_current_function','')}
      '';
  };
}

不幸的是,空的vim字符串关闭多行nix字符串,并将home-manager build switch与:

代码语言:javascript
复制
error: syntax error, unexpected ')', expecting ';', at /home/demo/.config/nixpkgs/home.nix:18:66

我已经尝试过在get-函数中用''替换"",但是vim不喜欢这样:

代码语言:javascript
复制
E540: Unclosed expression sequence: statusline^=%{coc
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-12-26 05:07:55

是的,两个单引号('')表示缩进字符串的结尾,因此要在缩进字符串中使用它们,需要转义它们:

由于${和'‘在缩进字符串中具有特殊意义,您需要一种引用它们的方法。$可以用'‘(即两个单引号)作为前缀进行转义,即’$‘。‘’可以用‘’前缀转义,即‘’。资料来源:https://nixos.org/nix/manual/

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/558893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档