ファイルを開くときのviのカーソル位置

ファイルを開くときのviのカーソル位置
vishex ()
{ 
    echo '#!/bin/bash' > $1;
    chmod +x $1;
    vi $1
}

上記の関数の目的は、bashスクリプトをすばやく快適に生成できるエイリアスを持つことです。ファイルを開くときにカーソルをShebang行ではなく下の行に置くようにしたいと思います。似たようなことを試しましたが、echo 'blabla\n', echo "blala\n", printf "blala\n"結果はありません。

答え1

これを使用してください:

vishex () 
{ 
    [ -e "$1" ] || echo -e '#!/bin/bash\n\n' > "$1";
    chmod +x "$1";
    vi "+normal G" +startinsert "$1"
}
  • [ -e "$1" ]スクリプトがすでに存在することを確認してください。そうであればecho上書きしません。
  • -e\nechoでは、改行などのバックスラッシュエスケープを解釈できます。次に、shebang行の後に2つの改行を挿入します。
  • +normal GGファイルの最後の行に移動するexコマンドを実行します。
  • +startinsert挿入モードに直接切り替えます(質問されていないため、そのままにしておくこともできます)。

したがって、実行するとvishex script次のようになります。

#!/bin/bash

<- cursor is here
~
[...]
~
-- INSERT --                                                               3,1           All

答え2

あなたの家実際にはウィム、マンページから:

+[num]   For  the  first file the cursor will be positioned on line "num".
         If "num" is missing, the cursor will be positioned  on  the  last line.

したがって、以下を使用してください。

vi + "$1"

関連情報