summaryrefslogtreecommitdiff
path: root/gnu/packages/vim.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/vim.scm')
-rw-r--r--gnu/packages/vim.scm427
1 files changed, 362 insertions, 65 deletions
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index ee836d2789..d5667851a8 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <[email protected]>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <[email protected]>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <[email protected]>
;;; Copyright © 2016, 2017 Nikita <[email protected]>
;;; Copyright © 2017 Ricardo Wurmus <[email protected]>
;;; Copyright © 2017 Marius Bakke <[email protected]>
@@ -11,6 +11,7 @@
;;; Copyright © 2020, 2021 Jack Hill <[email protected]>
;;; Copyright © 2021 Simon Tournier <[email protected]>
;;; Copyright © 2021 Tissevert <[email protected]>
+;;; Copyright © 2021 Foo Chuan Wei <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
(define-module (gnu packages vim)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -43,6 +45,7 @@
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages code)
#:use-module (gnu packages enlightenment)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
@@ -73,7 +76,7 @@
(define-public vim
(package
(name "vim")
- (version "8.2.2689")
+ (version "8.2.3995")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -82,13 +85,11 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0l0hkr8cw7fdsfc5zzcxx3q1wmv9k3hrgalvffq0l69lviqdgh0p"))))
+ "1aqrywyry4vxf1x7mk5g1k5k6md38bnjb6f778hmk8ahx26mpqpb"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:parallel-tests? #f
- ;; Fix test_signals.vim. https://github.com/vim/vim/issues/7402
- #:make-flags (list "CFLAGS=-D_REENTRANT")
#:phases
(modify-phases %standard-phases
(add-after 'configure 'patch-absolute-paths
@@ -98,23 +99,21 @@
(substitute* '("src/testdir/Makefile"
"src/testdir/test_normal.vim"
"src/testdir/test_popupwin.vim"
+ "src/testdir/test_shell.vim"
"src/testdir/test_system.vim"
"src/testdir/test_terminal.vim"
"src/testdir/test_terminal2.vim")
(("/bin/sh") (which "sh")))
(substitute* "src/testdir/test_autocmd.vim"
- (("/bin/kill") (which "kill")))
- #t))
+ (("/bin/kill") (which "kill")))))
(add-before 'check 'set-environment-variables
(lambda* (#:key inputs #:allow-other-keys)
;; One of the tests tests timezone-dependent functions.
(setenv "TZDIR"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
+ (search-input-directory inputs "share/zoneinfo"))
;; Make sure the TERM environment variable is set for the tests
- (setenv "TERM" "xterm")
- #t))
+ (setenv "TERM" "xterm")))
(add-before 'check 'skip-or-fix-failing-tests
(lambda _
;; This test assumes that PID 1 is run as root and that the user
@@ -139,8 +138,7 @@
(string-append line "return\n")))
(substitute* "src/testdir/test_popupwin.vim"
((".*Test_popup_drag_termwin.*" line)
- (string-append line "return\n")))
- #t))
+ (string-append line "return\n")))))
(add-before 'install 'fix-installman.sh
(lambda _
(substitute* "src/installman.sh"
@@ -151,13 +149,9 @@
(let ((vimdir (string-append (assoc-ref outputs "out") "/share/vim")))
(mkdir-p vimdir)
(copy-file (assoc-ref inputs "guix.vim")
- (string-append vimdir "/vimrc"))
- #t))))))
+ (string-append vimdir "/vimrc"))))))))
(inputs
- `(("gawk" ,gawk)
- ("ncurses" ,ncurses)
- ("perl" ,perl)
- ("tcsh" ,tcsh))) ; For runtime/tools/vim32
+ (list gawk ncurses perl tcsh)) ; For runtime/tools/vim32
(native-inputs
`(("libtool" ,libtool)
("guix.vim" ,(search-auxiliary-file "guix.vim"))
@@ -183,20 +177,19 @@ configuration files.")
(package (inherit vim)
(name "xxd")
(arguments
- `(#:make-flags (list ,(string-append "CC=" (cc-for-target)))
+ (list
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
#:tests? #f ; there are none
#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'chdir
- (lambda _
- (chdir "src/xxd")
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "xxd" bin)
- #t))))))
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "src/xxd")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (install-file "xxd" bin)))))))
(inputs `())
(native-inputs `())
(synopsis "Hexdump utility from vim")
@@ -205,9 +198,6 @@ with the editor vim.")))
(define-public vim-full
(package
- ;; This package should share its source with Vim, but it doesn't
- ;; build reliably, and we want to keep Vim up to date due to the
- ;; frequency of important bug fixes.
(inherit vim)
(name "vim-full")
(arguments
@@ -233,7 +223,7 @@ with the editor vim.")))
((#:make-flags flags)
`(append
(list "LDFLAGS=-lexpat")
- (delete "CFLAGS=-D_REENTRANT" ,flags)))
+ ,flags))
((#:phases phases)
`(modify-phases ,phases
(add-before 'check 'start-xserver
@@ -245,9 +235,8 @@ with the editor vim.")))
(zero? (system (string-append xorg-server "/bin/Xvfb "
display " &")))))))))))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("xorg-server" ,xorg-server-for-tests)
- ,@(package-native-inputs vim)))
+ (modify-inputs (package-native-inputs vim)
+ (prepend pkg-config xorg-server-for-tests)))
(inputs
`(("acl" ,acl)
("atk" ,atk)
@@ -390,32 +379,32 @@ trouble using them, because you do not have to remember each snippet name.")
(license license:expat))))
(define-public vim-scheme
- (let ((commit "93827987c10f2d5dc519166a761f219204926d5f")
- (revision "1"))
+ (let ((commit "e22fc8e199ef52f2efacd08e71c3add90d83b375")
+ (revision "3"))
(package
(name "vim-scheme")
- (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+ (version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "http://git.foldling.org/vim-scheme.git")
+ (url "https://git.foldling.org/vim-scheme.git")
(commit commit)))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1ynjr1109dxgj0lz261gmzz3wf5ap1m6j6hnvl3lcyv66a4y8pjv"))))
+ "04h946vr4f8wxap3wzqs69y2v8n50g2zbk22jsg2kxr4c01z5cbw"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
- '(("after" "share/vim/vimfiles/")
- ("ftplugin" "share/vim/vimfiles/")
+ '(("ftplugin" "share/vim/vimfiles/")
+ ("indent" "share/vim/vimfiles/")
("syntax" "share/vim/vimfiles/"))))
(synopsis "Scheme syntax for Vim")
(description
"@code{vim-scheme} provides Scheme support for Vim (R7RS and CHICKEN).")
(home-page "https://foldling.org/git/vim-scheme.git/")
- (license license:public-domain))))
+ (license license:unlicense))))
(define-public vim-luna
(let ((commit "633619953dcf8577168e255230f96b05f28d6371")
@@ -474,7 +463,7 @@ trouble using them, because you do not have to remember each snippet name.")
(define-public vim-fugitive
(package
(name "vim-fugitive")
- (version "3.3")
+ (version "3.6")
(source
(origin
(method git-fetch)
@@ -483,14 +472,14 @@ trouble using them, because you do not have to remember each snippet name.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "1ybmy2dk9zsmd3kyyj40qn20gzgd16n5p77sjxp8bspx3zb7km5y"))))
+ (base32 "17c3wzqkbzbf0nmlxpgk90yyv3d09209fqxqysand8bzb1cbfwzn"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
'(("autoload" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/")
("ftdetect" "share/vim/vimfiles/")
+ ("ftplugin" "share/vim/vimfiles/")
("plugin" "share/vim/vimfiles/")
("syntax" "share/vim/vimfiles/"))))
(home-page "https://github.com/tpope/vim-fugitive")
@@ -772,8 +761,7 @@ refactor Vim in order to:
(modify-phases %standard-phases
(add-after 'configure 'reference-nvim
(lambda* (#:key inputs #:allow-other-keys)
- (let ((nvim (string-append (assoc-ref inputs "neovim")
- "/bin/nvim")))
+ (let ((nvim (search-input-file inputs "/bin/nvim")))
;; This substitution should change one line, and replaces the default
;; value in the struct of options with an absolute store reference.
(substitute* "../source/src/main.c"
@@ -782,11 +770,9 @@ refactor Vim in order to:
(add-before 'build 'set-home
(lambda _ (setenv "HOME" "/tmp"))))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
- `(("efl" ,efl)
- ("msgpack" ,msgpack)
- ("neovim" ,neovim)))
+ (list efl msgpack neovim))
(home-page "https://github.com/jeanguyomarch/eovim/")
(synopsis "EFL GUI for Neovim")
(description "Graphical Neovim interface based on the @acronym{EFL, Enlightenment
@@ -838,11 +824,9 @@ and support for fonts with ligatures.")
(delete-file-recursively (string-append vifm "/vim")))
#t)))))
(native-inputs
- `(("groff" ,groff))) ; for the documentation
+ (list groff)) ; for the documentation
(inputs
- `(("libx11" ,libx11)
- ("ncurses" ,ncurses)
- ("perl" ,perl)))
+ (list libx11 ncurses perl))
(home-page "https://vifm.info/")
(synopsis "Flexible vi-like file manager using ncurses")
(description "Vifm is a file manager providing a @command{vi}-like usage
@@ -887,8 +871,7 @@ With the package comes a plugin to use vifm as a vim file selector.")
"13qgwkqbx012j5spis1aw8rb120rw0zphgjy1j58irax8r6j1ikb"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-greenlet" ,python-greenlet)
- ("python-msgpack" ,python-msgpack)))
+ (list python-greenlet python-msgpack))
(arguments
`(#:tests? #f))
(home-page "https://github.com/neovim/pynvim")
@@ -901,16 +884,16 @@ through its msgpack-rpc API.")
(define-public vim-guix-vim
(package
(name "vim-guix-vim")
- (version "0.3.0")
+ (version "0.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/Efraim/guix.vim.git/")
+ (url "https://gitlab.com/Efraim/guix.vim")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0bk2mnvbv1rfr0zzx4m8jjdw98wbbmdffx1h9svrjpg25lcvqv1b"))))
+ "080ni4z23qdr8rkrswjqfqfrrcnpn7qdgrg14glwji46wzvwxqyx"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
@@ -1067,3 +1050,317 @@ your code every time you make a change. @code{Vim-slime} is an attempt at
getting some of these features into Vim. It works with any REPL and isn't tied
to Lisp.")
(license license:expat))))
+
+(define-public vim-paredit
+ ;; The last tagged version is from August 2013.
+ (let ((commit "97d51d099523b37bb35cbcf3564cbfb46e66e4ec")
+ (revision "1"))
+ (package
+ (name "vim-paredit")
+ (version (git-version "0.9.11" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kovisoft/paredit")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07d5s20r0ssd7rir45vy0fqlci44gha1a81rcilgar227f3nw328"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/kovisoft/paredit")
+ (synopsis "Vim plugin for structured editing of Lisp S-expressions")
+ (description
+ "Paredit performs structured editing of Lisp S-expressions in Vim.
+@code{Paredit.vim} is similar to @code{paredit.el} for Emacs.")
+ ;; License listed in plugin/paredit.vim.
+ (license license:public-domain))))
+
+(define-public vim-surround
+ (package
+ (name "vim-surround")
+ (version "2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpope/vim-surround")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1b0bd5m5lv1p4d299mrwjfs2gk0zqwyaqdaid9hs9yqlxnr8s5nf"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/tpope/vim-surround")
+ (synopsis "Vim plugin for easy quoting and parenthesizing")
+ (description
+ "Surround.vim is all about \"surroundings\": parentheses, brackets,
+quotes, XML tags, and more. The plugin provides mappings to easily delete,
+change and add such surroundings in pairs.")
+ (license license:vim)))
+
+(define-public vim-gnupg
+ (package
+ (name "vim-gnupg")
+ (version "2.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jamessan/vim-gnupg/releases/"
+ "download/v" version
+ "/vim-gnupg-v" version ".tar.gz"))
+ (sha256
+ (base32 "02w8lgyyh7wgxysvmmcf9ja5c06vrbyh3alzvv97x8cfhrp0skn7"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://www.vim.org/scripts/script.php?script_id=3645")
+ (synopsis "Vim plugin for transparent editing of gpg encrypted files")
+ (description
+ "This script implements transparent editing of gpg encrypted files. The
+filename must have a @code{.gpg}, @code{.pgp} or @code{.asc} suffix. When
+opening such a file the content is decrypted, and the content will be encrypted
+to all recipients before it is written. This script turns off viminfo,
+swapfile, and undofile when editing encrypted files to increase security.")
+ (properties
+ '((release-monitoring-url . "https://github.com/jamessan/vim-gnupg/releases")))
+ (license license:gpl2+)))
+
+(define-public vim-ctrlp
+ (package
+ (name "vim-ctrlp")
+ (version "1.81")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ctrlpvim/ctrlp.vim")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0n68hg59h4rjn0ziqbsh5pr03l3kr98zk54659ny6vq107af1w96"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://ctrlpvim.github.io/ctrlp.vim/")
+ (synopsis "Fuzzy file, buffer, mru, tag, etc. finder for Vim")
+ (description
+ "CtrlP features:
+@itemize
+@item Written in pure Vimscript for MacVim, gVim and Vim 7.0+.
+@item Full support for Vim's regexp as search patterns.
+@item Built-in @acronym{Most Recently Used, MRU} files monitoring and search.
+@item Built-in project's root finder.
+@item Open multiple files at once.
+@item Create new files and directories.
+@item Execute Ex commands on an opening file (jump to a line, to a string or do
+anything).
+@item Optional cross-session caching and history allow for fast initialization.
+@item Mappings and usage conform to Vim's conventions.
+@end itemize")
+ (license license:vim)))
+
+(define-public vim-mucomplete
+ (package
+ (name "vim-mucomplete")
+ (version "1.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lifepillar/vim-mucomplete")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "054g80n09mmxxlh8xaic29bn8bgn3clvv732rymljdyvbj1mlhwd"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/lifepillar/vim-mucomplete")
+ (synopsis "MUcomplete is a minimalist autocompletion plugin for Vim")
+ (description
+ "MUcomplete is an implementation of chained (fallback) completion,
+whereby several completion methods are attempted one after another until a
+result is returned.")
+ (license license:expat)))
+
+(define-public vim-gitgutter
+ (let ((commit "256702dd1432894b3607d3de6cd660863b331818")
+ (revision "1"))
+ (package
+ (name "vim-gitgutter")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/airblade/vim-gitgutter")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zpa7cs59a8sq0k3frlf9flpf30jcn239yrpmv40r7nqvxzglbpl"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (synopsis "Vim plugin which shows a git diff in the sign column")
+ (description
+ "A Vim plugin which shows a git diff in the sign column. It shows which
+lines have been added, modified, or removed. You can also preview, stage, and
+undo individual hunks; and stage partial hunks. The plugin also provides a hunk
+text object. The signs are always up to date and the plugin never saves your
+buffer.")
+ (home-page "https://github.com/airblade/vim-gitgutter")
+ (license license:expat))))
+
+(define-public vim-characterize
+ (package
+ (name "vim-characterize")
+ (version "1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpope/vim-characterize")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ppsbsd696ih40d9f76mdl9sd9y7p2pvm65qmvq4b2zhkv4xbpxz"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/tpope/vim-characterize")
+ (synopsis "Vim plugin for showing Unicode character metadata")
+ (description
+ "In Vim, pressing @code{ga} on a character reveals its representation in
+decimal, octal, and hex. Characterize.vim modernizes this with the following
+additions:
+@itemize
+@item Unicode character names: @code{U+00A9 COPYRIGHT SYMBOL}
+@item Vim digraphs (type after @code{<C-K>} to insert the character):
+@code{Co}, @code{cO}
+@item Emoji codes: @code{:copyright:}
+@item HTML entities: @code{&copy;}
+@end itemize")
+ (license license:vim)))
+
+(define-public vim-tagbar
+ (package
+ (name "vim-tagbar")
+ (version "3.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/preservim/tagbar")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fqfs8msmr6d4kpvxqp14sdjvp5fj52q5w5kz71myzcd4kqzmirp"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/")
+ ("syntax" "share/vim/vimfiles/"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'link-univerisal-ctags
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((ctags (assoc-ref inputs "universal-ctags")))
+ (substitute* "autoload/tagbar.vim"
+ (("(.*)universal-ctags']" all leader)
+ (string-append all "\n"
+ leader ctags "/bin/ctags']")))))))))
+ (inputs
+ (list universal-ctags))
+ (home-page "https://github.com/preservim/tagbar")
+ (synopsis "Vim plugin that displays tags in a window, ordered by scope")
+ (description
+ "Tagbar is a Vim plugin that provides an easy way to browse the tags of
+the current file and get an overview of its structure. It does this by creating
+a sidebar that displays the ctags-generated tags of the current file, ordered
+by their scope. This means that for example methods in C++ are displayed under
+the class they are defined in.")
+ (license license:vim)))
+
+(define-public vim-nerdtree
+ (package
+ (name "vim-nerdtree")
+ (version "6.10.16")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/preservim/nerdtree")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1si8qla86ng8cffbmfrk9gss0i3912yw0f1ph4bsiq0kk837lccp"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("lib" "share/vim/vimfiles/")
+ ("nerdtree_plugin" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/")
+ ("syntax" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/preservim/nerdtree")
+ (synopsis "Tree explorer plugin for Vim")
+ (description
+ "The NERDTree is a file system explorer for the Vim editor. Using this
+plugin, users can visually browse complex directory hierarchies, quickly open
+files for reading or editing, and perform basic file system operations.")
+ (license license:wtfpl2)))
+
+(define-public vim-nerdcommenter
+ (let ((commit "a65465d321f2f8a74b2ffa540b9b87563f7e12e8")
+ (revision "1"))
+ (package
+ (name "vim-nerdcommenter")
+ (version (git-version "2.5.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/preservim/nerdcommenter")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00ir65iv8jfbgzjmj7332fmydh0qhabbhx8zbvd3j6pgfxqpaafw"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/preservim/nerdcommenter")
+ (synopsis "Vim plugin for easy commenting of code")
+ (description
+ "NERD commenter is a Vim plugin that provides many different commenting
+operations and styles which are invoked via key mappings and a menu. These
+operations are available for most filetypes.")
+ (license license:cc0))))