From e652756fdb0495e58f3f4f3be3a82aa9f166731d Mon Sep 17 00:00:00 2001 From: Derek Wyatt Date: Tue, 20 Mar 2012 08:16:44 -0400 Subject: A plugin that makes it easier to interact with the (single) running instance of gvim --- plugins/vim-interaction/vim-interaction.plugin.zsh | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 plugins/vim-interaction/vim-interaction.plugin.zsh (limited to 'plugins/vim-interaction/vim-interaction.plugin.zsh') diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh new file mode 100644 index 000000000..3f346dfc3 --- /dev/null +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -0,0 +1,67 @@ +# +# See README.md +# +# Derek Wyatt (derek@{myfirstnamemylastname}.org +# + +function resolveFile +{ + if [ -f "$1" ]; then + echo $(readlink -f "$1") + else + echo "$1" + fi +} + +function callvim +{ + if [[ $# == 0 ]]; then + cat <} == $after ]]; then + after="$after" + fi + if [[ ${before#:} != $before && ${before%} == $before ]]; then + before="$before" + fi + local files="" + for f in $@ + do + files="$files $(resolveFile $f)" + done + if [[ -n $files ]]; then + files=':args! '"$files" + fi + cmd="$before$files$after" + gvim --remote-send "$cmd" +} + +alias v=callvim +alias vvsp="callvim -b':vsp'" +alias vhsp="callvim -b':sp'" +alias vk="callvim -b':wincmd k'" +alias vj="callvim -b':wincmd j'" +alias vl="callvim -b':wincmd l'" +alias vh="callvim -b':wincmd h'" -- cgit v1.2.3-70-g09d2 From 92227f171ad3777c2671395a9e1d7fbb86a11428 Mon Sep 17 00:00:00 2001 From: Derek Wyatt Date: Tue, 20 Mar 2012 09:55:25 -0400 Subject: Fixed: If you callvim on a non-existant file with a relative path, the CWD of the running gvim process is used, and that's not right. We use the PWD explicitly instead, in this case --- plugins/vim-interaction/vim-interaction.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins/vim-interaction/vim-interaction.plugin.zsh') diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh index 3f346dfc3..309012b34 100644 --- a/plugins/vim-interaction/vim-interaction.plugin.zsh +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -8,8 +8,10 @@ function resolveFile { if [ -f "$1" ]; then echo $(readlink -f "$1") + elif [[ "${1#/}" == "$1" ]]; then + echo "$(pwd)/$1" else - echo "$1" + echo $1 fi } -- cgit v1.2.3-70-g09d2 From 04a7536641621e0188987b5bb1362e6b922a8771 Mon Sep 17 00:00:00 2001 From: Derek Wyatt Date: Fri, 30 Mar 2012 06:33:06 -0400 Subject: Added an optional callout to the end of the interaction function. I put it in to allow me to put the window focus on MacVim / GVim depending on the different OS I happen to be on --- plugins/vim-interaction/vim-interaction.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) (limited to 'plugins/vim-interaction/vim-interaction.plugin.zsh') diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh index 309012b34..af7e60c88 100644 --- a/plugins/vim-interaction/vim-interaction.plugin.zsh +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -58,6 +58,9 @@ EOH fi cmd="$before$files$after" gvim --remote-send "$cmd" + if typeset -f postCallVim > /dev/null; then + postCallVim + fi } alias v=callvim -- cgit v1.2.3-70-g09d2 From 94dd6515365e0d2655485c5afc27e75a921fa6ec Mon Sep 17 00:00:00 2001 From: Derek Wyatt Date: Sun, 1 Apr 2012 15:41:39 -0400 Subject: Added an to the begining of everything. I ran something when I was in insert mode once and all it did was shove !args... into the buffer. first. --- plugins/vim-interaction/vim-interaction.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/vim-interaction/vim-interaction.plugin.zsh') diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh index af7e60c88..5142f1f9b 100644 --- a/plugins/vim-interaction/vim-interaction.plugin.zsh +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -30,7 +30,7 @@ EOH fi local cmd="" - local before="" + local before="" local after="" while getopts ":b:a:" option do -- cgit v1.2.3-70-g09d2