1{
2 lib,
3 stdenv,
4 config,
5 vim-full,
6 macvim,
7 vimPlugins,
8 useMacvim ? stdenv.hostPlatform.isDarwin && (config.vimacs.macvim or true),
9 vimacsExtraArgs ? "",
10}:
11
12stdenv.mkDerivation rec {
13 pname = "vimacs";
14 version = lib.getVersion vimPackage;
15 vimPackage = if useMacvim then macvim else vim-full;
16
17 buildInputs = [
18 vimPackage
19 vimPlugins.vimacs
20 ];
21
22 buildCommand = ''
23 mkdir -p "$out"/bin
24 cp "${vimPlugins.vimacs}"/bin/vim $out/bin/vimacs
25 substituteInPlace "$out"/bin/vimacs \
26 --replace '-vim}' '-@bin@/bin/vim}' \
27 --replace '-gvim}' '-@bin@/bin/vim -g}' \
28 --replace '--cmd "let g:VM_Enabled = 1"' \
29 '--cmd "let g:VM_Enabled = 1" --cmd "set rtp^=@rtp@" ${vimacsExtraArgs}' \
30 --replace @rtp@ ${vimPlugins.vimacs} \
31 --replace @bin@ ${vimPackage}
32 for prog in vm gvm gvimacs vmdiff vimacsdiff
33 do
34 ln -s "$out"/bin/vimacs $out/bin/$prog
35 done
36 '';
37
38 meta = with lib; {
39 description = "Vim-Improved eMACS: Emacs emulation for Vim";
40 homepage = "http://algorithm.com.au/code/vimacs";
41 license = licenses.gpl2Plus;
42 maintainers = with lib.maintainers; [ millerjason ];
43 };
44}