aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Fabian Homborg <FHomborg@gmail.com>2015-09-23 12:59:05 +0200
committerGravatar Fabian Homborg <FHomborg@gmail.com>2015-09-23 12:59:05 +0200
commit6f92781992bc1419944ea8e40d63b9c2ab02fa9f (patch)
treea4672bd991446c247020a08705ed49f92288a094
parentc1bd3b5824027f23b41bbac77c5e28f856c5dc18 (diff)
Refactor *vi* completions, add nvim wrapper
This assumes `vim` is always vim (or close enough, nvim should also work), while `vi` could be either. Fixes #2416
-rw-r--r--share/completions/gvim.fish2
-rw-r--r--share/completions/gvimdiff.fish4
-rw-r--r--share/completions/nvim.fish1
-rw-r--r--share/completions/vi.fish26
-rw-r--r--share/completions/vim.fish72
-rw-r--r--share/completions/vimdiff.fish4
-rw-r--r--share/functions/__fish_complete_vi.fish109
7 files changed, 98 insertions, 120 deletions
diff --git a/share/completions/gvim.fish b/share/completions/gvim.fish
index 3fddde14..2601ce90 100644
--- a/share/completions/gvim.fish
+++ b/share/completions/gvim.fish
@@ -1,2 +1,2 @@
-__fish_complete_vi gvim
+complete -c gvim -w vim
diff --git a/share/completions/gvimdiff.fish b/share/completions/gvimdiff.fish
index b998cc9c..3db0d84b 100644
--- a/share/completions/gvimdiff.fish
+++ b/share/completions/gvimdiff.fish
@@ -1,3 +1 @@
-# completion for gvimdiff
-
-__fish_complete_vi gvimdiff
+complete -c gvimdiff -w vim
diff --git a/share/completions/nvim.fish b/share/completions/nvim.fish
new file mode 100644
index 00000000..fcb054f6
--- /dev/null
+++ b/share/completions/nvim.fish
@@ -0,0 +1 @@
+complete -c nvim -w vim
diff --git a/share/completions/vi.fish b/share/completions/vi.fish
index ab346ac0..2192f392 100644
--- a/share/completions/vi.fish
+++ b/share/completions/vi.fish
@@ -1,3 +1,25 @@
-# completion for vi
+# plain vi (as bundled with SunOS 5.8)
+# todo:
+# -wn : Set the default window size to n
+# +command : same as -c command
+
+
+# Check if vi is really vim
+if vi --version > /dev/null ^ /dev/null
+ complete -c vi -w vim
+else
+ complete vi -s s --description 'Suppress all interactive user feedback'
+ complete vi -s C --description 'Encrypt/decrypt text'
+ complete vi -s l --description 'Set up for editing LISP programs'
+ complete vi -s L --description 'List saved file names after crash'
+ complete vi -s R --description 'Read-only mode'
+ complete vi -s S --description 'Use linear search for tags if tag file not sorted'
+ complete vi -s v --description 'Start in display editing state'
+ complete vi -s V --description 'Verbose mode'
+ complete vi -s x --description 'Encrypt/decrypt text'
+
+ complete vi -r -s r --description 'Recover file after crash'
+ complete vi -r -s t --description 'Edit the file containing a tag'
+ complete vi -r -c t --description 'Begin editing by executing the specified editor command'
+end
-__fish_complete_vi vi
diff --git a/share/completions/vim.fish b/share/completions/vim.fish
index 46970706..076ff998 100644
--- a/share/completions/vim.fish
+++ b/share/completions/vim.fish
@@ -1,3 +1,71 @@
-# completion for vim
+# these don't work
+#complete vim -a - --description 'The file to edit is read from stdin. Commands are read from stderr, which should be a tty'
-__fish_complete_vi vim
+# todo
+# +[num] : Position the cursor on line number
+# +/{pat} : Position the cursor on the first occurence of {pat}
+# +{command} : Execute Ex command after the first file has been read
+complete vim -s c -r --description 'Execute Ex command after the first file has been read'
+complete vim -s S -r --description 'Source file after the first file has been read'
+complete vim -l cmd -r --description 'Execute Ex command before loading any vimrc'
+complete vim -s d -r --description 'Use device as terminal (Amiga only)'
+complete vim -s i -r --description 'Set the viminfo file location'
+complete vim -s o -r --description 'Open stacked windows for each file'
+complete vim -s O -r --description 'Open side by side windows for each file'
+complete vim -s p -r --description 'Open tab pages for each file'
+complete vim -s q -r --description 'Start in quickFix mode'
+complete vim -s r -r --description 'Use swap files for recovery'
+complete vim -s s -r --description 'Source and execute script file'
+complete vim -s t -r --description 'Set the cursor to tag'
+complete vim -s T -r --description 'Terminal name'
+complete vim -s u -r --description 'Use alternative vimrc'
+complete vim -s U -r --description 'Use alternative vimrc in GUI mode'
+complete vim -s w -r --description 'Record all typed characters'
+complete vim -s W -r --description 'Record all typed characters (overwrite file)'
+
+complete vim -s A --description 'Start in Arabic mode'
+complete vim -s b --description 'Start in binary mode'
+complete vim -s C --description 'Behave mostly like vi'
+complete vim -s d --description 'Start in diff mode'
+complete vim -s D --description 'Debugging mode'
+complete vim -s e --description 'Start in Ex mode'
+complete vim -s E --description 'Start in improved Ex mode'
+complete vim -s f --description 'Start in foreground mode'
+complete vim -s F --description 'Start in Farsi mode'
+complete vim -s g --description 'Start in GUI mode'
+complete vim -s h --description 'Print help message and exit'
+complete vim -s H --description 'Start in Hebrew mode'
+complete vim -s L --description 'List swap files'
+complete vim -s l --description 'Start in lisp mode'
+complete vim -s m --description 'Disable file modification'
+complete vim -s M --description 'Disallow file modification'
+complete vim -s N --description 'Reset compatibility mode'
+complete vim -s n --description 'Don\'t use swap files'
+complete vim -s R --description 'Read only mode'
+complete vim -s r --description 'List swap files'
+complete vim -s s --description 'Start in silent mode'
+complete vim -s V --description 'Start in verbose mode'
+complete vim -s v --description 'Start in vi mode'
+complete vim -s x --description 'Use encryption when writing files'
+complete vim -s X --description 'Don\'t connect to X server'
+complete vim -s y --description 'Start in easy mode'
+complete vim -s Z --description 'Start in restricted mode'
+
+complete vim -o nb --description 'Become an editor server for NetBeans'
+
+complete vim -l no-fork --description 'Start in foreground mode'
+complete vim -l echo-wid --description 'Echo the Window ID on stdout (GTK GUI only)'
+complete vim -l help --description 'Print help message and exit'
+complete vim -l literal --description 'Do not expand wildcards'
+complete vim -l noplugin --description 'Skip loading plugins'
+complete vim -l remote --description 'Edit files on Vim server'
+complete vim -l remote-expr --description 'Evaluate expr on Vim server'
+complete vim -l remote-send --description 'Send keys to Vim server'
+complete vim -l remote-silent --description 'Edit files on Vim server'
+complete vim -l remote-wait --description 'Edit files on Vim server'
+complete vim -l remote-wait-silent --description 'Edit files on Vim server'
+complete vim -l serverlist --description 'List all Vim servers that can be found'
+complete vim -l servername --description 'Set server name'
+complete vim -l version --description 'Print version information and exit'
+
+complete vim -l socketid -r --description 'Run gvim in another window (GTK GUI only)'
diff --git a/share/completions/vimdiff.fish b/share/completions/vimdiff.fish
index bf67fde3..2152fe09 100644
--- a/share/completions/vimdiff.fish
+++ b/share/completions/vimdiff.fish
@@ -1,3 +1 @@
-# completion for vimdiff
-
-__fish_complete_vi vimdiff
+complete -c vimdiff -w vim
diff --git a/share/functions/__fish_complete_vi.fish b/share/functions/__fish_complete_vi.fish
deleted file mode 100644
index d64df284..00000000
--- a/share/functions/__fish_complete_vi.fish
+++ /dev/null
@@ -1,109 +0,0 @@
-#completion for vi/vim
-
-function __fish_complete_vi -d "Completions for vi and its aliases" --argument-names cmd
- set -l is_vim
- if type -q $cmd
- eval command $cmd --version >/dev/null ^/dev/null; and set -l is_vim vim
- end
-
- # vim
- set -l cmds -c $cmd
- if test -n "$is_vim"
- # these don't work
- #complete $cmds -a - --description 'The file to edit is read from stdin. Commands are read from stderr, which should be a tty'
-
- # todo
- # +[num] : Position the cursor on line number
- # +/{pat} : Position the cursor on the first occurence of {pat}
- # +{command} : Execute Ex command after the first file has been read
- complete $cmds -s c -r --description 'Execute Ex command after the first file has been read'
- complete $cmds -s S -r --description 'Source file after the first file has been read'
- complete $cmds -l cmd -r --description 'Execute Ex command before loading any vimrc'
- complete $cmds -s d -r --description 'Use device as terminal (Amiga only)'
- complete $cmds -s i -r --description 'Set the viminfo file location'
- complete $cmds -s o -r --description 'Open stacked windows for each file'
- complete $cmds -s O -r --description 'Open side by side windows for each file'
- complete $cmds -s p -r --description 'Open tab pages for each file'
- complete $cmds -s q -r --description 'Start in quickFix mode'
- complete $cmds -s r -r --description 'Use swap files for recovery'
- complete $cmds -s s -r --description 'Source and execute script file'
- complete $cmds -s t -r --description 'Set the cursor to tag'
- complete $cmds -s T -r --description 'Terminal name'
- complete $cmds -s u -r --description 'Use alternative vimrc'
- complete $cmds -s U -r --description 'Use alternative vimrc in GUI mode'
- complete $cmds -s w -r --description 'Record all typed characters'
- complete $cmds -s W -r --description 'Record all typed characters (overwrite file)'
-
- complete $cmds -s A --description 'Start in Arabic mode'
- complete $cmds -s b --description 'Start in binary mode'
- complete $cmds -s C --description 'Behave mostly like vi'
- complete $cmds -s d --description 'Start in diff mode'
- complete $cmds -s D --description 'Debugging mode'
- complete $cmds -s e --description 'Start in Ex mode'
- complete $cmds -s E --description 'Start in improved Ex mode'
- complete $cmds -s f --description 'Start in foreground mode'
- complete $cmds -s F --description 'Start in Farsi mode'
- complete $cmds -s g --description 'Start in GUI mode'
- complete $cmds -s h --description 'Print help message and exit'
- complete $cmds -s H --description 'Start in Hebrew mode'
- complete $cmds -s L --description 'List swap files'
- complete $cmds -s l --description 'Start in lisp mode'
- complete $cmds -s m --description 'Disable file modification'
- complete $cmds -s M --description 'Disallow file modification'
- complete $cmds -s N --description 'Reset compatibility mode'
- complete $cmds -s n --description 'Don\'t use swap files'
- complete $cmds -s R --description 'Read only mode'
- complete $cmds -s r --description 'List swap files'
- complete $cmds -s s --description 'Start in silent mode'
- complete $cmds -s V --description 'Start in verbose mode'
- complete $cmds -s v --description 'Start in vi mode'
- complete $cmds -s x --description 'Use encryption when writing files'
- complete $cmds -s X --description 'Don\'t connect to X server'
- complete $cmds -s y --description 'Start in easy mode'
- complete $cmds -s Z --description 'Start in restricted mode'
-
- complete $cmds -o nb --description 'Become an editor server for NetBeans'
-
- complete $cmds -l no-fork --description 'Start in foreground mode'
- complete $cmds -l echo-wid --description 'Echo the Window ID on stdout (GTK GUI only)'
- complete $cmds -l help --description 'Print help message and exit'
- complete $cmds -l literal --description 'Do not expand wildcards'
- complete $cmds -l noplugin --description 'Skip loading plugins'
- complete $cmds -l remote --description 'Edit files on Vim server'
- complete $cmds -l remote-expr --description 'Evaluate expr on Vim server'
- complete $cmds -l remote-send --description 'Send keys to Vim server'
- complete $cmds -l remote-silent --description 'Edit files on Vim server'
- complete $cmds -l remote-wait --description 'Edit files on Vim server'
- complete $cmds -l remote-wait-silent --description 'Edit files on Vim server'
- complete $cmds -l serverlist --description 'List all Vim servers that can be found'
- complete $cmds -l servername --description 'Set server name'
- complete $cmds -l version --description 'Print version information and exit'
-
- complete $cmds -l socketid -r --description 'Run gvim in another window (GTK GUI only)'
-
- # plain vi (as bundled with SunOS 5.8)
- else
-
- # todo:
- # -wn : Set the default window size to n
- # +command : same as -c command
-
- complete $cmds -s s --description 'Suppress all interactive user feedback'
- complete $cmds -s C --description 'Encrypt/decrypt text'
- complete $cmds -s l --description 'Set up for editing LISP programs'
- complete $cmds -s L --description 'List saved file names after crash'
- complete $cmds -s R --description 'Read-only mode'
- complete $cmds -s S --description 'Use linear search for tags if tag file not sorted'
- complete $cmds -s v --description 'Start in display editing state'
- complete $cmds -s V --description 'Verbose mode'
- complete $cmds -s x --description 'Encrypt/decrypt text'
-
- complete $cmds -r -s r --description 'Recover file after crash'
- complete $cmds -r -s t --description 'Edit the file containing a tag'
- complete $cmds -r -c t --description 'Begin editing by executing the specified editor command'
-
- end
-
-end
-
-