diff options
author | makefu <github@syntax-fehler.de> | 2016-02-11 21:31:15 +0100 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2016-02-11 21:31:15 +0100 |
commit | 014cbb7598c5d45cfc4cc7e1ec81c92e000eabfb (patch) | |
tree | fab0e894948010cd73be18ad2c68cd4750bd2419 /tv/2configs/vim.nix | |
parent | 8ecdb889dd3081ba29c6ea7eb35f60b30420d201 (diff) | |
parent | 7b3b839cc7a2af73dee9858e6ebcc7be831eb481 (diff) |
Merge remote-tracking branch 'cd/master'
Diffstat (limited to 'tv/2configs/vim.nix')
-rw-r--r-- | tv/2configs/vim.nix | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/tv/2configs/vim.nix b/tv/2configs/vim.nix index 23f90af05..69a880dab 100644 --- a/tv/2configs/vim.nix +++ b/tv/2configs/vim.nix @@ -13,9 +13,21 @@ let environment.variables.VIMINIT = ":so /etc/vimrc"; }; - extra-runtimepath = concatStringsSep "," [ - "${pkgs.vimPlugins.undotree}/share/vim-plugins/undotree" - ]; + extra-runtimepath = let + inherit (pkgs.vimUtils) buildVimPlugin rtpPath; + fromVimPlugins = pkgs: concatStringsSep "," + (mapAttrsToList (name: pkg: "${pkg}/${rtpPath}/${name}") pkgs); + in fromVimPlugins { + inherit (pkgs.vimPlugins) undotree; + file-line = buildVimPlugin { + name = "file-line-1.0"; + src = pkgs.fetchgit { + url = git://github.com/bogado/file-line; + rev = "refs/tags/1.0"; + sha256 = "0z47zq9rqh06ny0q8lpcdsraf3lyzn9xvb59nywnarf3nxrk6hx0"; + }; + }; + }; dirs = { backupdir = "$HOME/.cache/vim/backup"; @@ -32,12 +44,9 @@ let alldirs = attrValues dirs ++ map dirOf (attrValues files); in unique (sort lessThan alldirs); - vim = pkgs.writeScriptBin "vim" '' - #! ${pkgs.dash}/bin/dash - set -f - umask 0077 - ${concatStringsSep "\n" (map (x: "mkdir -p ${x}") mkdirs)} - umask 0022 + vim = pkgs.writeDashBin "vim" '' + set -efu + (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) exec ${pkgs.vim}/bin/vim "$@" ''; |