シェルとneovimでテンプレートする

2023-02-05

vim, neovim, shell

「シェルとneovimでテンプレートする」…伝わるだろうか?

雛形のあるドキュメント
雛形のなかに変数がある
何度も作成する
vimで

こんなときに便利だと思うtips

例えば

1
2
3
4
5
6
議事録
議題 :一番かわいい犬種
日時 :2023-01-01
参加者:マックス、ガスリー、ハミルトン

柴犬

こんな議事録を書くなら例えばこんなシェルスクリプトをパス通しとけば

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/zsh

YMD=`date '+%Y%m%d'`

## 引数をまるっと配列に
ARGS=($@)

## 1番目の引数が議題
TITLE="${ARGS[1]}"

## 2番目以降が参加者
MEMBER=`echo ${ARGS[2,-1]} | sed "s/ /,/g"`

## 議事録名は "日付_議題"
FILEPATH=`pwd -P`
FILENAME="${YMD}_${TITLE}"

HEADER=( \
"+i|参加者:${MEMBER}" \
"+i|日時 :`date '+%Y-%m-%d'`" \
"+i|議題 :${TITLE}" \
"+i|議事録" \
"+$")

/usr/bin/nvim "${FILEPATH}/${FILENAME}" $HEADER

例のファイル名はshibaとして shiba 一番可愛い犬種 マックス ガスリー ハミルトン

1
2
3
4
議事録
議題 :一番可愛い犬種
日時 :2023-02-05
参加者:マックス,ガスリー,ハミルトン

引数をチェックしてなかったり色々雑ですが、個人で使う分には十分かと。

コツ

neovimの実行時引数に +ホニャララオプション をつけるとオープン後コマンドとして実行してくれる。
今回のだと i で入力モードに | 以降が入力文字列
最後の $ でファイル末尾にカーソル移動

なんかクセがあって i -> a にするとシェルごとクラッシュしました(!?)
+o とかで空行入れようとしてもクラッシュしました...
何なんでしょうね。。。色々試してうまく行ったのが今って感じ。
もしご利用される方がいたらご注意ください。

あと行の順番が逆順です。
コレも謎。こういうもんだと割り切り。

コメント

投稿する

投稿したコメントはご自身で削除できません

不適切なコメントと判断した場合は管理側で削除することがあります