From 3964c63d02638b60d337fdb119212c29ede19084 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Thu, 3 May 2018 12:26:18 +0200 Subject: 42746: _vim: handle special values for -u/-U This is based on state=verbosity from the same file. --- ChangeLog | 5 +++++ Completion/Unix/Command/_vim | 21 +++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 30369f08e..26f0d882e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-06-27 Daniel Hahler + + * 42746: Completion/Unix/Command/_vim: _vim: handle special values for + -u/-U. + 2018-06-27 Eric Cook * 43096: Eitan: Completion/Unix/Command/_vim, remove duplicate flag diff --git a/Completion/Unix/Command/_vim b/Completion/Unix/Command/_vim index 9f2eacb1f..8853fac30 100644 --- a/Completion/Unix/Command/_vim +++ b/Completion/Unix/Command/_vim @@ -41,7 +41,7 @@ arguments=( '-T[set terminal type]:::_terminals' '--not-a-term[skip warning for input/output not being a terminal]' '--ttyfail[exit if input or output is not a terminal]' - '-u[use given vimrc file instead of default .vimrc]::rc file:_files' + '-u[use given vimrc file instead of default .vimrc]:config:->config' "--noplugin[don't load plugin scripts]" '-o-[number of windows to open (default: one for each file)]::window count: ' '-O-[number of windows to vertically split open (default is one for each file)]::window count: ' @@ -89,7 +89,7 @@ arguments=( '--role[set unique role to identify main window]:role' '--socketid[open vim inside another GTK widget]:xid' '--echo-wid[echo window ID on stdout]' - '-U[use given gvimrc file instead of default .gvimrc]::rc file:_files' + '-U[use given gvimrc file instead of default .gvimrc]:gui config:->configgui' ) _arguments -C -S $arguments && ret=0 @@ -119,6 +119,23 @@ elif [[ $state = verbosity ]]; then fi (( ret )) || break done +elif [[ "$state" = config* ]]; then + _tags special files + local names=( + "NONE:'skip initialization from files and environment variables'" + "NORC:'same as NONE, but load plugins'" + ) + # gvim only supports -U NONE to skip GUI initialization. + [[ $state != configgui || $service != *g* ]] && names+=( + "DEFAULTS:'same as NONE, but loads defaults.vim'" + ) + while _tags; do + _requested special && _describe -V 'special' "(${(F)names})" && ret=0 + if _requested files expl 'rc file'; then + _files "$expl[@]" && ret=0 + fi + (( ret )) || break + done fi return ret -- cgit 1.4.1