質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

0回答

829閲覧

Vimで自動更新時計を作りたい

matonrin

総合スコア12

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2019/06/21 12:30

Vimのタイマー機能を使って1分毎に自動的に更新される時計を作りたいと思い、試しに自分で作ってみました。

しかし、タイマーが最初にコールバック関数を呼んだ際、「関数の引数が多すぎます:updateClock」というエラーが出て、時計の更新に失敗しました。

以下がそのソースです。

VimScript

1"タイトルに表示されている時刻を1分毎に更新する 2let s:original_title = &titlestring 3fu! s:updateClock() 4 let l:day_of_week = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] 5 let l:idx = strftime('%w') 6 let l:datetime = strftime('%H:%M %Y/%m/%d ').l:day_of_week[l:idx] 7 let &titlestring = s:original_title.' '.l:datetime 8 call s:setTimer() 9endf 10"Vimのタイマーが正確に1分毎に動くとは限らないので、 11"時刻の更新タイミングを毎回調整する 12fu! s:setTimer() 13 "うるう秒(60秒)も考慮する 14 let l:second = str2nr( strftime('%S') ) % 60 15 call timer_start(1000*(60-l:second), function("s:updateClock")) 16endf 17"初回呼び出し 18call s:updateClock()

これは、私のやり方が悪いのでしょうか。それとも、Vimのタイマーは再帰呼び出しに対応していないのでしょうか。

また、今までは自動コマンドを使って時計を更新させていたのですが、もし別のアイディアがあれば教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問