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.scm344
1 files changed, 311 insertions, 33 deletions
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 4cc8b4a75f..642384adfc 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2020, 2021 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 Tissevert <tissevert+guix@marvid.fr>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -43,6 +44,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 +75,7 @@
(define-public vim
(package
(name "vim")
- (version "8.2.2689")
+ (version "8.2.3487")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -82,7 +84,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0l0hkr8cw7fdsfc5zzcxx3q1wmv9k3hrgalvffq0l69lviqdgh0p"))))
+ "1s09jvr1vv9zjk352vbfidfy5fidbf83kz2vk0kk6zv24j1yck24"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@@ -98,6 +100,7 @@
(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")
@@ -153,10 +156,7 @@
(string-append vimdir "/vimrc"))
#t))))))
(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"))
@@ -244,9 +244,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)
@@ -389,32 +388,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")
@@ -473,7 +472,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)
@@ -482,14 +481,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")
@@ -780,11 +779,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
@@ -795,7 +792,7 @@ and support for fonts with ligatures.")
(define-public vifm
(package
(name "vifm")
- (version "0.11")
+ (version "0.12")
(source
(origin
(method url-fetch)
@@ -806,7 +803,7 @@ and support for fonts with ligatures.")
"vifm-" version ".tar.bz2")))
(sha256
(base32
- "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh"))))
+ "1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-build-timestamp")
@@ -836,11 +833,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
@@ -885,8 +880,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")
@@ -1065,3 +1059,287 @@ 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-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))))