quickrun.vimで非同期実行している時に実行中かどうか分かるようにする
概要
quickrun.vim+vimproc.vimでプログラムをvim内で非同期実行する際に実行中であれば、statuslineにRunning...と表示する。
環境
#nvim -v [18:32:44]
NVIM v0.3.4
Build type: Release
LuaJIT 2.1.0-beta3
# head -n 4 quickrun.vim
" Run commands quickly.
" Version: 0.7.0
" Author : thinca <[email protected]>
" License: zlib License
vimproc.vim
ver 9.3 (https://github.com/Shougo/vimproc.vim/releases)
はじめに
#nvim -v [18:32:44]
NVIM v0.3.4
Build type: Release
LuaJIT 2.1.0-beta3
# head -n 4 quickrun.vim
" Run commands quickly.
" Version: 0.7.0
" Author : thinca <[email protected]>
" License: zlib License
vimproc.vim
ver 9.3 (https://github.com/Shougo/vimproc.vim/releases)
quickrun.vim+vimproc.vimでプログラムをvim内で素早く非同期実行できることはよく知られていますし、使われている方も多いと思います。
非同期実行ができることでプログラムの実行中にもvimが使えてとても便利です。
しかし、便利になった半面、使っているとこんな疑問が湧き上がります。
これ今実行してるのか...?
非同期実行によって実行中にvimが使えなくなることがなくなりました。
が、その代わり自由に移動できるので、今実行しているのか分かりません。逆に実行していると思って待っていたら実行されていなかったこともあります。贅沢な悩みですが、結構困ります。
対処法
実行中にvimで以下のコマンドを実行すると、実行中の場合は1、実行中で無い場合は0が返されることが分かりました。
:echo quickrun#is_running()
しかし、いちいち何度もこのコマンドを実行するのは面倒です。
実行中の時だけstatuslineに実行中であることを表示しましょう。
function! My_running()
if quickrun#is_running()
return " Running... "
else
return ""
endif
endfunction
set laststatus=2
set statusline=%F%m%r%h%w\%=
"statuslineの設定の表示したいところにこの行を追加---------
set statusline+=%{My_running()}
"-------------------------------------------------
set statusline+=%l/%L
これで実行中のときだけstatuslineにRunning...の文字が表示されたと思います。
一件落着。
最後に
初めてvimscriptいじりました。関数名の最初は大文字なんですね。(一敗)
こうした方がいいとかここ違うぞとかあれば是非コメントお願いします。
Author And Source
この問題について(quickrun.vimで非同期実行している時に実行中かどうか分かるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/_Alignof/items/db19696d6eacd28252f1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .