【vim】servername を便利に使う関数

田中太郎
田中太郎

vim のオプションである servername の指定を便利にする関数を紹介します!

概要

vim を起動するとき、オプションで –servername を指定すると、別な画面からファイルを開くことができます。

便利な機能ですが、–servername とわざわざ指定するのは面倒なので、簡単に使える関数を作成するしました。

servername のおさらい

vim –servername <サーバ名> <ファイル名>

でファイルを開くと、別な画面から

vim –servername <サーバ名> –remote <ファイル名>

で元々開いていたvim でファイルを開くことができる。

作成した関数の紹介

動作

vims

vims <ファイル名>

と入力すると、

vim –servername hoge <ファイル名>

と同じ動作をする。また、

vims <ファイル名> <サーバ名>

とすると、<サーバ名>でファイルを開きます。

vimr

vimr <ファイル名>

と入力すると

vim –servername hoge –remote <ファイル名>

と同じ動作をする。また、

vimr <ファイル名> <サーバ名>

とすると、<サーバ名>でファイルを開きます。

サンプルコード

# vims の関数を作成します。
function vims() {
# ここにヘルプの記述を書きます。
    function help(){
        echo "help:"
        echo "      vims [filename] {servername}"
    }
# filesという配列を作成します。
    files=()

# デフォルトのサーバ名をhogeにします。
    servername=hoge

# 引数が指定されていないと、上記のヘルプが出力されます。
    if [[ $# -eq 0 ]] then;
        help
        return 1
    fi

# 引数が1つだったときはこの行が動作します。
    if [[ $# -eq 1 ]] then;
        echo "servername $servername"
        vim --servername hoge $1
        return
    fi

# 引数が2以上のときはこの行が動作します。
    for file in $*
    do
# 存在しないファイル名がある場合、その名前がサーバ名になります。
        if ! [[ -f $file ]] then;
            servername=$file
            break
        fi
        files+=$file
    done
    echo "servername $servername"
    echo "argument $*"
    vim --servername $servername $files
    return
}

# vimr の関数を作成します。
function vimr() {

# ここにヘルプの記述を書きます。
    function help(){
        echo "help:"
        echo "      vimr [filename] {servername}"
    }

# files という配列を作成します。
    files=()

# デフォルトのサーバ名をhogeに設定します。
    servername=hoge

# 引数が指定されていないと、上記のヘルプが出力されます。
    if [[ $# -eq 0 ]] then;
        help
        return 1
    fi

# 引数が1つだったときはこの行が動作します。
    if [[ $# -eq 1 ]] then;
        echo "servername $servername"
        vim --servername hoge --remote $1
        return
    fi

# 引数が2以上のときはこの行が動作します。
    for file in $*
    do
# 存在しないファイル名がある場合、その名前がサーバ名になります。
        if ! [[ -f $file ]] then;
            servername=$file
            break
        fi
        files+=$file
    done
    echo "servername $servername"
    vim --servername $servername --remote $files
    return
}

まとめ

今回は、servername のオプションを便利に使うための関数を作成しました。ぜひ使ってみてください。

タイトルとURLをコピーしました