zshrc.d/30-functions-vim.zrc
author Mikael Berthe <mikael@lilotux.net>
Wed, 18 Mar 2015 20:12:05 +0100
changeset 28 aa674a9c97c2
child 56 d065bc0c6991
permissions -rw-r--r--
Add a command viml
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
# Change "viml file:n" to "vim file +n"
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
# Based on http://www.zsh.org/mla/users/2011/msg00333.html
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     4
#
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     5
function viml() {
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     6
    [[ "$#" != 1 || -r "$1" ]] && {
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     7
        vim "$@"
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     8
        return $?
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     9
    }
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    10
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    11
    local args
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    12
    args=(${(s.:.)1})
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    13
    [[ "$#args" -ge 2 && "$args[2]" == <-> ]] && \
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    14
        command vim "$args[1]" "+$args[2]"    || \
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    15
        command vim "$args[1]"
aa674a9c97c2 Add a command viml
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    16
}