Last active
January 4, 2016 07:19
-
-
Save osyo-manga/8587838 to your computer and use it in GitHub Desktop.
ProcessManager Performance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| command! -bar TimerStart let start_time = reltime() | |
| command! -bar TimerEnd echo reltimestr(reltime(start_time)) | unlet start_time | |
| command! -nargs=1 Timer | |
| \ TimerStart | |
| \| call eval(chained#script_function_to_function_symbol(<q-args>, chained#SNR())) | |
| \| TimerEnd | |
| let s:P = vital#of("vital").import("ProcessManager") | |
| function! s:if_python() | |
| return pyeval("pm_test.test()") | |
| endfunction | |
| function! s:process_manager() | |
| call s:P.writeln("test", 'pm_test.test()') | |
| return s:P.read_wait("test", 10, ['>>>']) | |
| endfunction | |
| function! s:main() | |
| python import pm_test | |
| TimerStart | |
| let result1 = s:if_python() | |
| TimerEnd | |
| call s:P.touch("test", "python -i") | |
| call s:P.read_wait("test", 3, ['>>>']) | |
| call s:P.writeln("test", 'import pm_test') | |
| echo s:P.read_wait("test", 3, ['>>>']) | |
| TimerStart | |
| let result2 = s:process_manager() | |
| TimerEnd | |
| call s:P.kill("test") | |
| echo len(result1) == len(result2[0]) | |
| endfunction | |
| call s:main() | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import sys | |
| def test(): | |
| result = "" | |
| for line in open("test.txt", "r"): | |
| result += line | |
| return result | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html> | |
| <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#"> | |
| <meta charset='utf-8'> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>vital.vim/autoload/vital/__latest__/ProcessManager.vim at master · vim-jp/vital.vim</title> | |
| <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> | |
| <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> | |
| <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" /> | |
| <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" /> | |
| <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" /> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png"> | |
| <meta name="hostname" content="github-fe122-cp1-prd.iad.github.net"> | |
| <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]"> | |
| <link rel="assets" href="https://github.global.ssl.fastly.net/"> | |
| <link rel="conduit-xhr" href="https://ghconduit.com:25035/"> | |
| <link rel="xhr-socket" href="/_sockets" /> | |
| <meta name="msapplication-TileImage" content="/windows-tile.png" /> | |
| <meta name="msapplication-TileColor" content="#ffffff" /> | |
| <meta name="selected-link" value="repo_source" data-pjax-transient /> | |
| <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="B6F95C6A:6644:E50EC4:52E18AFE" name="octolytics-dimension-request_id" /><meta content="214488" name="octolytics-actor-id" /><meta content="osyo-manga" name="octolytics-actor-login" /><meta content="e5012931f92cc8195a7f530c4e37bcc88d86a6df4ea3fd06d12d9d5795f6d0e8" name="octolytics-actor-hash" /> | |
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |
| <meta content="authenticity_token" name="csrf-param" /> | |
| <meta content="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" name="csrf-token" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github-43087292f81aebbe92f90a36344865c4ad8170a0.css" media="all" rel="stylesheet" type="text/css" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github2-d23a1b1c4a1bc509a0ca67face2fb37ef257f599.css" media="all" rel="stylesheet" type="text/css" /> | |
| <script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script> | |
| <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-eab207422bd65ea8c46ef3d26d6fbcc74bba89ce.js" type="text/javascript"></script> | |
| <meta http-equiv="x-pjax-version" content="1ceda3c4fa0194817b46f4df6a3f2c23"> | |
| <link data-pjax-transient rel='permalink' href='/vim-jp/vital.vim/blob/3e229e28b002d42b9ca0d15bddddf0872fa2eed0/autoload/vital/__latest__/ProcessManager.vim'> | |
| <meta property="og:title" content="vital.vim"/> | |
| <meta property="og:type" content="githubog:gitrepository"/> | |
| <meta property="og:url" content="https://github.com/vim-jp/vital.vim"/> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/> | |
| <meta property="og:site_name" content="GitHub"/> | |
| <meta property="og:description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins"/> | |
| <meta name="description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins" /> | |
| <meta content="1051958" name="octolytics-dimension-user_id" /><meta content="vim-jp" name="octolytics-dimension-user_login" /><meta content="1308435" name="octolytics-dimension-repository_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1308435" name="octolytics-dimension-repository_network_root_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_network_root_nwo" /> | |
| <link href="https://github.com/vim-jp/vital.vim/commits/master.atom" rel="alternate" title="Recent Commits to vital.vim:master" type="application/atom+xml" /> | |
| </head> | |
| <body class="logged_in env-production windows vis-public page-blob"> | |
| <div class="wrapper"> | |
| <div class="header header-logged-in true"> | |
| <div class="container clearfix"> | |
| <a class="header-logo-invertocat" href="https://github.com/"> | |
| <span class="mega-octicon octicon-mark-github"></span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/notifications" class="notification-indicator tooltipped downwards contextually-unread" data-gotokey="n" title="You have unread notifications in this repository"> | |
| <span class="mail-status unread"></span> | |
| </a> | |
| <div class="command-bar js-command-bar in-repository"> | |
| <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get"> | |
| <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off" | |
| data-username="osyo-manga" | |
| data-repo="vim-jp/vital.vim" | |
| data-branch="master" | |
| data-sha="e9e83ed3a8ffeefb55aeb10af4b80747448aeda6" | |
| > | |
| <input type="hidden" name="nwo" value="vim-jp/vital.vim" /> | |
| <div class="select-menu js-menu-container js-select-menu search-context-select-menu"> | |
| <span class="minibutton select-menu-button js-menu-target"> | |
| <span class="js-select-button">This repository</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container"> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" /> | |
| <div class="select-menu-item-text js-select-button-text">This repository</div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" name="search_target" value="global" /> | |
| <div class="select-menu-item-text js-select-button-text">All repositories</div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| </div> | |
| </div> | |
| <span class="octicon help tooltipped downwards" title="Show command bar help"> | |
| <span class="octicon octicon-question"></span> | |
| </span> | |
| <input type="hidden" name="ref" value="cmdform"> | |
| </form> | |
| <ul class="top-nav"> | |
| <li class="explore"><a href="/explore">Explore</a></li> | |
| <li><a href="https://gist.github.com">Gist</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="https://help.github.com">Help</a></li> | |
| </ul> | |
| </div> | |
| <ul id="user-links"> | |
| <li> | |
| <a href="/osyo-manga" class="name"> | |
| <img height="20" src="https://1.gravatar.com/avatar/3931098ae486b6df619050c63e24f6cc?d=https%3A%2F%2Fidenticons.github.com%2Fc192b911f32678010c36ee637415e182.png&r=x&s=140" width="20" /> osyo-manga | |
| </a> | |
| </li> | |
| <li class="new-menu dropdown-toggle js-menu-container"> | |
| <a href="#" class="js-menu-target tooltipped downwards" title="Create new…"> | |
| <span class="octicon octicon-plus"></span> | |
| <span class="dropdown-arrow"></span> | |
| </a> | |
| <div class="js-menu-content"> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/settings/profile" id="account_settings" | |
| class="tooltipped downwards" | |
| aria-label="Account settings " | |
| title="Account settings "> | |
| <span class="octicon octicon-tools"></span> | |
| </a> | |
| </li> | |
| <li> | |
| <a class="tooltipped downwards" href="/logout" data-method="post" id="logout" title="Sign out" aria-label="Sign out"> | |
| <span class="octicon octicon-log-out"></span> | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="js-new-dropdown-contents hidden"> | |
| <ul class="dropdown-menu"> | |
| <li> | |
| <a href="/new"><span class="octicon octicon-repo-create"></span> New repository</a> | |
| </li> | |
| <li> | |
| <a href="/organizations/new"><span class="octicon octicon-organization"></span> New organization</a> | |
| </li> | |
| <li class="section-title"> | |
| <span title="vim-jp/vital.vim">This repository</span> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/issues/new"><span class="octicon octicon-issue-opened"></span> New issue</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="site" itemscope itemtype="http://schema.org/WebPage"> | |
| <div class="pagehead repohead instapaper_ignore readability-menu"> | |
| <div class="container"> | |
| <ul class="pagehead-actions"> | |
| <li class="subscription"> | |
| <form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> <input id="repository_id" name="repository_id" type="hidden" value="1308435" /> | |
| <div class="select-menu js-menu-container js-select-menu"> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/watchers"> | |
| 22 | |
| </a> | |
| <span class="minibutton select-menu-button with-count js-menu-target" role="button" tabindex="0"> | |
| <span class="js-select-button"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </span> | |
| <div class="select-menu-modal-holder"> | |
| <div class="select-menu-modal subscription-menu-modal js-menu-content"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Notification status</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-list js-navigation-container" role="menu"> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_included" name="do" type="radio" value="included" /> | |
| <h4>Not watching</h4> | |
| <span class="description">You only receive notifications for conversations in which you participate or are @mentioned.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-watch"></span> | |
| Watch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input checked="checked" id="do_subscribed" name="do" type="radio" value="subscribed" /> | |
| <h4>Watching</h4> | |
| <span class="description">You receive notifications for all conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_ignore" name="do" type="radio" value="ignore" /> | |
| <h4>Ignoring</h4> | |
| <span class="description">You do not receive any notifications for conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-mute"></span> | |
| Stop ignoring | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| </form> | |
| </li> | |
| <li> | |
| <div class="js-toggler-container js-social-container starring-container "> | |
| <a href="/vim-jp/vital.vim/unstar" | |
| class="minibutton with-count js-toggler-target star-button starred upwards" | |
| title="Unstar this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star-delete"></span><span class="text">Unstar</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/star" | |
| class="minibutton with-count js-toggler-target star-button unstarred upwards" | |
| title="Star this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star"></span><span class="text">Star</span> | |
| </a> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/stargazers"> | |
| 79 | |
| </a> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/fork" class="minibutton with-count js-toggler-target fork-button lighter upwards" title="Fork this repo" rel="facebox nofollow"> | |
| <span class="octicon octicon-git-branch-create"></span><span class="text">Fork</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/network" class="social-count">26</a> | |
| </li> | |
| </ul> | |
| <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> | |
| <span class="repo-label"><span>public</span></span> | |
| <span class="mega-octicon octicon-repo"></span> | |
| <span class="author"> | |
| <a href="/vim-jp" class="url fn" itemprop="url" rel="author"><span itemprop="title">vim-jp</span></a> | |
| </span> | |
| <span class="repohead-name-divider">/</span> | |
| <strong><a href="/vim-jp/vital.vim" class="js-current-repository js-repo-home-link">vital.vim</a></strong> | |
| <span class="page-context-loader"> | |
| <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </span> | |
| </h1> | |
| </div><!-- /.container --> | |
| </div><!-- /.repohead --> | |
| <div class="container"> | |
| <div class="repository-with-sidebar repo-container "> | |
| <div class="repository-sidebar"> | |
| <div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders"> | |
| <div class="sunken-menu-contents"> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Code"> | |
| <a href="/vim-jp/vital.vim" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /vim-jp/vital.vim"> | |
| <span class="octicon octicon-code"></span> <span class="full-word">Code</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Issues"> | |
| <a href="/vim-jp/vital.vim/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /vim-jp/vital.vim/issues"> | |
| <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> | |
| <span class='counter'>28</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Pull Requests"> | |
| <a href="/vim-jp/vital.vim/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /vim-jp/vital.vim/pulls"> | |
| <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> | |
| <span class='counter'>4</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Wiki"> | |
| <a href="/vim-jp/vital.vim/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_wiki /vim-jp/vital.vim/wiki"> | |
| <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| <div class="sunken-menu-separator"></div> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Pulse"> | |
| <a href="/vim-jp/vital.vim/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /vim-jp/vital.vim/pulse"> | |
| <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Graphs"> | |
| <a href="/vim-jp/vital.vim/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /vim-jp/vital.vim/graphs"> | |
| <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Network"> | |
| <a href="/vim-jp/vital.vim/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /vim-jp/vital.vim/network"> | |
| <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="only-with-full-nav"> | |
| <div class="clone-url " | |
| data-protocol-type="http" | |
| data-url="/users/set_protocol?protocol_selector=http&protocol_type=push"> | |
| <h3><strong>HTTPS</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url open" | |
| data-protocol-type="ssh" | |
| data-url="/users/set_protocol?protocol_selector=ssh&protocol_type=push"> | |
| <h3><strong>SSH</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="git@github.com:vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="git@github.com:vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url " | |
| data-protocol-type="subversion" | |
| data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=push"> | |
| <h3><strong>Subversion</strong> checkout URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <p class="clone-options">You can clone with | |
| <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>, | |
| <a href="#" class="js-clone-selector" data-protocol="ssh">SSH</a>, | |
| or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. | |
| <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you."> | |
| <a href="https://help.github.com/articles/which-remote-url-should-i-use"> | |
| <span class="octicon octicon-question"></span> | |
| </a> | |
| </span> | |
| </p> | |
| <a href="http://windows.github.com" class="minibutton sidebar-button"> | |
| <span class="octicon octicon-device-desktop"></span> | |
| Clone in Desktop | |
| </a> | |
| <a href="/vim-jp/vital.vim/archive/master.zip" | |
| class="minibutton sidebar-button" | |
| title="Download this repository as a zip file" | |
| rel="nofollow"> | |
| <span class="octicon octicon-cloud-download"></span> | |
| Download ZIP | |
| </a> | |
| </div> | |
| </div><!-- /.repository-sidebar --> | |
| <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> | |
| <!-- blob contrib key: blob_contributors:v21:8865196e6c233067ca43f509eaa36ae4 --> | |
| <p title="This is a placeholder element" class="js-history-link-replace hidden"></p> | |
| <a href="/vim-jp/vital.vim/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a> | |
| <div class="file-navigation"> | |
| <div class="select-menu js-menu-container js-select-menu" > | |
| <span class="minibutton select-menu-button js-menu-target" data-hotkey="w" | |
| data-master-branch="master" | |
| data-ref="master" | |
| role="button" aria-label="Switch branches or tags" tabindex="0"> | |
| <span class="octicon octicon-git-branch"></span> | |
| <i>branch:</i> | |
| <span class="js-select-button">master</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Switch branches/tags</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-filters"> | |
| <div class="select-menu-text-filter"> | |
| <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Find or create a branch…"> | |
| </div> | |
| <div class="select-menu-tabs"> | |
| <ul> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> | |
| </li> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> | |
| </li> | |
| </ul> | |
| </div><!-- /.select-menu-tabs --> | |
| </div><!-- /.select-menu-filters --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/Data.Closure/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="Data.Closure" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="Data.Closure">Data.Closure</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/git_submodule/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="git_submodule" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="git_submodule">git_submodule</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/logger/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="logger" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="logger">logger</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="master" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="master">master</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/optional-prelude/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="optional-prelude" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="optional-prelude">optional-prelude</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sqlite-processmanager-wip/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sqlite-processmanager-wip" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sqlite-processmanager-wip">sqlite-processmanager-wip</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sys.file/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sys.file" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sys.file">sys.file</a> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| <form accept-charset="UTF-8" action="/vim-jp/vital.vim/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> | |
| <span class="octicon octicon-git-branch-create select-menu-item-icon"></span> | |
| <div class="select-menu-item-text"> | |
| <h4>Create branch: <span class="js-new-item-name"></span></h4> | |
| <span class="description">from ‘master’</span> | |
| </div> | |
| <input type="hidden" name="name" id="name" class="js-new-item-value"> | |
| <input type="hidden" name="branch" id="branch" value="master" /> | |
| <input type="hidden" name="path" id="path" value="autoload/vital/__latest__/ProcessManager.vim" /> | |
| </form> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| </div> | |
| <div class="select-menu-no-results">Nothing to show</div> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| <div class="breadcrumb"> | |
| <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital.vim</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">autoload</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital/__latest__" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">__latest__</span></a></span><span class="separator"> / </span><strong class="final-path">ProcessManager.vim</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="autoload/vital/__latest__/ProcessManager.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="commit file-history-tease"> | |
| <img class="main-avatar" height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <span class="author"><a href="/ujihisa" rel="author">ujihisa</a></span> | |
| <time class="js-relative-date" datetime="2013-12-21T20:30:11-08:00" title="2013-12-21 20:30:11">December 21, 2013</time> | |
| <div class="commit-title"> | |
| <a href="/vim-jp/vital.vim/commit/240d2c93ff042c7afd291cdb301c0c1004136a73" class="message" data-pjax="true" title="ProcessManager: cosmetic change">ProcessManager: cosmetic change</a> | |
| </div> | |
| <div class="participation"> | |
| <p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>4</strong> contributors</a></p> | |
| <a class="avatar tooltipped downwards" title="ujihisa" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ujihisa"><img height="20" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="mattn" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=mattn"><img height="20" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="ichizok" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ichizok"><img height="20" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="alpaca-tc" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=alpaca-tc"><img height="20" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="20" /></a> | |
| </div> | |
| <div id="blob_contributors_box" style="display:none"> | |
| <h2 class="facebox-header">Users who have contributed to this file</h2> | |
| <ul class="facebox-user-list"> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <a href="/ujihisa">ujihisa</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="24" /> | |
| <a href="/mattn">mattn</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="24" /> | |
| <a href="/ichizok">ichizok</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="24" /> | |
| <a href="/alpaca-tc">alpaca-tc</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div id="files" class="bubble"> | |
| <div class="file"> | |
| <div class="meta"> | |
| <div class="info"> | |
| <span class="icon"><b class="octicon octicon-file-text"></b></span> | |
| <span class="mode" title="File Mode">file</span> | |
| <span>125 lines (103 sloc)</span> | |
| <span>2.881 kb</span> | |
| </div> | |
| <div class="actions"> | |
| <div class="button-group"> | |
| <a class="minibutton tooltipped leftwards" | |
| href="http://windows.github.com" title="Open this file in GitHub for Windows"> | |
| <span class="octicon octicon-device-desktop"></span> Open | |
| </a> | |
| <a class="minibutton" | |
| href="/vim-jp/vital.vim/edit/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-method="post" rel="nofollow" data-hotkey="e">Edit</a> | |
| <a href="/vim-jp/vital.vim/raw/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " id="raw-url">Raw</a> | |
| <a href="/vim-jp/vital.vim/blame/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton ">Blame</a> | |
| <a href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " rel="nofollow">History</a> | |
| </div><!-- /.button-group --> | |
| <a class="minibutton danger empty-icon tooltipped downwards" | |
| href="/vim-jp/vital.vim/delete/master/autoload/vital/__latest__/ProcessManager.vim" | |
| title="" | |
| data-method="post" data-test-id="delete-blob-file" rel="nofollow"> | |
| Delete | |
| </a> | |
| </div><!-- /.actions --> | |
| </div> | |
| <div class="blob-wrapper data type-viml js-blob-data"> | |
| <table class="file-code file-diff"> | |
| <tr class="file-code-line"> | |
| <td class="blob-line-nums"> | |
| <span id="L1" rel="#L1">1</span> | |
| <span id="L2" rel="#L2">2</span> | |
| <span id="L3" rel="#L3">3</span> | |
| <span id="L4" rel="#L4">4</span> | |
| <span id="L5" rel="#L5">5</span> | |
| <span id="L6" rel="#L6">6</span> | |
| <span id="L7" rel="#L7">7</span> | |
| <span id="L8" rel="#L8">8</span> | |
| <span id="L9" rel="#L9">9</span> | |
| <span id="L10" rel="#L10">10</span> | |
| <span id="L11" rel="#L11">11</span> | |
| <span id="L12" rel="#L12">12</span> | |
| <span id="L13" rel="#L13">13</span> | |
| <span id="L14" rel="#L14">14</span> | |
| <span id="L15" rel="#L15">15</span> | |
| <span id="L16" rel="#L16">16</span> | |
| <span id="L17" rel="#L17">17</span> | |
| <span id="L18" rel="#L18">18</span> | |
| <span id="L19" rel="#L19">19</span> | |
| <span id="L20" rel="#L20">20</span> | |
| <span id="L21" rel="#L21">21</span> | |
| <span id="L22" rel="#L22">22</span> | |
| <span id="L23" rel="#L23">23</span> | |
| <span id="L24" rel="#L24">24</span> | |
| <span id="L25" rel="#L25">25</span> | |
| <span id="L26" rel="#L26">26</span> | |
| <span id="L27" rel="#L27">27</span> | |
| <span id="L28" rel="#L28">28</span> | |
| <span id="L29" rel="#L29">29</span> | |
| <span id="L30" rel="#L30">30</span> | |
| <span id="L31" rel="#L31">31</span> | |
| <span id="L32" rel="#L32">32</span> | |
| <span id="L33" rel="#L33">33</span> | |
| <span id="L34" rel="#L34">34</span> | |
| <span id="L35" rel="#L35">35</span> | |
| <span id="L36" rel="#L36">36</span> | |
| <span id="L37" rel="#L37">37</span> | |
| <span id="L38" rel="#L38">38</span> | |
| <span id="L39" rel="#L39">39</span> | |
| <span id="L40" rel="#L40">40</span> | |
| <span id="L41" rel="#L41">41</span> | |
| <span id="L42" rel="#L42">42</span> | |
| <span id="L43" rel="#L43">43</span> | |
| <span id="L44" rel="#L44">44</span> | |
| <span id="L45" rel="#L45">45</span> | |
| <span id="L46" rel="#L46">46</span> | |
| <span id="L47" rel="#L47">47</span> | |
| <span id="L48" rel="#L48">48</span> | |
| <span id="L49" rel="#L49">49</span> | |
| <span id="L50" rel="#L50">50</span> | |
| <span id="L51" rel="#L51">51</span> | |
| <span id="L52" rel="#L52">52</span> | |
| <span id="L53" rel="#L53">53</span> | |
| <span id="L54" rel="#L54">54</span> | |
| <span id="L55" rel="#L55">55</span> | |
| <span id="L56" rel="#L56">56</span> | |
| <span id="L57" rel="#L57">57</span> | |
| <span id="L58" rel="#L58">58</span> | |
| <span id="L59" rel="#L59">59</span> | |
| <span id="L60" rel="#L60">60</span> | |
| <span id="L61" rel="#L61">61</span> | |
| <span id="L62" rel="#L62">62</span> | |
| <span id="L63" rel="#L63">63</span> | |
| <span id="L64" rel="#L64">64</span> | |
| <span id="L65" rel="#L65">65</span> | |
| <span id="L66" rel="#L66">66</span> | |
| <span id="L67" rel="#L67">67</span> | |
| <span id="L68" rel="#L68">68</span> | |
| <span id="L69" rel="#L69">69</span> | |
| <span id="L70" rel="#L70">70</span> | |
| <span id="L71" rel="#L71">71</span> | |
| <span id="L72" rel="#L72">72</span> | |
| <span id="L73" rel="#L73">73</span> | |
| <span id="L74" rel="#L74">74</span> | |
| <span id="L75" rel="#L75">75</span> | |
| <span id="L76" rel="#L76">76</span> | |
| <span id="L77" rel="#L77">77</span> | |
| <span id="L78" rel="#L78">78</span> | |
| <span id="L79" rel="#L79">79</span> | |
| <span id="L80" rel="#L80">80</span> | |
| <span id="L81" rel="#L81">81</span> | |
| <span id="L82" rel="#L82">82</span> | |
| <span id="L83" rel="#L83">83</span> | |
| <span id="L84" rel="#L84">84</span> | |
| <span id="L85" rel="#L85">85</span> | |
| <span id="L86" rel="#L86">86</span> | |
| <span id="L87" rel="#L87">87</span> | |
| <span id="L88" rel="#L88">88</span> | |
| <span id="L89" rel="#L89">89</span> | |
| <span id="L90" rel="#L90">90</span> | |
| <span id="L91" rel="#L91">91</span> | |
| <span id="L92" rel="#L92">92</span> | |
| <span id="L93" rel="#L93">93</span> | |
| <span id="L94" rel="#L94">94</span> | |
| <span id="L95" rel="#L95">95</span> | |
| <span id="L96" rel="#L96">96</span> | |
| <span id="L97" rel="#L97">97</span> | |
| <span id="L98" rel="#L98">98</span> | |
| <span id="L99" rel="#L99">99</span> | |
| <span id="L100" rel="#L100">100</span> | |
| <span id="L101" rel="#L101">101</span> | |
| <span id="L102" rel="#L102">102</span> | |
| <span id="L103" rel="#L103">103</span> | |
| <span id="L104" rel="#L104">104</span> | |
| <span id="L105" rel="#L105">105</span> | |
| <span id="L106" rel="#L106">106</span> | |
| <span id="L107" rel="#L107">107</span> | |
| <span id="L108" rel="#L108">108</span> | |
| <span id="L109" rel="#L109">109</span> | |
| <span id="L110" rel="#L110">110</span> | |
| <span id="L111" rel="#L111">111</span> | |
| <span id="L112" rel="#L112">112</span> | |
| <span id="L113" rel="#L113">113</span> | |
| <span id="L114" rel="#L114">114</span> | |
| <span id="L115" rel="#L115">115</span> | |
| <span id="L116" rel="#L116">116</span> | |
| <span id="L117" rel="#L117">117</span> | |
| <span id="L118" rel="#L118">118</span> | |
| <span id="L119" rel="#L119">119</span> | |
| <span id="L120" rel="#L120">120</span> | |
| <span id="L121" rel="#L121">121</span> | |
| <span id="L122" rel="#L122">122</span> | |
| <span id="L123" rel="#L123">123</span> | |
| <span id="L124" rel="#L124">124</span> | |
| </td> | |
| <td class="blob-line-code"> | |
| <div class="code-body highlight"><pre><div class='line' id='LC1'><span class="k">let</span> <span class="k">s</span>:save_cpo <span class="p">=</span> &<span class="nb">cpo</span></div><div class='line' id='LC2'><span class="k">set</span> <span class="nb">cpo</span>&<span class="k">vim</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">let</span> <span class="k">s</span>:_processes <span class="p">=</span> {}</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_loaded<span class="p">(</span>V<span class="p">)</span></div><div class='line' id='LC7'> <span class="k">let</span> <span class="k">s</span>:V <span class="p">=</span> <span class="k">a</span>:V</div><div class='line' id='LC8'> <span class="k">let</span> <span class="k">s</span>:S <span class="p">=</span> <span class="k">s</span>:V.import<span class="p">(</span><span class="s1">'Data.String'</span><span class="p">)</span></div><div class='line' id='LC9'><span class="k">endfunction</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_depends<span class="p">()</span></div><div class='line' id='LC12'> <span class="k">return</span> [<span class="s1">'Data.String'</span>]</div><div class='line' id='LC13'><span class="k">endfunction</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:is_available<span class="p">()</span></div><div class='line' id='LC16'> <span class="k">return</span> <span class="k">s</span>:V.has_vimproc<span class="p">()</span></div><div class='line' id='LC17'><span class="k">endfunction</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:touch<span class="p">(</span>name<span class="p">,</span> cmd<span class="p">)</span></div><div class='line' id='LC20'> <span class="k">if</span> has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:name<span class="p">)</span></div><div class='line' id='LC21'> <span class="k">return</span> <span class="s1">'existing'</span></div><div class='line' id='LC22'> <span class="k">else</span></div><div class='line' id='LC23'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> vimproc#popen3<span class="p">(</span><span class="k">a</span>:cmd<span class="p">)</span></div><div class='line' id='LC24'> <span class="k">let</span> <span class="k">s</span>:_processes[<span class="k">a</span>:name] <span class="p">=</span> <span class="k">p</span></div><div class='line' id='LC25'> <span class="k">return</span> <span class="s1">'new'</span></div><div class='line' id='LC26'> <span class="k">endif</span></div><div class='line' id='LC27'><span class="k">endfunction</span></div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:stop<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC30'> <span class="k">echomsg</span> <span class="s2">"Vital.ProcessManager.stop() is deprecated! Please use kill() or term() instead."</span></div><div class='line' id='LC31'> <span class="k">return</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC32'><span class="k">endfunction</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">i</span><span class="p">,</span> ...<span class="p">)</span></div><div class='line' id='LC35'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC36'> <span class="k">call</span> <span class="k">p</span>.kill<span class="p">(</span><span class="k">get</span><span class="p">(</span><span class="k">a</span>:<span class="m">000</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span> ? <span class="k">g</span>:vimproc#SIGKILL : <span class="k">g</span>:vimproc#SIGTERM<span class="p">)</span></div><div class='line' id='LC37'><span class="c"> " call p.waitpid()</span></div><div class='line' id='LC38'> unlet <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC39'><span class="k">endfunction</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">term</span><span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC42'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC43'><span class="k">endfunction</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC46'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC47'><span class="k">endfunction</span></div><div class='line' id='LC48'><br/></div><div class='line' id='LC49'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read<span class="p">(</span><span class="k">i</span><span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC50'> <span class="k">return</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span>.<span class="m">05</span><span class="p">,</span> <span class="k">a</span>:endpatterns<span class="p">)</span></div><div class='line' id='LC51'><span class="k">endfunction</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">i</span><span class="p">,</span> wait<span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC54'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC55'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC56'> <span class="k">endif</span></div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC61'> <span class="k">return</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">(),</span> <span class="s1">'inactive'</span>]</div><div class='line' id='LC62'> <span class="k">endif</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'> <span class="k">let</span> out_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC65'> <span class="k">let</span> err_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC66'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC67'> <span class="k">while</span> <span class="m">1</span></div><div class='line' id='LC68'> <span class="k">let</span> [<span class="k">x</span><span class="p">,</span> <span class="k">y</span>] <span class="p">=</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">()</span>]</div><div class='line' id='LC69'> <span class="k">if</span> <span class="k">x</span> <span class="p">==</span># <span class="s1">''</span> && <span class="k">y</span> <span class="p">==</span># <span class="s1">''</span></div><div class='line' id='LC70'> <span class="k">if</span> str2float<span class="p">(</span>reltimestr<span class="p">(</span>reltime<span class="p">(</span>lastchanged<span class="p">)))</span> <span class="p">></span> <span class="k">a</span>:wait</div><div class='line' id='LC71'> <span class="k">return</span> [out_memo<span class="p">,</span> err_memo<span class="p">,</span> <span class="s1">'timedout'</span>]</div><div class='line' id='LC72'> <span class="k">endif</span></div><div class='line' id='LC73'> <span class="k">else</span></div><div class='line' id='LC74'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC75'> <span class="k">let</span> out_memo .<span class="p">=</span> <span class="k">x</span></div><div class='line' id='LC76'> <span class="k">let</span> err_memo .<span class="p">=</span> <span class="k">y</span></div><div class='line' id='LC77'> <span class="k">for</span> pattern <span class="k">in</span> <span class="k">a</span>:endpatterns</div><div class='line' id='LC78'> <span class="k">if</span> out_memo <span class="p">=~</span> <span class="p">(</span><span class="s2">"\\(^\\|\n\\)"</span> . pattern<span class="p">)</span></div><div class='line' id='LC79'> <span class="k">return</span> [<span class="k">s</span>:S.substitute_last<span class="p">(</span>out_memo<span class="p">,</span> pattern<span class="p">,</span> <span class="s1">''</span><span class="p">),</span> err_memo<span class="p">,</span> <span class="s1">'matched'</span>]</div><div class='line' id='LC80'> <span class="k">endif</span></div><div class='line' id='LC81'> <span class="k">endfor</span></div><div class='line' id='LC82'> <span class="k">endif</span></div><div class='line' id='LC83'> <span class="k">endwhile</span></div><div class='line' id='LC84'><span class="k">endfunction</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC87'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC88'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC89'> <span class="k">endif</span></div><div class='line' id='LC90'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC91'> <span class="k">return</span> <span class="s1">'inactive'</span></div><div class='line' id='LC92'> <span class="k">endif</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC95'> <span class="k">call</span> <span class="k">p</span>.stdin.<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:str<span class="p">)</span></div><div class='line' id='LC96'><br/></div><div class='line' id='LC97'> <span class="k">return</span> <span class="s1">'active'</span></div><div class='line' id='LC98'><span class="k">endfunction</span></div><div class='line' id='LC99'><br/></div><div class='line' id='LC100'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:writeln<span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC101'> <span class="k">return</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="k">a</span>:str . <span class="s2">"\n"</span><span class="p">)</span></div><div class='line' id='LC102'><span class="k">endfunction</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC105'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC106'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC107'> <span class="k">endif</span></div><div class='line' id='LC108'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC109'><span class="c"> " vimproc.kill isn't to stop but to ask for the current state.</span></div><div class='line' id='LC110'><span class="c"> " return p.kill(0) ? 'inactive' : 'active'</span></div><div class='line' id='LC111'><span class="c"> " ... checkpid() checks if the process is running AND does waitpid() in C,</span></div><div class='line' id='LC112'><span class="c"> " so it solves zombie processes.</span></div><div class='line' id='LC113'> <span class="k">return</span> <span class="k">get</span><span class="p">(</span><span class="k">p</span>.checkpid<span class="p">(),</span> <span class="m">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'run'</span></div><div class='line' id='LC114'> \ ? <span class="s1">'active'</span></div><div class='line' id='LC115'> \ : <span class="s1">'inactive'</span></div><div class='line' id='LC116'><span class="k">endfunction</span></div><div class='line' id='LC117'><br/></div><div class='line' id='LC118'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:debug_processes<span class="p">()</span></div><div class='line' id='LC119'> <span class="k">return</span> <span class="k">s</span>:_processes</div><div class='line' id='LC120'><span class="k">endfunction</span></div><div class='line' id='LC121'><br/></div><div class='line' id='LC122'><span class="k">let</span> &<span class="nb">cpo</span> <span class="p">=</span> <span class="k">s</span>:save_cpo</div><div class='line' id='LC123'>unlet <span class="k">s</span>:save_cpo</div><div class='line' id='LC124'><span class="c">" vim:set et ts=2 sts=2 sw=2 tw=0:</span></div></pre></div> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a> | |
| <div id="jump-to-line" style="display:none"> | |
| <form accept-charset="UTF-8" class="js-jump-to-line-form"> | |
| <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus> | |
| <button type="submit" class="button">Go</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div><!-- /.repo-container --> | |
| <div class="modal-backdrop"></div> | |
| </div><!-- /.container --> | |
| </div><!-- /.site --> | |
| </div><!-- /.wrapper --> | |
| <div class="container"> | |
| <div class="site-footer"> | |
| <ul class="site-footer-links right"> | |
| <li><a href="https://status.github.com/">Status</a></li> | |
| <li><a href="http://developer.github.com">API</a></li> | |
| <li><a href="http://training.github.com">Training</a></li> | |
| <li><a href="http://shop.github.com">Shop</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="/about">About</a></li> | |
| </ul> | |
| <a href="/"> | |
| <span class="mega-octicon octicon-mark-github" title="GitHub"></span> | |
| </a> | |
| <ul class="site-footer-links"> | |
| <li>© 2014 <span title="0.03660s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> | |
| <li><a href="/site/terms">Terms</a></li> | |
| <li><a href="/site/privacy">Privacy</a></li> | |
| <li><a href="/security">Security</a></li> | |
| <li><a href="/contact">Contact</a></li> | |
| </ul> | |
| </div><!-- /.site-footer --> | |
| </div><!-- /.container --> | |
| <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> | |
| <div class="fullscreen-container js-fullscreen-container"> | |
| <div class="textarea-wrap"> | |
| <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea> | |
| <div class="suggester-container"> | |
| <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester" | |
| data-url="/vim-jp/vital.vim/suggestions/commit"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="fullscreen-sidebar"> | |
| <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode"> | |
| <span class="mega-octicon octicon-screen-normal"></span> | |
| </a> | |
| <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards" | |
| title="Switch themes"> | |
| <span class="octicon octicon-color-mode"></span> | |
| </a> | |
| </div> | |
| </div> | |
| <div id="ajax-error-message" class="flash flash-error"> | |
| <span class="octicon octicon-alert"></span> | |
| <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a> | |
| Something went wrong with that request. Please try again. | |
| </div> | |
| </body> | |
| </html> | |
| <!DOCTYPE html> | |
| <html> | |
| <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#"> | |
| <meta charset='utf-8'> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>vital.vim/autoload/vital/__latest__/ProcessManager.vim at master · vim-jp/vital.vim</title> | |
| <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> | |
| <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> | |
| <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" /> | |
| <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" /> | |
| <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" /> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png"> | |
| <meta name="hostname" content="github-fe122-cp1-prd.iad.github.net"> | |
| <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]"> | |
| <link rel="assets" href="https://github.global.ssl.fastly.net/"> | |
| <link rel="conduit-xhr" href="https://ghconduit.com:25035/"> | |
| <link rel="xhr-socket" href="/_sockets" /> | |
| <meta name="msapplication-TileImage" content="/windows-tile.png" /> | |
| <meta name="msapplication-TileColor" content="#ffffff" /> | |
| <meta name="selected-link" value="repo_source" data-pjax-transient /> | |
| <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="B6F95C6A:6644:E50EC4:52E18AFE" name="octolytics-dimension-request_id" /><meta content="214488" name="octolytics-actor-id" /><meta content="osyo-manga" name="octolytics-actor-login" /><meta content="e5012931f92cc8195a7f530c4e37bcc88d86a6df4ea3fd06d12d9d5795f6d0e8" name="octolytics-actor-hash" /> | |
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |
| <meta content="authenticity_token" name="csrf-param" /> | |
| <meta content="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" name="csrf-token" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github-43087292f81aebbe92f90a36344865c4ad8170a0.css" media="all" rel="stylesheet" type="text/css" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github2-d23a1b1c4a1bc509a0ca67face2fb37ef257f599.css" media="all" rel="stylesheet" type="text/css" /> | |
| <script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script> | |
| <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-eab207422bd65ea8c46ef3d26d6fbcc74bba89ce.js" type="text/javascript"></script> | |
| <meta http-equiv="x-pjax-version" content="1ceda3c4fa0194817b46f4df6a3f2c23"> | |
| <link data-pjax-transient rel='permalink' href='/vim-jp/vital.vim/blob/3e229e28b002d42b9ca0d15bddddf0872fa2eed0/autoload/vital/__latest__/ProcessManager.vim'> | |
| <meta property="og:title" content="vital.vim"/> | |
| <meta property="og:type" content="githubog:gitrepository"/> | |
| <meta property="og:url" content="https://github.com/vim-jp/vital.vim"/> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/> | |
| <meta property="og:site_name" content="GitHub"/> | |
| <meta property="og:description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins"/> | |
| <meta name="description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins" /> | |
| <meta content="1051958" name="octolytics-dimension-user_id" /><meta content="vim-jp" name="octolytics-dimension-user_login" /><meta content="1308435" name="octolytics-dimension-repository_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1308435" name="octolytics-dimension-repository_network_root_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_network_root_nwo" /> | |
| <link href="https://github.com/vim-jp/vital.vim/commits/master.atom" rel="alternate" title="Recent Commits to vital.vim:master" type="application/atom+xml" /> | |
| </head> | |
| <body class="logged_in env-production windows vis-public page-blob"> | |
| <div class="wrapper"> | |
| <div class="header header-logged-in true"> | |
| <div class="container clearfix"> | |
| <a class="header-logo-invertocat" href="https://github.com/"> | |
| <span class="mega-octicon octicon-mark-github"></span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/notifications" class="notification-indicator tooltipped downwards contextually-unread" data-gotokey="n" title="You have unread notifications in this repository"> | |
| <span class="mail-status unread"></span> | |
| </a> | |
| <div class="command-bar js-command-bar in-repository"> | |
| <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get"> | |
| <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off" | |
| data-username="osyo-manga" | |
| data-repo="vim-jp/vital.vim" | |
| data-branch="master" | |
| data-sha="e9e83ed3a8ffeefb55aeb10af4b80747448aeda6" | |
| > | |
| <input type="hidden" name="nwo" value="vim-jp/vital.vim" /> | |
| <div class="select-menu js-menu-container js-select-menu search-context-select-menu"> | |
| <span class="minibutton select-menu-button js-menu-target"> | |
| <span class="js-select-button">This repository</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container"> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" /> | |
| <div class="select-menu-item-text js-select-button-text">This repository</div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" name="search_target" value="global" /> | |
| <div class="select-menu-item-text js-select-button-text">All repositories</div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| </div> | |
| </div> | |
| <span class="octicon help tooltipped downwards" title="Show command bar help"> | |
| <span class="octicon octicon-question"></span> | |
| </span> | |
| <input type="hidden" name="ref" value="cmdform"> | |
| </form> | |
| <ul class="top-nav"> | |
| <li class="explore"><a href="/explore">Explore</a></li> | |
| <li><a href="https://gist.github.com">Gist</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="https://help.github.com">Help</a></li> | |
| </ul> | |
| </div> | |
| <ul id="user-links"> | |
| <li> | |
| <a href="/osyo-manga" class="name"> | |
| <img height="20" src="https://1.gravatar.com/avatar/3931098ae486b6df619050c63e24f6cc?d=https%3A%2F%2Fidenticons.github.com%2Fc192b911f32678010c36ee637415e182.png&r=x&s=140" width="20" /> osyo-manga | |
| </a> | |
| </li> | |
| <li class="new-menu dropdown-toggle js-menu-container"> | |
| <a href="#" class="js-menu-target tooltipped downwards" title="Create new…"> | |
| <span class="octicon octicon-plus"></span> | |
| <span class="dropdown-arrow"></span> | |
| </a> | |
| <div class="js-menu-content"> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/settings/profile" id="account_settings" | |
| class="tooltipped downwards" | |
| aria-label="Account settings " | |
| title="Account settings "> | |
| <span class="octicon octicon-tools"></span> | |
| </a> | |
| </li> | |
| <li> | |
| <a class="tooltipped downwards" href="/logout" data-method="post" id="logout" title="Sign out" aria-label="Sign out"> | |
| <span class="octicon octicon-log-out"></span> | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="js-new-dropdown-contents hidden"> | |
| <ul class="dropdown-menu"> | |
| <li> | |
| <a href="/new"><span class="octicon octicon-repo-create"></span> New repository</a> | |
| </li> | |
| <li> | |
| <a href="/organizations/new"><span class="octicon octicon-organization"></span> New organization</a> | |
| </li> | |
| <li class="section-title"> | |
| <span title="vim-jp/vital.vim">This repository</span> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/issues/new"><span class="octicon octicon-issue-opened"></span> New issue</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="site" itemscope itemtype="http://schema.org/WebPage"> | |
| <div class="pagehead repohead instapaper_ignore readability-menu"> | |
| <div class="container"> | |
| <ul class="pagehead-actions"> | |
| <li class="subscription"> | |
| <form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> <input id="repository_id" name="repository_id" type="hidden" value="1308435" /> | |
| <div class="select-menu js-menu-container js-select-menu"> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/watchers"> | |
| 22 | |
| </a> | |
| <span class="minibutton select-menu-button with-count js-menu-target" role="button" tabindex="0"> | |
| <span class="js-select-button"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </span> | |
| <div class="select-menu-modal-holder"> | |
| <div class="select-menu-modal subscription-menu-modal js-menu-content"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Notification status</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-list js-navigation-container" role="menu"> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_included" name="do" type="radio" value="included" /> | |
| <h4>Not watching</h4> | |
| <span class="description">You only receive notifications for conversations in which you participate or are @mentioned.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-watch"></span> | |
| Watch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input checked="checked" id="do_subscribed" name="do" type="radio" value="subscribed" /> | |
| <h4>Watching</h4> | |
| <span class="description">You receive notifications for all conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_ignore" name="do" type="radio" value="ignore" /> | |
| <h4>Ignoring</h4> | |
| <span class="description">You do not receive any notifications for conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-mute"></span> | |
| Stop ignoring | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| </form> | |
| </li> | |
| <li> | |
| <div class="js-toggler-container js-social-container starring-container "> | |
| <a href="/vim-jp/vital.vim/unstar" | |
| class="minibutton with-count js-toggler-target star-button starred upwards" | |
| title="Unstar this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star-delete"></span><span class="text">Unstar</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/star" | |
| class="minibutton with-count js-toggler-target star-button unstarred upwards" | |
| title="Star this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star"></span><span class="text">Star</span> | |
| </a> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/stargazers"> | |
| 79 | |
| </a> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/fork" class="minibutton with-count js-toggler-target fork-button lighter upwards" title="Fork this repo" rel="facebox nofollow"> | |
| <span class="octicon octicon-git-branch-create"></span><span class="text">Fork</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/network" class="social-count">26</a> | |
| </li> | |
| </ul> | |
| <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> | |
| <span class="repo-label"><span>public</span></span> | |
| <span class="mega-octicon octicon-repo"></span> | |
| <span class="author"> | |
| <a href="/vim-jp" class="url fn" itemprop="url" rel="author"><span itemprop="title">vim-jp</span></a> | |
| </span> | |
| <span class="repohead-name-divider">/</span> | |
| <strong><a href="/vim-jp/vital.vim" class="js-current-repository js-repo-home-link">vital.vim</a></strong> | |
| <span class="page-context-loader"> | |
| <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </span> | |
| </h1> | |
| </div><!-- /.container --> | |
| </div><!-- /.repohead --> | |
| <div class="container"> | |
| <div class="repository-with-sidebar repo-container "> | |
| <div class="repository-sidebar"> | |
| <div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders"> | |
| <div class="sunken-menu-contents"> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Code"> | |
| <a href="/vim-jp/vital.vim" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /vim-jp/vital.vim"> | |
| <span class="octicon octicon-code"></span> <span class="full-word">Code</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Issues"> | |
| <a href="/vim-jp/vital.vim/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /vim-jp/vital.vim/issues"> | |
| <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> | |
| <span class='counter'>28</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Pull Requests"> | |
| <a href="/vim-jp/vital.vim/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /vim-jp/vital.vim/pulls"> | |
| <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> | |
| <span class='counter'>4</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Wiki"> | |
| <a href="/vim-jp/vital.vim/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_wiki /vim-jp/vital.vim/wiki"> | |
| <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| <div class="sunken-menu-separator"></div> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Pulse"> | |
| <a href="/vim-jp/vital.vim/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /vim-jp/vital.vim/pulse"> | |
| <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Graphs"> | |
| <a href="/vim-jp/vital.vim/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /vim-jp/vital.vim/graphs"> | |
| <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Network"> | |
| <a href="/vim-jp/vital.vim/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /vim-jp/vital.vim/network"> | |
| <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="only-with-full-nav"> | |
| <div class="clone-url " | |
| data-protocol-type="http" | |
| data-url="/users/set_protocol?protocol_selector=http&protocol_type=push"> | |
| <h3><strong>HTTPS</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url open" | |
| data-protocol-type="ssh" | |
| data-url="/users/set_protocol?protocol_selector=ssh&protocol_type=push"> | |
| <h3><strong>SSH</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="git@github.com:vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="git@github.com:vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url " | |
| data-protocol-type="subversion" | |
| data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=push"> | |
| <h3><strong>Subversion</strong> checkout URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <p class="clone-options">You can clone with | |
| <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>, | |
| <a href="#" class="js-clone-selector" data-protocol="ssh">SSH</a>, | |
| or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. | |
| <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you."> | |
| <a href="https://help.github.com/articles/which-remote-url-should-i-use"> | |
| <span class="octicon octicon-question"></span> | |
| </a> | |
| </span> | |
| </p> | |
| <a href="http://windows.github.com" class="minibutton sidebar-button"> | |
| <span class="octicon octicon-device-desktop"></span> | |
| Clone in Desktop | |
| </a> | |
| <a href="/vim-jp/vital.vim/archive/master.zip" | |
| class="minibutton sidebar-button" | |
| title="Download this repository as a zip file" | |
| rel="nofollow"> | |
| <span class="octicon octicon-cloud-download"></span> | |
| Download ZIP | |
| </a> | |
| </div> | |
| </div><!-- /.repository-sidebar --> | |
| <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> | |
| <!-- blob contrib key: blob_contributors:v21:8865196e6c233067ca43f509eaa36ae4 --> | |
| <p title="This is a placeholder element" class="js-history-link-replace hidden"></p> | |
| <a href="/vim-jp/vital.vim/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a> | |
| <div class="file-navigation"> | |
| <div class="select-menu js-menu-container js-select-menu" > | |
| <span class="minibutton select-menu-button js-menu-target" data-hotkey="w" | |
| data-master-branch="master" | |
| data-ref="master" | |
| role="button" aria-label="Switch branches or tags" tabindex="0"> | |
| <span class="octicon octicon-git-branch"></span> | |
| <i>branch:</i> | |
| <span class="js-select-button">master</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Switch branches/tags</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-filters"> | |
| <div class="select-menu-text-filter"> | |
| <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Find or create a branch…"> | |
| </div> | |
| <div class="select-menu-tabs"> | |
| <ul> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> | |
| </li> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> | |
| </li> | |
| </ul> | |
| </div><!-- /.select-menu-tabs --> | |
| </div><!-- /.select-menu-filters --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/Data.Closure/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="Data.Closure" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="Data.Closure">Data.Closure</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/git_submodule/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="git_submodule" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="git_submodule">git_submodule</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/logger/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="logger" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="logger">logger</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="master" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="master">master</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/optional-prelude/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="optional-prelude" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="optional-prelude">optional-prelude</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sqlite-processmanager-wip/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sqlite-processmanager-wip" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sqlite-processmanager-wip">sqlite-processmanager-wip</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sys.file/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sys.file" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sys.file">sys.file</a> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| <form accept-charset="UTF-8" action="/vim-jp/vital.vim/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> | |
| <span class="octicon octicon-git-branch-create select-menu-item-icon"></span> | |
| <div class="select-menu-item-text"> | |
| <h4>Create branch: <span class="js-new-item-name"></span></h4> | |
| <span class="description">from ‘master’</span> | |
| </div> | |
| <input type="hidden" name="name" id="name" class="js-new-item-value"> | |
| <input type="hidden" name="branch" id="branch" value="master" /> | |
| <input type="hidden" name="path" id="path" value="autoload/vital/__latest__/ProcessManager.vim" /> | |
| </form> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| </div> | |
| <div class="select-menu-no-results">Nothing to show</div> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| <div class="breadcrumb"> | |
| <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital.vim</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">autoload</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital/__latest__" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">__latest__</span></a></span><span class="separator"> / </span><strong class="final-path">ProcessManager.vim</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="autoload/vital/__latest__/ProcessManager.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="commit file-history-tease"> | |
| <img class="main-avatar" height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <span class="author"><a href="/ujihisa" rel="author">ujihisa</a></span> | |
| <time class="js-relative-date" datetime="2013-12-21T20:30:11-08:00" title="2013-12-21 20:30:11">December 21, 2013</time> | |
| <div class="commit-title"> | |
| <a href="/vim-jp/vital.vim/commit/240d2c93ff042c7afd291cdb301c0c1004136a73" class="message" data-pjax="true" title="ProcessManager: cosmetic change">ProcessManager: cosmetic change</a> | |
| </div> | |
| <div class="participation"> | |
| <p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>4</strong> contributors</a></p> | |
| <a class="avatar tooltipped downwards" title="ujihisa" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ujihisa"><img height="20" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="mattn" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=mattn"><img height="20" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="ichizok" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ichizok"><img height="20" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="alpaca-tc" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=alpaca-tc"><img height="20" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="20" /></a> | |
| </div> | |
| <div id="blob_contributors_box" style="display:none"> | |
| <h2 class="facebox-header">Users who have contributed to this file</h2> | |
| <ul class="facebox-user-list"> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <a href="/ujihisa">ujihisa</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="24" /> | |
| <a href="/mattn">mattn</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="24" /> | |
| <a href="/ichizok">ichizok</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="24" /> | |
| <a href="/alpaca-tc">alpaca-tc</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div id="files" class="bubble"> | |
| <div class="file"> | |
| <div class="meta"> | |
| <div class="info"> | |
| <span class="icon"><b class="octicon octicon-file-text"></b></span> | |
| <span class="mode" title="File Mode">file</span> | |
| <span>125 lines (103 sloc)</span> | |
| <span>2.881 kb</span> | |
| </div> | |
| <div class="actions"> | |
| <div class="button-group"> | |
| <a class="minibutton tooltipped leftwards" | |
| href="http://windows.github.com" title="Open this file in GitHub for Windows"> | |
| <span class="octicon octicon-device-desktop"></span> Open | |
| </a> | |
| <a class="minibutton" | |
| href="/vim-jp/vital.vim/edit/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-method="post" rel="nofollow" data-hotkey="e">Edit</a> | |
| <a href="/vim-jp/vital.vim/raw/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " id="raw-url">Raw</a> | |
| <a href="/vim-jp/vital.vim/blame/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton ">Blame</a> | |
| <a href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " rel="nofollow">History</a> | |
| </div><!-- /.button-group --> | |
| <a class="minibutton danger empty-icon tooltipped downwards" | |
| href="/vim-jp/vital.vim/delete/master/autoload/vital/__latest__/ProcessManager.vim" | |
| title="" | |
| data-method="post" data-test-id="delete-blob-file" rel="nofollow"> | |
| Delete | |
| </a> | |
| </div><!-- /.actions --> | |
| </div> | |
| <div class="blob-wrapper data type-viml js-blob-data"> | |
| <table class="file-code file-diff"> | |
| <tr class="file-code-line"> | |
| <td class="blob-line-nums"> | |
| <span id="L1" rel="#L1">1</span> | |
| <span id="L2" rel="#L2">2</span> | |
| <span id="L3" rel="#L3">3</span> | |
| <span id="L4" rel="#L4">4</span> | |
| <span id="L5" rel="#L5">5</span> | |
| <span id="L6" rel="#L6">6</span> | |
| <span id="L7" rel="#L7">7</span> | |
| <span id="L8" rel="#L8">8</span> | |
| <span id="L9" rel="#L9">9</span> | |
| <span id="L10" rel="#L10">10</span> | |
| <span id="L11" rel="#L11">11</span> | |
| <span id="L12" rel="#L12">12</span> | |
| <span id="L13" rel="#L13">13</span> | |
| <span id="L14" rel="#L14">14</span> | |
| <span id="L15" rel="#L15">15</span> | |
| <span id="L16" rel="#L16">16</span> | |
| <span id="L17" rel="#L17">17</span> | |
| <span id="L18" rel="#L18">18</span> | |
| <span id="L19" rel="#L19">19</span> | |
| <span id="L20" rel="#L20">20</span> | |
| <span id="L21" rel="#L21">21</span> | |
| <span id="L22" rel="#L22">22</span> | |
| <span id="L23" rel="#L23">23</span> | |
| <span id="L24" rel="#L24">24</span> | |
| <span id="L25" rel="#L25">25</span> | |
| <span id="L26" rel="#L26">26</span> | |
| <span id="L27" rel="#L27">27</span> | |
| <span id="L28" rel="#L28">28</span> | |
| <span id="L29" rel="#L29">29</span> | |
| <span id="L30" rel="#L30">30</span> | |
| <span id="L31" rel="#L31">31</span> | |
| <span id="L32" rel="#L32">32</span> | |
| <span id="L33" rel="#L33">33</span> | |
| <span id="L34" rel="#L34">34</span> | |
| <span id="L35" rel="#L35">35</span> | |
| <span id="L36" rel="#L36">36</span> | |
| <span id="L37" rel="#L37">37</span> | |
| <span id="L38" rel="#L38">38</span> | |
| <span id="L39" rel="#L39">39</span> | |
| <span id="L40" rel="#L40">40</span> | |
| <span id="L41" rel="#L41">41</span> | |
| <span id="L42" rel="#L42">42</span> | |
| <span id="L43" rel="#L43">43</span> | |
| <span id="L44" rel="#L44">44</span> | |
| <span id="L45" rel="#L45">45</span> | |
| <span id="L46" rel="#L46">46</span> | |
| <span id="L47" rel="#L47">47</span> | |
| <span id="L48" rel="#L48">48</span> | |
| <span id="L49" rel="#L49">49</span> | |
| <span id="L50" rel="#L50">50</span> | |
| <span id="L51" rel="#L51">51</span> | |
| <span id="L52" rel="#L52">52</span> | |
| <span id="L53" rel="#L53">53</span> | |
| <span id="L54" rel="#L54">54</span> | |
| <span id="L55" rel="#L55">55</span> | |
| <span id="L56" rel="#L56">56</span> | |
| <span id="L57" rel="#L57">57</span> | |
| <span id="L58" rel="#L58">58</span> | |
| <span id="L59" rel="#L59">59</span> | |
| <span id="L60" rel="#L60">60</span> | |
| <span id="L61" rel="#L61">61</span> | |
| <span id="L62" rel="#L62">62</span> | |
| <span id="L63" rel="#L63">63</span> | |
| <span id="L64" rel="#L64">64</span> | |
| <span id="L65" rel="#L65">65</span> | |
| <span id="L66" rel="#L66">66</span> | |
| <span id="L67" rel="#L67">67</span> | |
| <span id="L68" rel="#L68">68</span> | |
| <span id="L69" rel="#L69">69</span> | |
| <span id="L70" rel="#L70">70</span> | |
| <span id="L71" rel="#L71">71</span> | |
| <span id="L72" rel="#L72">72</span> | |
| <span id="L73" rel="#L73">73</span> | |
| <span id="L74" rel="#L74">74</span> | |
| <span id="L75" rel="#L75">75</span> | |
| <span id="L76" rel="#L76">76</span> | |
| <span id="L77" rel="#L77">77</span> | |
| <span id="L78" rel="#L78">78</span> | |
| <span id="L79" rel="#L79">79</span> | |
| <span id="L80" rel="#L80">80</span> | |
| <span id="L81" rel="#L81">81</span> | |
| <span id="L82" rel="#L82">82</span> | |
| <span id="L83" rel="#L83">83</span> | |
| <span id="L84" rel="#L84">84</span> | |
| <span id="L85" rel="#L85">85</span> | |
| <span id="L86" rel="#L86">86</span> | |
| <span id="L87" rel="#L87">87</span> | |
| <span id="L88" rel="#L88">88</span> | |
| <span id="L89" rel="#L89">89</span> | |
| <span id="L90" rel="#L90">90</span> | |
| <span id="L91" rel="#L91">91</span> | |
| <span id="L92" rel="#L92">92</span> | |
| <span id="L93" rel="#L93">93</span> | |
| <span id="L94" rel="#L94">94</span> | |
| <span id="L95" rel="#L95">95</span> | |
| <span id="L96" rel="#L96">96</span> | |
| <span id="L97" rel="#L97">97</span> | |
| <span id="L98" rel="#L98">98</span> | |
| <span id="L99" rel="#L99">99</span> | |
| <span id="L100" rel="#L100">100</span> | |
| <span id="L101" rel="#L101">101</span> | |
| <span id="L102" rel="#L102">102</span> | |
| <span id="L103" rel="#L103">103</span> | |
| <span id="L104" rel="#L104">104</span> | |
| <span id="L105" rel="#L105">105</span> | |
| <span id="L106" rel="#L106">106</span> | |
| <span id="L107" rel="#L107">107</span> | |
| <span id="L108" rel="#L108">108</span> | |
| <span id="L109" rel="#L109">109</span> | |
| <span id="L110" rel="#L110">110</span> | |
| <span id="L111" rel="#L111">111</span> | |
| <span id="L112" rel="#L112">112</span> | |
| <span id="L113" rel="#L113">113</span> | |
| <span id="L114" rel="#L114">114</span> | |
| <span id="L115" rel="#L115">115</span> | |
| <span id="L116" rel="#L116">116</span> | |
| <span id="L117" rel="#L117">117</span> | |
| <span id="L118" rel="#L118">118</span> | |
| <span id="L119" rel="#L119">119</span> | |
| <span id="L120" rel="#L120">120</span> | |
| <span id="L121" rel="#L121">121</span> | |
| <span id="L122" rel="#L122">122</span> | |
| <span id="L123" rel="#L123">123</span> | |
| <span id="L124" rel="#L124">124</span> | |
| </td> | |
| <td class="blob-line-code"> | |
| <div class="code-body highlight"><pre><div class='line' id='LC1'><span class="k">let</span> <span class="k">s</span>:save_cpo <span class="p">=</span> &<span class="nb">cpo</span></div><div class='line' id='LC2'><span class="k">set</span> <span class="nb">cpo</span>&<span class="k">vim</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">let</span> <span class="k">s</span>:_processes <span class="p">=</span> {}</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_loaded<span class="p">(</span>V<span class="p">)</span></div><div class='line' id='LC7'> <span class="k">let</span> <span class="k">s</span>:V <span class="p">=</span> <span class="k">a</span>:V</div><div class='line' id='LC8'> <span class="k">let</span> <span class="k">s</span>:S <span class="p">=</span> <span class="k">s</span>:V.import<span class="p">(</span><span class="s1">'Data.String'</span><span class="p">)</span></div><div class='line' id='LC9'><span class="k">endfunction</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_depends<span class="p">()</span></div><div class='line' id='LC12'> <span class="k">return</span> [<span class="s1">'Data.String'</span>]</div><div class='line' id='LC13'><span class="k">endfunction</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:is_available<span class="p">()</span></div><div class='line' id='LC16'> <span class="k">return</span> <span class="k">s</span>:V.has_vimproc<span class="p">()</span></div><div class='line' id='LC17'><span class="k">endfunction</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:touch<span class="p">(</span>name<span class="p">,</span> cmd<span class="p">)</span></div><div class='line' id='LC20'> <span class="k">if</span> has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:name<span class="p">)</span></div><div class='line' id='LC21'> <span class="k">return</span> <span class="s1">'existing'</span></div><div class='line' id='LC22'> <span class="k">else</span></div><div class='line' id='LC23'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> vimproc#popen3<span class="p">(</span><span class="k">a</span>:cmd<span class="p">)</span></div><div class='line' id='LC24'> <span class="k">let</span> <span class="k">s</span>:_processes[<span class="k">a</span>:name] <span class="p">=</span> <span class="k">p</span></div><div class='line' id='LC25'> <span class="k">return</span> <span class="s1">'new'</span></div><div class='line' id='LC26'> <span class="k">endif</span></div><div class='line' id='LC27'><span class="k">endfunction</span></div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:stop<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC30'> <span class="k">echomsg</span> <span class="s2">"Vital.ProcessManager.stop() is deprecated! Please use kill() or term() instead."</span></div><div class='line' id='LC31'> <span class="k">return</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC32'><span class="k">endfunction</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">i</span><span class="p">,</span> ...<span class="p">)</span></div><div class='line' id='LC35'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC36'> <span class="k">call</span> <span class="k">p</span>.kill<span class="p">(</span><span class="k">get</span><span class="p">(</span><span class="k">a</span>:<span class="m">000</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span> ? <span class="k">g</span>:vimproc#SIGKILL : <span class="k">g</span>:vimproc#SIGTERM<span class="p">)</span></div><div class='line' id='LC37'><span class="c"> " call p.waitpid()</span></div><div class='line' id='LC38'> unlet <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC39'><span class="k">endfunction</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">term</span><span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC42'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC43'><span class="k">endfunction</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC46'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC47'><span class="k">endfunction</span></div><div class='line' id='LC48'><br/></div><div class='line' id='LC49'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read<span class="p">(</span><span class="k">i</span><span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC50'> <span class="k">return</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span>.<span class="m">05</span><span class="p">,</span> <span class="k">a</span>:endpatterns<span class="p">)</span></div><div class='line' id='LC51'><span class="k">endfunction</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">i</span><span class="p">,</span> wait<span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC54'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC55'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC56'> <span class="k">endif</span></div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC61'> <span class="k">return</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">(),</span> <span class="s1">'inactive'</span>]</div><div class='line' id='LC62'> <span class="k">endif</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'> <span class="k">let</span> out_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC65'> <span class="k">let</span> err_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC66'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC67'> <span class="k">while</span> <span class="m">1</span></div><div class='line' id='LC68'> <span class="k">let</span> [<span class="k">x</span><span class="p">,</span> <span class="k">y</span>] <span class="p">=</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">()</span>]</div><div class='line' id='LC69'> <span class="k">if</span> <span class="k">x</span> <span class="p">==</span># <span class="s1">''</span> && <span class="k">y</span> <span class="p">==</span># <span class="s1">''</span></div><div class='line' id='LC70'> <span class="k">if</span> str2float<span class="p">(</span>reltimestr<span class="p">(</span>reltime<span class="p">(</span>lastchanged<span class="p">)))</span> <span class="p">></span> <span class="k">a</span>:wait</div><div class='line' id='LC71'> <span class="k">return</span> [out_memo<span class="p">,</span> err_memo<span class="p">,</span> <span class="s1">'timedout'</span>]</div><div class='line' id='LC72'> <span class="k">endif</span></div><div class='line' id='LC73'> <span class="k">else</span></div><div class='line' id='LC74'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC75'> <span class="k">let</span> out_memo .<span class="p">=</span> <span class="k">x</span></div><div class='line' id='LC76'> <span class="k">let</span> err_memo .<span class="p">=</span> <span class="k">y</span></div><div class='line' id='LC77'> <span class="k">for</span> pattern <span class="k">in</span> <span class="k">a</span>:endpatterns</div><div class='line' id='LC78'> <span class="k">if</span> out_memo <span class="p">=~</span> <span class="p">(</span><span class="s2">"\\(^\\|\n\\)"</span> . pattern<span class="p">)</span></div><div class='line' id='LC79'> <span class="k">return</span> [<span class="k">s</span>:S.substitute_last<span class="p">(</span>out_memo<span class="p">,</span> pattern<span class="p">,</span> <span class="s1">''</span><span class="p">),</span> err_memo<span class="p">,</span> <span class="s1">'matched'</span>]</div><div class='line' id='LC80'> <span class="k">endif</span></div><div class='line' id='LC81'> <span class="k">endfor</span></div><div class='line' id='LC82'> <span class="k">endif</span></div><div class='line' id='LC83'> <span class="k">endwhile</span></div><div class='line' id='LC84'><span class="k">endfunction</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC87'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC88'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC89'> <span class="k">endif</span></div><div class='line' id='LC90'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC91'> <span class="k">return</span> <span class="s1">'inactive'</span></div><div class='line' id='LC92'> <span class="k">endif</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC95'> <span class="k">call</span> <span class="k">p</span>.stdin.<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:str<span class="p">)</span></div><div class='line' id='LC96'><br/></div><div class='line' id='LC97'> <span class="k">return</span> <span class="s1">'active'</span></div><div class='line' id='LC98'><span class="k">endfunction</span></div><div class='line' id='LC99'><br/></div><div class='line' id='LC100'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:writeln<span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC101'> <span class="k">return</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="k">a</span>:str . <span class="s2">"\n"</span><span class="p">)</span></div><div class='line' id='LC102'><span class="k">endfunction</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC105'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC106'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC107'> <span class="k">endif</span></div><div class='line' id='LC108'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC109'><span class="c"> " vimproc.kill isn't to stop but to ask for the current state.</span></div><div class='line' id='LC110'><span class="c"> " return p.kill(0) ? 'inactive' : 'active'</span></div><div class='line' id='LC111'><span class="c"> " ... checkpid() checks if the process is running AND does waitpid() in C,</span></div><div class='line' id='LC112'><span class="c"> " so it solves zombie processes.</span></div><div class='line' id='LC113'> <span class="k">return</span> <span class="k">get</span><span class="p">(</span><span class="k">p</span>.checkpid<span class="p">(),</span> <span class="m">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'run'</span></div><div class='line' id='LC114'> \ ? <span class="s1">'active'</span></div><div class='line' id='LC115'> \ : <span class="s1">'inactive'</span></div><div class='line' id='LC116'><span class="k">endfunction</span></div><div class='line' id='LC117'><br/></div><div class='line' id='LC118'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:debug_processes<span class="p">()</span></div><div class='line' id='LC119'> <span class="k">return</span> <span class="k">s</span>:_processes</div><div class='line' id='LC120'><span class="k">endfunction</span></div><div class='line' id='LC121'><br/></div><div class='line' id='LC122'><span class="k">let</span> &<span class="nb">cpo</span> <span class="p">=</span> <span class="k">s</span>:save_cpo</div><div class='line' id='LC123'>unlet <span class="k">s</span>:save_cpo</div><div class='line' id='LC124'><span class="c">" vim:set et ts=2 sts=2 sw=2 tw=0:</span></div></pre></div> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a> | |
| <div id="jump-to-line" style="display:none"> | |
| <form accept-charset="UTF-8" class="js-jump-to-line-form"> | |
| <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus> | |
| <button type="submit" class="button">Go</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div><!-- /.repo-container --> | |
| <div class="modal-backdrop"></div> | |
| </div><!-- /.container --> | |
| </div><!-- /.site --> | |
| </div><!-- /.wrapper --> | |
| <div class="container"> | |
| <div class="site-footer"> | |
| <ul class="site-footer-links right"> | |
| <li><a href="https://status.github.com/">Status</a></li> | |
| <li><a href="http://developer.github.com">API</a></li> | |
| <li><a href="http://training.github.com">Training</a></li> | |
| <li><a href="http://shop.github.com">Shop</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="/about">About</a></li> | |
| </ul> | |
| <a href="/"> | |
| <span class="mega-octicon octicon-mark-github" title="GitHub"></span> | |
| </a> | |
| <ul class="site-footer-links"> | |
| <li>© 2014 <span title="0.03660s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> | |
| <li><a href="/site/terms">Terms</a></li> | |
| <li><a href="/site/privacy">Privacy</a></li> | |
| <li><a href="/security">Security</a></li> | |
| <li><a href="/contact">Contact</a></li> | |
| </ul> | |
| </div><!-- /.site-footer --> | |
| </div><!-- /.container --> | |
| <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> | |
| <div class="fullscreen-container js-fullscreen-container"> | |
| <div class="textarea-wrap"> | |
| <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea> | |
| <div class="suggester-container"> | |
| <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester" | |
| data-url="/vim-jp/vital.vim/suggestions/commit"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="fullscreen-sidebar"> | |
| <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode"> | |
| <span class="mega-octicon octicon-screen-normal"></span> | |
| </a> | |
| <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards" | |
| title="Switch themes"> | |
| <span class="octicon octicon-color-mode"></span> | |
| </a> | |
| </div> | |
| </div> | |
| <div id="ajax-error-message" class="flash flash-error"> | |
| <span class="octicon octicon-alert"></span> | |
| <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a> | |
| Something went wrong with that request. Please try again. | |
| </div> | |
| </body> | |
| </html> | |
| <!DOCTYPE html> | |
| <html> | |
| <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#"> | |
| <meta charset='utf-8'> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>vital.vim/autoload/vital/__latest__/ProcessManager.vim at master · vim-jp/vital.vim</title> | |
| <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> | |
| <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> | |
| <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" /> | |
| <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" /> | |
| <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" /> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png"> | |
| <meta name="hostname" content="github-fe122-cp1-prd.iad.github.net"> | |
| <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]"> | |
| <link rel="assets" href="https://github.global.ssl.fastly.net/"> | |
| <link rel="conduit-xhr" href="https://ghconduit.com:25035/"> | |
| <link rel="xhr-socket" href="/_sockets" /> | |
| <meta name="msapplication-TileImage" content="/windows-tile.png" /> | |
| <meta name="msapplication-TileColor" content="#ffffff" /> | |
| <meta name="selected-link" value="repo_source" data-pjax-transient /> | |
| <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="B6F95C6A:6644:E50EC4:52E18AFE" name="octolytics-dimension-request_id" /><meta content="214488" name="octolytics-actor-id" /><meta content="osyo-manga" name="octolytics-actor-login" /><meta content="e5012931f92cc8195a7f530c4e37bcc88d86a6df4ea3fd06d12d9d5795f6d0e8" name="octolytics-actor-hash" /> | |
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |
| <meta content="authenticity_token" name="csrf-param" /> | |
| <meta content="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" name="csrf-token" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github-43087292f81aebbe92f90a36344865c4ad8170a0.css" media="all" rel="stylesheet" type="text/css" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github2-d23a1b1c4a1bc509a0ca67face2fb37ef257f599.css" media="all" rel="stylesheet" type="text/css" /> | |
| <script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script> | |
| <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-eab207422bd65ea8c46ef3d26d6fbcc74bba89ce.js" type="text/javascript"></script> | |
| <meta http-equiv="x-pjax-version" content="1ceda3c4fa0194817b46f4df6a3f2c23"> | |
| <link data-pjax-transient rel='permalink' href='/vim-jp/vital.vim/blob/3e229e28b002d42b9ca0d15bddddf0872fa2eed0/autoload/vital/__latest__/ProcessManager.vim'> | |
| <meta property="og:title" content="vital.vim"/> | |
| <meta property="og:type" content="githubog:gitrepository"/> | |
| <meta property="og:url" content="https://github.com/vim-jp/vital.vim"/> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/> | |
| <meta property="og:site_name" content="GitHub"/> | |
| <meta property="og:description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins"/> | |
| <meta name="description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins" /> | |
| <meta content="1051958" name="octolytics-dimension-user_id" /><meta content="vim-jp" name="octolytics-dimension-user_login" /><meta content="1308435" name="octolytics-dimension-repository_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1308435" name="octolytics-dimension-repository_network_root_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_network_root_nwo" /> | |
| <link href="https://github.com/vim-jp/vital.vim/commits/master.atom" rel="alternate" title="Recent Commits to vital.vim:master" type="application/atom+xml" /> | |
| </head> | |
| <body class="logged_in env-production windows vis-public page-blob"> | |
| <div class="wrapper"> | |
| <div class="header header-logged-in true"> | |
| <div class="container clearfix"> | |
| <a class="header-logo-invertocat" href="https://github.com/"> | |
| <span class="mega-octicon octicon-mark-github"></span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/notifications" class="notification-indicator tooltipped downwards contextually-unread" data-gotokey="n" title="You have unread notifications in this repository"> | |
| <span class="mail-status unread"></span> | |
| </a> | |
| <div class="command-bar js-command-bar in-repository"> | |
| <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get"> | |
| <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off" | |
| data-username="osyo-manga" | |
| data-repo="vim-jp/vital.vim" | |
| data-branch="master" | |
| data-sha="e9e83ed3a8ffeefb55aeb10af4b80747448aeda6" | |
| > | |
| <input type="hidden" name="nwo" value="vim-jp/vital.vim" /> | |
| <div class="select-menu js-menu-container js-select-menu search-context-select-menu"> | |
| <span class="minibutton select-menu-button js-menu-target"> | |
| <span class="js-select-button">This repository</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container"> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" /> | |
| <div class="select-menu-item-text js-select-button-text">This repository</div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" name="search_target" value="global" /> | |
| <div class="select-menu-item-text js-select-button-text">All repositories</div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| </div> | |
| </div> | |
| <span class="octicon help tooltipped downwards" title="Show command bar help"> | |
| <span class="octicon octicon-question"></span> | |
| </span> | |
| <input type="hidden" name="ref" value="cmdform"> | |
| </form> | |
| <ul class="top-nav"> | |
| <li class="explore"><a href="/explore">Explore</a></li> | |
| <li><a href="https://gist.github.com">Gist</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="https://help.github.com">Help</a></li> | |
| </ul> | |
| </div> | |
| <ul id="user-links"> | |
| <li> | |
| <a href="/osyo-manga" class="name"> | |
| <img height="20" src="https://1.gravatar.com/avatar/3931098ae486b6df619050c63e24f6cc?d=https%3A%2F%2Fidenticons.github.com%2Fc192b911f32678010c36ee637415e182.png&r=x&s=140" width="20" /> osyo-manga | |
| </a> | |
| </li> | |
| <li class="new-menu dropdown-toggle js-menu-container"> | |
| <a href="#" class="js-menu-target tooltipped downwards" title="Create new…"> | |
| <span class="octicon octicon-plus"></span> | |
| <span class="dropdown-arrow"></span> | |
| </a> | |
| <div class="js-menu-content"> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/settings/profile" id="account_settings" | |
| class="tooltipped downwards" | |
| aria-label="Account settings " | |
| title="Account settings "> | |
| <span class="octicon octicon-tools"></span> | |
| </a> | |
| </li> | |
| <li> | |
| <a class="tooltipped downwards" href="/logout" data-method="post" id="logout" title="Sign out" aria-label="Sign out"> | |
| <span class="octicon octicon-log-out"></span> | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="js-new-dropdown-contents hidden"> | |
| <ul class="dropdown-menu"> | |
| <li> | |
| <a href="/new"><span class="octicon octicon-repo-create"></span> New repository</a> | |
| </li> | |
| <li> | |
| <a href="/organizations/new"><span class="octicon octicon-organization"></span> New organization</a> | |
| </li> | |
| <li class="section-title"> | |
| <span title="vim-jp/vital.vim">This repository</span> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/issues/new"><span class="octicon octicon-issue-opened"></span> New issue</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="site" itemscope itemtype="http://schema.org/WebPage"> | |
| <div class="pagehead repohead instapaper_ignore readability-menu"> | |
| <div class="container"> | |
| <ul class="pagehead-actions"> | |
| <li class="subscription"> | |
| <form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> <input id="repository_id" name="repository_id" type="hidden" value="1308435" /> | |
| <div class="select-menu js-menu-container js-select-menu"> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/watchers"> | |
| 22 | |
| </a> | |
| <span class="minibutton select-menu-button with-count js-menu-target" role="button" tabindex="0"> | |
| <span class="js-select-button"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </span> | |
| <div class="select-menu-modal-holder"> | |
| <div class="select-menu-modal subscription-menu-modal js-menu-content"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Notification status</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-list js-navigation-container" role="menu"> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_included" name="do" type="radio" value="included" /> | |
| <h4>Not watching</h4> | |
| <span class="description">You only receive notifications for conversations in which you participate or are @mentioned.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-watch"></span> | |
| Watch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input checked="checked" id="do_subscribed" name="do" type="radio" value="subscribed" /> | |
| <h4>Watching</h4> | |
| <span class="description">You receive notifications for all conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_ignore" name="do" type="radio" value="ignore" /> | |
| <h4>Ignoring</h4> | |
| <span class="description">You do not receive any notifications for conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-mute"></span> | |
| Stop ignoring | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| </form> | |
| </li> | |
| <li> | |
| <div class="js-toggler-container js-social-container starring-container "> | |
| <a href="/vim-jp/vital.vim/unstar" | |
| class="minibutton with-count js-toggler-target star-button starred upwards" | |
| title="Unstar this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star-delete"></span><span class="text">Unstar</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/star" | |
| class="minibutton with-count js-toggler-target star-button unstarred upwards" | |
| title="Star this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star"></span><span class="text">Star</span> | |
| </a> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/stargazers"> | |
| 79 | |
| </a> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/fork" class="minibutton with-count js-toggler-target fork-button lighter upwards" title="Fork this repo" rel="facebox nofollow"> | |
| <span class="octicon octicon-git-branch-create"></span><span class="text">Fork</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/network" class="social-count">26</a> | |
| </li> | |
| </ul> | |
| <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> | |
| <span class="repo-label"><span>public</span></span> | |
| <span class="mega-octicon octicon-repo"></span> | |
| <span class="author"> | |
| <a href="/vim-jp" class="url fn" itemprop="url" rel="author"><span itemprop="title">vim-jp</span></a> | |
| </span> | |
| <span class="repohead-name-divider">/</span> | |
| <strong><a href="/vim-jp/vital.vim" class="js-current-repository js-repo-home-link">vital.vim</a></strong> | |
| <span class="page-context-loader"> | |
| <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </span> | |
| </h1> | |
| </div><!-- /.container --> | |
| </div><!-- /.repohead --> | |
| <div class="container"> | |
| <div class="repository-with-sidebar repo-container "> | |
| <div class="repository-sidebar"> | |
| <div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders"> | |
| <div class="sunken-menu-contents"> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Code"> | |
| <a href="/vim-jp/vital.vim" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /vim-jp/vital.vim"> | |
| <span class="octicon octicon-code"></span> <span class="full-word">Code</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Issues"> | |
| <a href="/vim-jp/vital.vim/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /vim-jp/vital.vim/issues"> | |
| <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> | |
| <span class='counter'>28</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Pull Requests"> | |
| <a href="/vim-jp/vital.vim/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /vim-jp/vital.vim/pulls"> | |
| <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> | |
| <span class='counter'>4</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Wiki"> | |
| <a href="/vim-jp/vital.vim/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_wiki /vim-jp/vital.vim/wiki"> | |
| <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| <div class="sunken-menu-separator"></div> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Pulse"> | |
| <a href="/vim-jp/vital.vim/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /vim-jp/vital.vim/pulse"> | |
| <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Graphs"> | |
| <a href="/vim-jp/vital.vim/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /vim-jp/vital.vim/graphs"> | |
| <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Network"> | |
| <a href="/vim-jp/vital.vim/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /vim-jp/vital.vim/network"> | |
| <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="only-with-full-nav"> | |
| <div class="clone-url " | |
| data-protocol-type="http" | |
| data-url="/users/set_protocol?protocol_selector=http&protocol_type=push"> | |
| <h3><strong>HTTPS</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url open" | |
| data-protocol-type="ssh" | |
| data-url="/users/set_protocol?protocol_selector=ssh&protocol_type=push"> | |
| <h3><strong>SSH</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="git@github.com:vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="git@github.com:vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url " | |
| data-protocol-type="subversion" | |
| data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=push"> | |
| <h3><strong>Subversion</strong> checkout URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <p class="clone-options">You can clone with | |
| <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>, | |
| <a href="#" class="js-clone-selector" data-protocol="ssh">SSH</a>, | |
| or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. | |
| <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you."> | |
| <a href="https://help.github.com/articles/which-remote-url-should-i-use"> | |
| <span class="octicon octicon-question"></span> | |
| </a> | |
| </span> | |
| </p> | |
| <a href="http://windows.github.com" class="minibutton sidebar-button"> | |
| <span class="octicon octicon-device-desktop"></span> | |
| Clone in Desktop | |
| </a> | |
| <a href="/vim-jp/vital.vim/archive/master.zip" | |
| class="minibutton sidebar-button" | |
| title="Download this repository as a zip file" | |
| rel="nofollow"> | |
| <span class="octicon octicon-cloud-download"></span> | |
| Download ZIP | |
| </a> | |
| </div> | |
| </div><!-- /.repository-sidebar --> | |
| <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> | |
| <!-- blob contrib key: blob_contributors:v21:8865196e6c233067ca43f509eaa36ae4 --> | |
| <p title="This is a placeholder element" class="js-history-link-replace hidden"></p> | |
| <a href="/vim-jp/vital.vim/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a> | |
| <div class="file-navigation"> | |
| <div class="select-menu js-menu-container js-select-menu" > | |
| <span class="minibutton select-menu-button js-menu-target" data-hotkey="w" | |
| data-master-branch="master" | |
| data-ref="master" | |
| role="button" aria-label="Switch branches or tags" tabindex="0"> | |
| <span class="octicon octicon-git-branch"></span> | |
| <i>branch:</i> | |
| <span class="js-select-button">master</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Switch branches/tags</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-filters"> | |
| <div class="select-menu-text-filter"> | |
| <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Find or create a branch…"> | |
| </div> | |
| <div class="select-menu-tabs"> | |
| <ul> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> | |
| </li> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> | |
| </li> | |
| </ul> | |
| </div><!-- /.select-menu-tabs --> | |
| </div><!-- /.select-menu-filters --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/Data.Closure/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="Data.Closure" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="Data.Closure">Data.Closure</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/git_submodule/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="git_submodule" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="git_submodule">git_submodule</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/logger/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="logger" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="logger">logger</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="master" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="master">master</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/optional-prelude/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="optional-prelude" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="optional-prelude">optional-prelude</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sqlite-processmanager-wip/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sqlite-processmanager-wip" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sqlite-processmanager-wip">sqlite-processmanager-wip</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sys.file/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sys.file" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sys.file">sys.file</a> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| <form accept-charset="UTF-8" action="/vim-jp/vital.vim/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> | |
| <span class="octicon octicon-git-branch-create select-menu-item-icon"></span> | |
| <div class="select-menu-item-text"> | |
| <h4>Create branch: <span class="js-new-item-name"></span></h4> | |
| <span class="description">from ‘master’</span> | |
| </div> | |
| <input type="hidden" name="name" id="name" class="js-new-item-value"> | |
| <input type="hidden" name="branch" id="branch" value="master" /> | |
| <input type="hidden" name="path" id="path" value="autoload/vital/__latest__/ProcessManager.vim" /> | |
| </form> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| </div> | |
| <div class="select-menu-no-results">Nothing to show</div> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| <div class="breadcrumb"> | |
| <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital.vim</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">autoload</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital/__latest__" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">__latest__</span></a></span><span class="separator"> / </span><strong class="final-path">ProcessManager.vim</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="autoload/vital/__latest__/ProcessManager.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="commit file-history-tease"> | |
| <img class="main-avatar" height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <span class="author"><a href="/ujihisa" rel="author">ujihisa</a></span> | |
| <time class="js-relative-date" datetime="2013-12-21T20:30:11-08:00" title="2013-12-21 20:30:11">December 21, 2013</time> | |
| <div class="commit-title"> | |
| <a href="/vim-jp/vital.vim/commit/240d2c93ff042c7afd291cdb301c0c1004136a73" class="message" data-pjax="true" title="ProcessManager: cosmetic change">ProcessManager: cosmetic change</a> | |
| </div> | |
| <div class="participation"> | |
| <p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>4</strong> contributors</a></p> | |
| <a class="avatar tooltipped downwards" title="ujihisa" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ujihisa"><img height="20" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="mattn" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=mattn"><img height="20" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="ichizok" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ichizok"><img height="20" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="alpaca-tc" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=alpaca-tc"><img height="20" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="20" /></a> | |
| </div> | |
| <div id="blob_contributors_box" style="display:none"> | |
| <h2 class="facebox-header">Users who have contributed to this file</h2> | |
| <ul class="facebox-user-list"> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <a href="/ujihisa">ujihisa</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="24" /> | |
| <a href="/mattn">mattn</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="24" /> | |
| <a href="/ichizok">ichizok</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="24" /> | |
| <a href="/alpaca-tc">alpaca-tc</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div id="files" class="bubble"> | |
| <div class="file"> | |
| <div class="meta"> | |
| <div class="info"> | |
| <span class="icon"><b class="octicon octicon-file-text"></b></span> | |
| <span class="mode" title="File Mode">file</span> | |
| <span>125 lines (103 sloc)</span> | |
| <span>2.881 kb</span> | |
| </div> | |
| <div class="actions"> | |
| <div class="button-group"> | |
| <a class="minibutton tooltipped leftwards" | |
| href="http://windows.github.com" title="Open this file in GitHub for Windows"> | |
| <span class="octicon octicon-device-desktop"></span> Open | |
| </a> | |
| <a class="minibutton" | |
| href="/vim-jp/vital.vim/edit/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-method="post" rel="nofollow" data-hotkey="e">Edit</a> | |
| <a href="/vim-jp/vital.vim/raw/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " id="raw-url">Raw</a> | |
| <a href="/vim-jp/vital.vim/blame/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton ">Blame</a> | |
| <a href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " rel="nofollow">History</a> | |
| </div><!-- /.button-group --> | |
| <a class="minibutton danger empty-icon tooltipped downwards" | |
| href="/vim-jp/vital.vim/delete/master/autoload/vital/__latest__/ProcessManager.vim" | |
| title="" | |
| data-method="post" data-test-id="delete-blob-file" rel="nofollow"> | |
| Delete | |
| </a> | |
| </div><!-- /.actions --> | |
| </div> | |
| <div class="blob-wrapper data type-viml js-blob-data"> | |
| <table class="file-code file-diff"> | |
| <tr class="file-code-line"> | |
| <td class="blob-line-nums"> | |
| <span id="L1" rel="#L1">1</span> | |
| <span id="L2" rel="#L2">2</span> | |
| <span id="L3" rel="#L3">3</span> | |
| <span id="L4" rel="#L4">4</span> | |
| <span id="L5" rel="#L5">5</span> | |
| <span id="L6" rel="#L6">6</span> | |
| <span id="L7" rel="#L7">7</span> | |
| <span id="L8" rel="#L8">8</span> | |
| <span id="L9" rel="#L9">9</span> | |
| <span id="L10" rel="#L10">10</span> | |
| <span id="L11" rel="#L11">11</span> | |
| <span id="L12" rel="#L12">12</span> | |
| <span id="L13" rel="#L13">13</span> | |
| <span id="L14" rel="#L14">14</span> | |
| <span id="L15" rel="#L15">15</span> | |
| <span id="L16" rel="#L16">16</span> | |
| <span id="L17" rel="#L17">17</span> | |
| <span id="L18" rel="#L18">18</span> | |
| <span id="L19" rel="#L19">19</span> | |
| <span id="L20" rel="#L20">20</span> | |
| <span id="L21" rel="#L21">21</span> | |
| <span id="L22" rel="#L22">22</span> | |
| <span id="L23" rel="#L23">23</span> | |
| <span id="L24" rel="#L24">24</span> | |
| <span id="L25" rel="#L25">25</span> | |
| <span id="L26" rel="#L26">26</span> | |
| <span id="L27" rel="#L27">27</span> | |
| <span id="L28" rel="#L28">28</span> | |
| <span id="L29" rel="#L29">29</span> | |
| <span id="L30" rel="#L30">30</span> | |
| <span id="L31" rel="#L31">31</span> | |
| <span id="L32" rel="#L32">32</span> | |
| <span id="L33" rel="#L33">33</span> | |
| <span id="L34" rel="#L34">34</span> | |
| <span id="L35" rel="#L35">35</span> | |
| <span id="L36" rel="#L36">36</span> | |
| <span id="L37" rel="#L37">37</span> | |
| <span id="L38" rel="#L38">38</span> | |
| <span id="L39" rel="#L39">39</span> | |
| <span id="L40" rel="#L40">40</span> | |
| <span id="L41" rel="#L41">41</span> | |
| <span id="L42" rel="#L42">42</span> | |
| <span id="L43" rel="#L43">43</span> | |
| <span id="L44" rel="#L44">44</span> | |
| <span id="L45" rel="#L45">45</span> | |
| <span id="L46" rel="#L46">46</span> | |
| <span id="L47" rel="#L47">47</span> | |
| <span id="L48" rel="#L48">48</span> | |
| <span id="L49" rel="#L49">49</span> | |
| <span id="L50" rel="#L50">50</span> | |
| <span id="L51" rel="#L51">51</span> | |
| <span id="L52" rel="#L52">52</span> | |
| <span id="L53" rel="#L53">53</span> | |
| <span id="L54" rel="#L54">54</span> | |
| <span id="L55" rel="#L55">55</span> | |
| <span id="L56" rel="#L56">56</span> | |
| <span id="L57" rel="#L57">57</span> | |
| <span id="L58" rel="#L58">58</span> | |
| <span id="L59" rel="#L59">59</span> | |
| <span id="L60" rel="#L60">60</span> | |
| <span id="L61" rel="#L61">61</span> | |
| <span id="L62" rel="#L62">62</span> | |
| <span id="L63" rel="#L63">63</span> | |
| <span id="L64" rel="#L64">64</span> | |
| <span id="L65" rel="#L65">65</span> | |
| <span id="L66" rel="#L66">66</span> | |
| <span id="L67" rel="#L67">67</span> | |
| <span id="L68" rel="#L68">68</span> | |
| <span id="L69" rel="#L69">69</span> | |
| <span id="L70" rel="#L70">70</span> | |
| <span id="L71" rel="#L71">71</span> | |
| <span id="L72" rel="#L72">72</span> | |
| <span id="L73" rel="#L73">73</span> | |
| <span id="L74" rel="#L74">74</span> | |
| <span id="L75" rel="#L75">75</span> | |
| <span id="L76" rel="#L76">76</span> | |
| <span id="L77" rel="#L77">77</span> | |
| <span id="L78" rel="#L78">78</span> | |
| <span id="L79" rel="#L79">79</span> | |
| <span id="L80" rel="#L80">80</span> | |
| <span id="L81" rel="#L81">81</span> | |
| <span id="L82" rel="#L82">82</span> | |
| <span id="L83" rel="#L83">83</span> | |
| <span id="L84" rel="#L84">84</span> | |
| <span id="L85" rel="#L85">85</span> | |
| <span id="L86" rel="#L86">86</span> | |
| <span id="L87" rel="#L87">87</span> | |
| <span id="L88" rel="#L88">88</span> | |
| <span id="L89" rel="#L89">89</span> | |
| <span id="L90" rel="#L90">90</span> | |
| <span id="L91" rel="#L91">91</span> | |
| <span id="L92" rel="#L92">92</span> | |
| <span id="L93" rel="#L93">93</span> | |
| <span id="L94" rel="#L94">94</span> | |
| <span id="L95" rel="#L95">95</span> | |
| <span id="L96" rel="#L96">96</span> | |
| <span id="L97" rel="#L97">97</span> | |
| <span id="L98" rel="#L98">98</span> | |
| <span id="L99" rel="#L99">99</span> | |
| <span id="L100" rel="#L100">100</span> | |
| <span id="L101" rel="#L101">101</span> | |
| <span id="L102" rel="#L102">102</span> | |
| <span id="L103" rel="#L103">103</span> | |
| <span id="L104" rel="#L104">104</span> | |
| <span id="L105" rel="#L105">105</span> | |
| <span id="L106" rel="#L106">106</span> | |
| <span id="L107" rel="#L107">107</span> | |
| <span id="L108" rel="#L108">108</span> | |
| <span id="L109" rel="#L109">109</span> | |
| <span id="L110" rel="#L110">110</span> | |
| <span id="L111" rel="#L111">111</span> | |
| <span id="L112" rel="#L112">112</span> | |
| <span id="L113" rel="#L113">113</span> | |
| <span id="L114" rel="#L114">114</span> | |
| <span id="L115" rel="#L115">115</span> | |
| <span id="L116" rel="#L116">116</span> | |
| <span id="L117" rel="#L117">117</span> | |
| <span id="L118" rel="#L118">118</span> | |
| <span id="L119" rel="#L119">119</span> | |
| <span id="L120" rel="#L120">120</span> | |
| <span id="L121" rel="#L121">121</span> | |
| <span id="L122" rel="#L122">122</span> | |
| <span id="L123" rel="#L123">123</span> | |
| <span id="L124" rel="#L124">124</span> | |
| </td> | |
| <td class="blob-line-code"> | |
| <div class="code-body highlight"><pre><div class='line' id='LC1'><span class="k">let</span> <span class="k">s</span>:save_cpo <span class="p">=</span> &<span class="nb">cpo</span></div><div class='line' id='LC2'><span class="k">set</span> <span class="nb">cpo</span>&<span class="k">vim</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">let</span> <span class="k">s</span>:_processes <span class="p">=</span> {}</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_loaded<span class="p">(</span>V<span class="p">)</span></div><div class='line' id='LC7'> <span class="k">let</span> <span class="k">s</span>:V <span class="p">=</span> <span class="k">a</span>:V</div><div class='line' id='LC8'> <span class="k">let</span> <span class="k">s</span>:S <span class="p">=</span> <span class="k">s</span>:V.import<span class="p">(</span><span class="s1">'Data.String'</span><span class="p">)</span></div><div class='line' id='LC9'><span class="k">endfunction</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_depends<span class="p">()</span></div><div class='line' id='LC12'> <span class="k">return</span> [<span class="s1">'Data.String'</span>]</div><div class='line' id='LC13'><span class="k">endfunction</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:is_available<span class="p">()</span></div><div class='line' id='LC16'> <span class="k">return</span> <span class="k">s</span>:V.has_vimproc<span class="p">()</span></div><div class='line' id='LC17'><span class="k">endfunction</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:touch<span class="p">(</span>name<span class="p">,</span> cmd<span class="p">)</span></div><div class='line' id='LC20'> <span class="k">if</span> has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:name<span class="p">)</span></div><div class='line' id='LC21'> <span class="k">return</span> <span class="s1">'existing'</span></div><div class='line' id='LC22'> <span class="k">else</span></div><div class='line' id='LC23'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> vimproc#popen3<span class="p">(</span><span class="k">a</span>:cmd<span class="p">)</span></div><div class='line' id='LC24'> <span class="k">let</span> <span class="k">s</span>:_processes[<span class="k">a</span>:name] <span class="p">=</span> <span class="k">p</span></div><div class='line' id='LC25'> <span class="k">return</span> <span class="s1">'new'</span></div><div class='line' id='LC26'> <span class="k">endif</span></div><div class='line' id='LC27'><span class="k">endfunction</span></div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:stop<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC30'> <span class="k">echomsg</span> <span class="s2">"Vital.ProcessManager.stop() is deprecated! Please use kill() or term() instead."</span></div><div class='line' id='LC31'> <span class="k">return</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC32'><span class="k">endfunction</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">i</span><span class="p">,</span> ...<span class="p">)</span></div><div class='line' id='LC35'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC36'> <span class="k">call</span> <span class="k">p</span>.kill<span class="p">(</span><span class="k">get</span><span class="p">(</span><span class="k">a</span>:<span class="m">000</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span> ? <span class="k">g</span>:vimproc#SIGKILL : <span class="k">g</span>:vimproc#SIGTERM<span class="p">)</span></div><div class='line' id='LC37'><span class="c"> " call p.waitpid()</span></div><div class='line' id='LC38'> unlet <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC39'><span class="k">endfunction</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">term</span><span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC42'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC43'><span class="k">endfunction</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC46'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC47'><span class="k">endfunction</span></div><div class='line' id='LC48'><br/></div><div class='line' id='LC49'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read<span class="p">(</span><span class="k">i</span><span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC50'> <span class="k">return</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span>.<span class="m">05</span><span class="p">,</span> <span class="k">a</span>:endpatterns<span class="p">)</span></div><div class='line' id='LC51'><span class="k">endfunction</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">i</span><span class="p">,</span> wait<span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC54'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC55'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC56'> <span class="k">endif</span></div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC61'> <span class="k">return</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">(),</span> <span class="s1">'inactive'</span>]</div><div class='line' id='LC62'> <span class="k">endif</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'> <span class="k">let</span> out_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC65'> <span class="k">let</span> err_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC66'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC67'> <span class="k">while</span> <span class="m">1</span></div><div class='line' id='LC68'> <span class="k">let</span> [<span class="k">x</span><span class="p">,</span> <span class="k">y</span>] <span class="p">=</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">()</span>]</div><div class='line' id='LC69'> <span class="k">if</span> <span class="k">x</span> <span class="p">==</span># <span class="s1">''</span> && <span class="k">y</span> <span class="p">==</span># <span class="s1">''</span></div><div class='line' id='LC70'> <span class="k">if</span> str2float<span class="p">(</span>reltimestr<span class="p">(</span>reltime<span class="p">(</span>lastchanged<span class="p">)))</span> <span class="p">></span> <span class="k">a</span>:wait</div><div class='line' id='LC71'> <span class="k">return</span> [out_memo<span class="p">,</span> err_memo<span class="p">,</span> <span class="s1">'timedout'</span>]</div><div class='line' id='LC72'> <span class="k">endif</span></div><div class='line' id='LC73'> <span class="k">else</span></div><div class='line' id='LC74'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC75'> <span class="k">let</span> out_memo .<span class="p">=</span> <span class="k">x</span></div><div class='line' id='LC76'> <span class="k">let</span> err_memo .<span class="p">=</span> <span class="k">y</span></div><div class='line' id='LC77'> <span class="k">for</span> pattern <span class="k">in</span> <span class="k">a</span>:endpatterns</div><div class='line' id='LC78'> <span class="k">if</span> out_memo <span class="p">=~</span> <span class="p">(</span><span class="s2">"\\(^\\|\n\\)"</span> . pattern<span class="p">)</span></div><div class='line' id='LC79'> <span class="k">return</span> [<span class="k">s</span>:S.substitute_last<span class="p">(</span>out_memo<span class="p">,</span> pattern<span class="p">,</span> <span class="s1">''</span><span class="p">),</span> err_memo<span class="p">,</span> <span class="s1">'matched'</span>]</div><div class='line' id='LC80'> <span class="k">endif</span></div><div class='line' id='LC81'> <span class="k">endfor</span></div><div class='line' id='LC82'> <span class="k">endif</span></div><div class='line' id='LC83'> <span class="k">endwhile</span></div><div class='line' id='LC84'><span class="k">endfunction</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC87'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC88'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC89'> <span class="k">endif</span></div><div class='line' id='LC90'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC91'> <span class="k">return</span> <span class="s1">'inactive'</span></div><div class='line' id='LC92'> <span class="k">endif</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC95'> <span class="k">call</span> <span class="k">p</span>.stdin.<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:str<span class="p">)</span></div><div class='line' id='LC96'><br/></div><div class='line' id='LC97'> <span class="k">return</span> <span class="s1">'active'</span></div><div class='line' id='LC98'><span class="k">endfunction</span></div><div class='line' id='LC99'><br/></div><div class='line' id='LC100'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:writeln<span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC101'> <span class="k">return</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="k">a</span>:str . <span class="s2">"\n"</span><span class="p">)</span></div><div class='line' id='LC102'><span class="k">endfunction</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC105'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC106'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC107'> <span class="k">endif</span></div><div class='line' id='LC108'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC109'><span class="c"> " vimproc.kill isn't to stop but to ask for the current state.</span></div><div class='line' id='LC110'><span class="c"> " return p.kill(0) ? 'inactive' : 'active'</span></div><div class='line' id='LC111'><span class="c"> " ... checkpid() checks if the process is running AND does waitpid() in C,</span></div><div class='line' id='LC112'><span class="c"> " so it solves zombie processes.</span></div><div class='line' id='LC113'> <span class="k">return</span> <span class="k">get</span><span class="p">(</span><span class="k">p</span>.checkpid<span class="p">(),</span> <span class="m">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'run'</span></div><div class='line' id='LC114'> \ ? <span class="s1">'active'</span></div><div class='line' id='LC115'> \ : <span class="s1">'inactive'</span></div><div class='line' id='LC116'><span class="k">endfunction</span></div><div class='line' id='LC117'><br/></div><div class='line' id='LC118'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:debug_processes<span class="p">()</span></div><div class='line' id='LC119'> <span class="k">return</span> <span class="k">s</span>:_processes</div><div class='line' id='LC120'><span class="k">endfunction</span></div><div class='line' id='LC121'><br/></div><div class='line' id='LC122'><span class="k">let</span> &<span class="nb">cpo</span> <span class="p">=</span> <span class="k">s</span>:save_cpo</div><div class='line' id='LC123'>unlet <span class="k">s</span>:save_cpo</div><div class='line' id='LC124'><span class="c">" vim:set et ts=2 sts=2 sw=2 tw=0:</span></div></pre></div> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a> | |
| <div id="jump-to-line" style="display:none"> | |
| <form accept-charset="UTF-8" class="js-jump-to-line-form"> | |
| <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus> | |
| <button type="submit" class="button">Go</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div><!-- /.repo-container --> | |
| <div class="modal-backdrop"></div> | |
| </div><!-- /.container --> | |
| </div><!-- /.site --> | |
| </div><!-- /.wrapper --> | |
| <div class="container"> | |
| <div class="site-footer"> | |
| <ul class="site-footer-links right"> | |
| <li><a href="https://status.github.com/">Status</a></li> | |
| <li><a href="http://developer.github.com">API</a></li> | |
| <li><a href="http://training.github.com">Training</a></li> | |
| <li><a href="http://shop.github.com">Shop</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="/about">About</a></li> | |
| </ul> | |
| <a href="/"> | |
| <span class="mega-octicon octicon-mark-github" title="GitHub"></span> | |
| </a> | |
| <ul class="site-footer-links"> | |
| <li>© 2014 <span title="0.03660s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> | |
| <li><a href="/site/terms">Terms</a></li> | |
| <li><a href="/site/privacy">Privacy</a></li> | |
| <li><a href="/security">Security</a></li> | |
| <li><a href="/contact">Contact</a></li> | |
| </ul> | |
| </div><!-- /.site-footer --> | |
| </div><!-- /.container --> | |
| <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> | |
| <div class="fullscreen-container js-fullscreen-container"> | |
| <div class="textarea-wrap"> | |
| <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea> | |
| <div class="suggester-container"> | |
| <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester" | |
| data-url="/vim-jp/vital.vim/suggestions/commit"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="fullscreen-sidebar"> | |
| <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode"> | |
| <span class="mega-octicon octicon-screen-normal"></span> | |
| </a> | |
| <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards" | |
| title="Switch themes"> | |
| <span class="octicon octicon-color-mode"></span> | |
| </a> | |
| </div> | |
| </div> | |
| <div id="ajax-error-message" class="flash flash-error"> | |
| <span class="octicon octicon-alert"></span> | |
| <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a> | |
| Something went wrong with that request. Please try again. | |
| </div> | |
| </body> | |
| </html> | |
| <!DOCTYPE html> | |
| <html> | |
| <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#"> | |
| <meta charset='utf-8'> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>vital.vim/autoload/vital/__latest__/ProcessManager.vim at master · vim-jp/vital.vim</title> | |
| <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> | |
| <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> | |
| <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" /> | |
| <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" /> | |
| <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" /> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png"> | |
| <meta name="hostname" content="github-fe122-cp1-prd.iad.github.net"> | |
| <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]"> | |
| <link rel="assets" href="https://github.global.ssl.fastly.net/"> | |
| <link rel="conduit-xhr" href="https://ghconduit.com:25035/"> | |
| <link rel="xhr-socket" href="/_sockets" /> | |
| <meta name="msapplication-TileImage" content="/windows-tile.png" /> | |
| <meta name="msapplication-TileColor" content="#ffffff" /> | |
| <meta name="selected-link" value="repo_source" data-pjax-transient /> | |
| <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="B6F95C6A:6644:E50EC4:52E18AFE" name="octolytics-dimension-request_id" /><meta content="214488" name="octolytics-actor-id" /><meta content="osyo-manga" name="octolytics-actor-login" /><meta content="e5012931f92cc8195a7f530c4e37bcc88d86a6df4ea3fd06d12d9d5795f6d0e8" name="octolytics-actor-hash" /> | |
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |
| <meta content="authenticity_token" name="csrf-param" /> | |
| <meta content="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" name="csrf-token" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github-43087292f81aebbe92f90a36344865c4ad8170a0.css" media="all" rel="stylesheet" type="text/css" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github2-d23a1b1c4a1bc509a0ca67face2fb37ef257f599.css" media="all" rel="stylesheet" type="text/css" /> | |
| <script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script> | |
| <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-eab207422bd65ea8c46ef3d26d6fbcc74bba89ce.js" type="text/javascript"></script> | |
| <meta http-equiv="x-pjax-version" content="1ceda3c4fa0194817b46f4df6a3f2c23"> | |
| <link data-pjax-transient rel='permalink' href='/vim-jp/vital.vim/blob/3e229e28b002d42b9ca0d15bddddf0872fa2eed0/autoload/vital/__latest__/ProcessManager.vim'> | |
| <meta property="og:title" content="vital.vim"/> | |
| <meta property="og:type" content="githubog:gitrepository"/> | |
| <meta property="og:url" content="https://github.com/vim-jp/vital.vim"/> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/> | |
| <meta property="og:site_name" content="GitHub"/> | |
| <meta property="og:description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins"/> | |
| <meta name="description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins" /> | |
| <meta content="1051958" name="octolytics-dimension-user_id" /><meta content="vim-jp" name="octolytics-dimension-user_login" /><meta content="1308435" name="octolytics-dimension-repository_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1308435" name="octolytics-dimension-repository_network_root_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_network_root_nwo" /> | |
| <link href="https://github.com/vim-jp/vital.vim/commits/master.atom" rel="alternate" title="Recent Commits to vital.vim:master" type="application/atom+xml" /> | |
| </head> | |
| <body class="logged_in env-production windows vis-public page-blob"> | |
| <div class="wrapper"> | |
| <div class="header header-logged-in true"> | |
| <div class="container clearfix"> | |
| <a class="header-logo-invertocat" href="https://github.com/"> | |
| <span class="mega-octicon octicon-mark-github"></span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/notifications" class="notification-indicator tooltipped downwards contextually-unread" data-gotokey="n" title="You have unread notifications in this repository"> | |
| <span class="mail-status unread"></span> | |
| </a> | |
| <div class="command-bar js-command-bar in-repository"> | |
| <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get"> | |
| <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off" | |
| data-username="osyo-manga" | |
| data-repo="vim-jp/vital.vim" | |
| data-branch="master" | |
| data-sha="e9e83ed3a8ffeefb55aeb10af4b80747448aeda6" | |
| > | |
| <input type="hidden" name="nwo" value="vim-jp/vital.vim" /> | |
| <div class="select-menu js-menu-container js-select-menu search-context-select-menu"> | |
| <span class="minibutton select-menu-button js-menu-target"> | |
| <span class="js-select-button">This repository</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container"> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" /> | |
| <div class="select-menu-item-text js-select-button-text">This repository</div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" name="search_target" value="global" /> | |
| <div class="select-menu-item-text js-select-button-text">All repositories</div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| </div> | |
| </div> | |
| <span class="octicon help tooltipped downwards" title="Show command bar help"> | |
| <span class="octicon octicon-question"></span> | |
| </span> | |
| <input type="hidden" name="ref" value="cmdform"> | |
| </form> | |
| <ul class="top-nav"> | |
| <li class="explore"><a href="/explore">Explore</a></li> | |
| <li><a href="https://gist.github.com">Gist</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="https://help.github.com">Help</a></li> | |
| </ul> | |
| </div> | |
| <ul id="user-links"> | |
| <li> | |
| <a href="/osyo-manga" class="name"> | |
| <img height="20" src="https://1.gravatar.com/avatar/3931098ae486b6df619050c63e24f6cc?d=https%3A%2F%2Fidenticons.github.com%2Fc192b911f32678010c36ee637415e182.png&r=x&s=140" width="20" /> osyo-manga | |
| </a> | |
| </li> | |
| <li class="new-menu dropdown-toggle js-menu-container"> | |
| <a href="#" class="js-menu-target tooltipped downwards" title="Create new…"> | |
| <span class="octicon octicon-plus"></span> | |
| <span class="dropdown-arrow"></span> | |
| </a> | |
| <div class="js-menu-content"> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/settings/profile" id="account_settings" | |
| class="tooltipped downwards" | |
| aria-label="Account settings " | |
| title="Account settings "> | |
| <span class="octicon octicon-tools"></span> | |
| </a> | |
| </li> | |
| <li> | |
| <a class="tooltipped downwards" href="/logout" data-method="post" id="logout" title="Sign out" aria-label="Sign out"> | |
| <span class="octicon octicon-log-out"></span> | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="js-new-dropdown-contents hidden"> | |
| <ul class="dropdown-menu"> | |
| <li> | |
| <a href="/new"><span class="octicon octicon-repo-create"></span> New repository</a> | |
| </li> | |
| <li> | |
| <a href="/organizations/new"><span class="octicon octicon-organization"></span> New organization</a> | |
| </li> | |
| <li class="section-title"> | |
| <span title="vim-jp/vital.vim">This repository</span> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/issues/new"><span class="octicon octicon-issue-opened"></span> New issue</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="site" itemscope itemtype="http://schema.org/WebPage"> | |
| <div class="pagehead repohead instapaper_ignore readability-menu"> | |
| <div class="container"> | |
| <ul class="pagehead-actions"> | |
| <li class="subscription"> | |
| <form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> <input id="repository_id" name="repository_id" type="hidden" value="1308435" /> | |
| <div class="select-menu js-menu-container js-select-menu"> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/watchers"> | |
| 22 | |
| </a> | |
| <span class="minibutton select-menu-button with-count js-menu-target" role="button" tabindex="0"> | |
| <span class="js-select-button"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </span> | |
| <div class="select-menu-modal-holder"> | |
| <div class="select-menu-modal subscription-menu-modal js-menu-content"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Notification status</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-list js-navigation-container" role="menu"> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_included" name="do" type="radio" value="included" /> | |
| <h4>Not watching</h4> | |
| <span class="description">You only receive notifications for conversations in which you participate or are @mentioned.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-watch"></span> | |
| Watch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input checked="checked" id="do_subscribed" name="do" type="radio" value="subscribed" /> | |
| <h4>Watching</h4> | |
| <span class="description">You receive notifications for all conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_ignore" name="do" type="radio" value="ignore" /> | |
| <h4>Ignoring</h4> | |
| <span class="description">You do not receive any notifications for conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-mute"></span> | |
| Stop ignoring | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| </form> | |
| </li> | |
| <li> | |
| <div class="js-toggler-container js-social-container starring-container "> | |
| <a href="/vim-jp/vital.vim/unstar" | |
| class="minibutton with-count js-toggler-target star-button starred upwards" | |
| title="Unstar this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star-delete"></span><span class="text">Unstar</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/star" | |
| class="minibutton with-count js-toggler-target star-button unstarred upwards" | |
| title="Star this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star"></span><span class="text">Star</span> | |
| </a> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/stargazers"> | |
| 79 | |
| </a> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/fork" class="minibutton with-count js-toggler-target fork-button lighter upwards" title="Fork this repo" rel="facebox nofollow"> | |
| <span class="octicon octicon-git-branch-create"></span><span class="text">Fork</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/network" class="social-count">26</a> | |
| </li> | |
| </ul> | |
| <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> | |
| <span class="repo-label"><span>public</span></span> | |
| <span class="mega-octicon octicon-repo"></span> | |
| <span class="author"> | |
| <a href="/vim-jp" class="url fn" itemprop="url" rel="author"><span itemprop="title">vim-jp</span></a> | |
| </span> | |
| <span class="repohead-name-divider">/</span> | |
| <strong><a href="/vim-jp/vital.vim" class="js-current-repository js-repo-home-link">vital.vim</a></strong> | |
| <span class="page-context-loader"> | |
| <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </span> | |
| </h1> | |
| </div><!-- /.container --> | |
| </div><!-- /.repohead --> | |
| <div class="container"> | |
| <div class="repository-with-sidebar repo-container "> | |
| <div class="repository-sidebar"> | |
| <div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders"> | |
| <div class="sunken-menu-contents"> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Code"> | |
| <a href="/vim-jp/vital.vim" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /vim-jp/vital.vim"> | |
| <span class="octicon octicon-code"></span> <span class="full-word">Code</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Issues"> | |
| <a href="/vim-jp/vital.vim/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /vim-jp/vital.vim/issues"> | |
| <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> | |
| <span class='counter'>28</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Pull Requests"> | |
| <a href="/vim-jp/vital.vim/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /vim-jp/vital.vim/pulls"> | |
| <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> | |
| <span class='counter'>4</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Wiki"> | |
| <a href="/vim-jp/vital.vim/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_wiki /vim-jp/vital.vim/wiki"> | |
| <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| <div class="sunken-menu-separator"></div> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Pulse"> | |
| <a href="/vim-jp/vital.vim/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /vim-jp/vital.vim/pulse"> | |
| <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Graphs"> | |
| <a href="/vim-jp/vital.vim/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /vim-jp/vital.vim/graphs"> | |
| <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Network"> | |
| <a href="/vim-jp/vital.vim/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /vim-jp/vital.vim/network"> | |
| <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="only-with-full-nav"> | |
| <div class="clone-url " | |
| data-protocol-type="http" | |
| data-url="/users/set_protocol?protocol_selector=http&protocol_type=push"> | |
| <h3><strong>HTTPS</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url open" | |
| data-protocol-type="ssh" | |
| data-url="/users/set_protocol?protocol_selector=ssh&protocol_type=push"> | |
| <h3><strong>SSH</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="git@github.com:vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="git@github.com:vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url " | |
| data-protocol-type="subversion" | |
| data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=push"> | |
| <h3><strong>Subversion</strong> checkout URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <p class="clone-options">You can clone with | |
| <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>, | |
| <a href="#" class="js-clone-selector" data-protocol="ssh">SSH</a>, | |
| or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. | |
| <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you."> | |
| <a href="https://help.github.com/articles/which-remote-url-should-i-use"> | |
| <span class="octicon octicon-question"></span> | |
| </a> | |
| </span> | |
| </p> | |
| <a href="http://windows.github.com" class="minibutton sidebar-button"> | |
| <span class="octicon octicon-device-desktop"></span> | |
| Clone in Desktop | |
| </a> | |
| <a href="/vim-jp/vital.vim/archive/master.zip" | |
| class="minibutton sidebar-button" | |
| title="Download this repository as a zip file" | |
| rel="nofollow"> | |
| <span class="octicon octicon-cloud-download"></span> | |
| Download ZIP | |
| </a> | |
| </div> | |
| </div><!-- /.repository-sidebar --> | |
| <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> | |
| <!-- blob contrib key: blob_contributors:v21:8865196e6c233067ca43f509eaa36ae4 --> | |
| <p title="This is a placeholder element" class="js-history-link-replace hidden"></p> | |
| <a href="/vim-jp/vital.vim/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a> | |
| <div class="file-navigation"> | |
| <div class="select-menu js-menu-container js-select-menu" > | |
| <span class="minibutton select-menu-button js-menu-target" data-hotkey="w" | |
| data-master-branch="master" | |
| data-ref="master" | |
| role="button" aria-label="Switch branches or tags" tabindex="0"> | |
| <span class="octicon octicon-git-branch"></span> | |
| <i>branch:</i> | |
| <span class="js-select-button">master</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Switch branches/tags</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-filters"> | |
| <div class="select-menu-text-filter"> | |
| <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Find or create a branch…"> | |
| </div> | |
| <div class="select-menu-tabs"> | |
| <ul> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> | |
| </li> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> | |
| </li> | |
| </ul> | |
| </div><!-- /.select-menu-tabs --> | |
| </div><!-- /.select-menu-filters --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/Data.Closure/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="Data.Closure" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="Data.Closure">Data.Closure</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/git_submodule/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="git_submodule" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="git_submodule">git_submodule</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/logger/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="logger" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="logger">logger</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="master" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="master">master</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/optional-prelude/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="optional-prelude" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="optional-prelude">optional-prelude</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sqlite-processmanager-wip/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sqlite-processmanager-wip" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sqlite-processmanager-wip">sqlite-processmanager-wip</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sys.file/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sys.file" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sys.file">sys.file</a> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| <form accept-charset="UTF-8" action="/vim-jp/vital.vim/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> | |
| <span class="octicon octicon-git-branch-create select-menu-item-icon"></span> | |
| <div class="select-menu-item-text"> | |
| <h4>Create branch: <span class="js-new-item-name"></span></h4> | |
| <span class="description">from ‘master’</span> | |
| </div> | |
| <input type="hidden" name="name" id="name" class="js-new-item-value"> | |
| <input type="hidden" name="branch" id="branch" value="master" /> | |
| <input type="hidden" name="path" id="path" value="autoload/vital/__latest__/ProcessManager.vim" /> | |
| </form> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| </div> | |
| <div class="select-menu-no-results">Nothing to show</div> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| <div class="breadcrumb"> | |
| <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital.vim</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">autoload</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital/__latest__" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">__latest__</span></a></span><span class="separator"> / </span><strong class="final-path">ProcessManager.vim</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="autoload/vital/__latest__/ProcessManager.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="commit file-history-tease"> | |
| <img class="main-avatar" height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <span class="author"><a href="/ujihisa" rel="author">ujihisa</a></span> | |
| <time class="js-relative-date" datetime="2013-12-21T20:30:11-08:00" title="2013-12-21 20:30:11">December 21, 2013</time> | |
| <div class="commit-title"> | |
| <a href="/vim-jp/vital.vim/commit/240d2c93ff042c7afd291cdb301c0c1004136a73" class="message" data-pjax="true" title="ProcessManager: cosmetic change">ProcessManager: cosmetic change</a> | |
| </div> | |
| <div class="participation"> | |
| <p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>4</strong> contributors</a></p> | |
| <a class="avatar tooltipped downwards" title="ujihisa" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ujihisa"><img height="20" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="mattn" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=mattn"><img height="20" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="ichizok" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ichizok"><img height="20" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="alpaca-tc" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=alpaca-tc"><img height="20" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="20" /></a> | |
| </div> | |
| <div id="blob_contributors_box" style="display:none"> | |
| <h2 class="facebox-header">Users who have contributed to this file</h2> | |
| <ul class="facebox-user-list"> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <a href="/ujihisa">ujihisa</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="24" /> | |
| <a href="/mattn">mattn</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="24" /> | |
| <a href="/ichizok">ichizok</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="24" /> | |
| <a href="/alpaca-tc">alpaca-tc</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div id="files" class="bubble"> | |
| <div class="file"> | |
| <div class="meta"> | |
| <div class="info"> | |
| <span class="icon"><b class="octicon octicon-file-text"></b></span> | |
| <span class="mode" title="File Mode">file</span> | |
| <span>125 lines (103 sloc)</span> | |
| <span>2.881 kb</span> | |
| </div> | |
| <div class="actions"> | |
| <div class="button-group"> | |
| <a class="minibutton tooltipped leftwards" | |
| href="http://windows.github.com" title="Open this file in GitHub for Windows"> | |
| <span class="octicon octicon-device-desktop"></span> Open | |
| </a> | |
| <a class="minibutton" | |
| href="/vim-jp/vital.vim/edit/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-method="post" rel="nofollow" data-hotkey="e">Edit</a> | |
| <a href="/vim-jp/vital.vim/raw/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " id="raw-url">Raw</a> | |
| <a href="/vim-jp/vital.vim/blame/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton ">Blame</a> | |
| <a href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " rel="nofollow">History</a> | |
| </div><!-- /.button-group --> | |
| <a class="minibutton danger empty-icon tooltipped downwards" | |
| href="/vim-jp/vital.vim/delete/master/autoload/vital/__latest__/ProcessManager.vim" | |
| title="" | |
| data-method="post" data-test-id="delete-blob-file" rel="nofollow"> | |
| Delete | |
| </a> | |
| </div><!-- /.actions --> | |
| </div> | |
| <div class="blob-wrapper data type-viml js-blob-data"> | |
| <table class="file-code file-diff"> | |
| <tr class="file-code-line"> | |
| <td class="blob-line-nums"> | |
| <span id="L1" rel="#L1">1</span> | |
| <span id="L2" rel="#L2">2</span> | |
| <span id="L3" rel="#L3">3</span> | |
| <span id="L4" rel="#L4">4</span> | |
| <span id="L5" rel="#L5">5</span> | |
| <span id="L6" rel="#L6">6</span> | |
| <span id="L7" rel="#L7">7</span> | |
| <span id="L8" rel="#L8">8</span> | |
| <span id="L9" rel="#L9">9</span> | |
| <span id="L10" rel="#L10">10</span> | |
| <span id="L11" rel="#L11">11</span> | |
| <span id="L12" rel="#L12">12</span> | |
| <span id="L13" rel="#L13">13</span> | |
| <span id="L14" rel="#L14">14</span> | |
| <span id="L15" rel="#L15">15</span> | |
| <span id="L16" rel="#L16">16</span> | |
| <span id="L17" rel="#L17">17</span> | |
| <span id="L18" rel="#L18">18</span> | |
| <span id="L19" rel="#L19">19</span> | |
| <span id="L20" rel="#L20">20</span> | |
| <span id="L21" rel="#L21">21</span> | |
| <span id="L22" rel="#L22">22</span> | |
| <span id="L23" rel="#L23">23</span> | |
| <span id="L24" rel="#L24">24</span> | |
| <span id="L25" rel="#L25">25</span> | |
| <span id="L26" rel="#L26">26</span> | |
| <span id="L27" rel="#L27">27</span> | |
| <span id="L28" rel="#L28">28</span> | |
| <span id="L29" rel="#L29">29</span> | |
| <span id="L30" rel="#L30">30</span> | |
| <span id="L31" rel="#L31">31</span> | |
| <span id="L32" rel="#L32">32</span> | |
| <span id="L33" rel="#L33">33</span> | |
| <span id="L34" rel="#L34">34</span> | |
| <span id="L35" rel="#L35">35</span> | |
| <span id="L36" rel="#L36">36</span> | |
| <span id="L37" rel="#L37">37</span> | |
| <span id="L38" rel="#L38">38</span> | |
| <span id="L39" rel="#L39">39</span> | |
| <span id="L40" rel="#L40">40</span> | |
| <span id="L41" rel="#L41">41</span> | |
| <span id="L42" rel="#L42">42</span> | |
| <span id="L43" rel="#L43">43</span> | |
| <span id="L44" rel="#L44">44</span> | |
| <span id="L45" rel="#L45">45</span> | |
| <span id="L46" rel="#L46">46</span> | |
| <span id="L47" rel="#L47">47</span> | |
| <span id="L48" rel="#L48">48</span> | |
| <span id="L49" rel="#L49">49</span> | |
| <span id="L50" rel="#L50">50</span> | |
| <span id="L51" rel="#L51">51</span> | |
| <span id="L52" rel="#L52">52</span> | |
| <span id="L53" rel="#L53">53</span> | |
| <span id="L54" rel="#L54">54</span> | |
| <span id="L55" rel="#L55">55</span> | |
| <span id="L56" rel="#L56">56</span> | |
| <span id="L57" rel="#L57">57</span> | |
| <span id="L58" rel="#L58">58</span> | |
| <span id="L59" rel="#L59">59</span> | |
| <span id="L60" rel="#L60">60</span> | |
| <span id="L61" rel="#L61">61</span> | |
| <span id="L62" rel="#L62">62</span> | |
| <span id="L63" rel="#L63">63</span> | |
| <span id="L64" rel="#L64">64</span> | |
| <span id="L65" rel="#L65">65</span> | |
| <span id="L66" rel="#L66">66</span> | |
| <span id="L67" rel="#L67">67</span> | |
| <span id="L68" rel="#L68">68</span> | |
| <span id="L69" rel="#L69">69</span> | |
| <span id="L70" rel="#L70">70</span> | |
| <span id="L71" rel="#L71">71</span> | |
| <span id="L72" rel="#L72">72</span> | |
| <span id="L73" rel="#L73">73</span> | |
| <span id="L74" rel="#L74">74</span> | |
| <span id="L75" rel="#L75">75</span> | |
| <span id="L76" rel="#L76">76</span> | |
| <span id="L77" rel="#L77">77</span> | |
| <span id="L78" rel="#L78">78</span> | |
| <span id="L79" rel="#L79">79</span> | |
| <span id="L80" rel="#L80">80</span> | |
| <span id="L81" rel="#L81">81</span> | |
| <span id="L82" rel="#L82">82</span> | |
| <span id="L83" rel="#L83">83</span> | |
| <span id="L84" rel="#L84">84</span> | |
| <span id="L85" rel="#L85">85</span> | |
| <span id="L86" rel="#L86">86</span> | |
| <span id="L87" rel="#L87">87</span> | |
| <span id="L88" rel="#L88">88</span> | |
| <span id="L89" rel="#L89">89</span> | |
| <span id="L90" rel="#L90">90</span> | |
| <span id="L91" rel="#L91">91</span> | |
| <span id="L92" rel="#L92">92</span> | |
| <span id="L93" rel="#L93">93</span> | |
| <span id="L94" rel="#L94">94</span> | |
| <span id="L95" rel="#L95">95</span> | |
| <span id="L96" rel="#L96">96</span> | |
| <span id="L97" rel="#L97">97</span> | |
| <span id="L98" rel="#L98">98</span> | |
| <span id="L99" rel="#L99">99</span> | |
| <span id="L100" rel="#L100">100</span> | |
| <span id="L101" rel="#L101">101</span> | |
| <span id="L102" rel="#L102">102</span> | |
| <span id="L103" rel="#L103">103</span> | |
| <span id="L104" rel="#L104">104</span> | |
| <span id="L105" rel="#L105">105</span> | |
| <span id="L106" rel="#L106">106</span> | |
| <span id="L107" rel="#L107">107</span> | |
| <span id="L108" rel="#L108">108</span> | |
| <span id="L109" rel="#L109">109</span> | |
| <span id="L110" rel="#L110">110</span> | |
| <span id="L111" rel="#L111">111</span> | |
| <span id="L112" rel="#L112">112</span> | |
| <span id="L113" rel="#L113">113</span> | |
| <span id="L114" rel="#L114">114</span> | |
| <span id="L115" rel="#L115">115</span> | |
| <span id="L116" rel="#L116">116</span> | |
| <span id="L117" rel="#L117">117</span> | |
| <span id="L118" rel="#L118">118</span> | |
| <span id="L119" rel="#L119">119</span> | |
| <span id="L120" rel="#L120">120</span> | |
| <span id="L121" rel="#L121">121</span> | |
| <span id="L122" rel="#L122">122</span> | |
| <span id="L123" rel="#L123">123</span> | |
| <span id="L124" rel="#L124">124</span> | |
| </td> | |
| <td class="blob-line-code"> | |
| <div class="code-body highlight"><pre><div class='line' id='LC1'><span class="k">let</span> <span class="k">s</span>:save_cpo <span class="p">=</span> &<span class="nb">cpo</span></div><div class='line' id='LC2'><span class="k">set</span> <span class="nb">cpo</span>&<span class="k">vim</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">let</span> <span class="k">s</span>:_processes <span class="p">=</span> {}</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_loaded<span class="p">(</span>V<span class="p">)</span></div><div class='line' id='LC7'> <span class="k">let</span> <span class="k">s</span>:V <span class="p">=</span> <span class="k">a</span>:V</div><div class='line' id='LC8'> <span class="k">let</span> <span class="k">s</span>:S <span class="p">=</span> <span class="k">s</span>:V.import<span class="p">(</span><span class="s1">'Data.String'</span><span class="p">)</span></div><div class='line' id='LC9'><span class="k">endfunction</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_depends<span class="p">()</span></div><div class='line' id='LC12'> <span class="k">return</span> [<span class="s1">'Data.String'</span>]</div><div class='line' id='LC13'><span class="k">endfunction</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:is_available<span class="p">()</span></div><div class='line' id='LC16'> <span class="k">return</span> <span class="k">s</span>:V.has_vimproc<span class="p">()</span></div><div class='line' id='LC17'><span class="k">endfunction</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:touch<span class="p">(</span>name<span class="p">,</span> cmd<span class="p">)</span></div><div class='line' id='LC20'> <span class="k">if</span> has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:name<span class="p">)</span></div><div class='line' id='LC21'> <span class="k">return</span> <span class="s1">'existing'</span></div><div class='line' id='LC22'> <span class="k">else</span></div><div class='line' id='LC23'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> vimproc#popen3<span class="p">(</span><span class="k">a</span>:cmd<span class="p">)</span></div><div class='line' id='LC24'> <span class="k">let</span> <span class="k">s</span>:_processes[<span class="k">a</span>:name] <span class="p">=</span> <span class="k">p</span></div><div class='line' id='LC25'> <span class="k">return</span> <span class="s1">'new'</span></div><div class='line' id='LC26'> <span class="k">endif</span></div><div class='line' id='LC27'><span class="k">endfunction</span></div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:stop<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC30'> <span class="k">echomsg</span> <span class="s2">"Vital.ProcessManager.stop() is deprecated! Please use kill() or term() instead."</span></div><div class='line' id='LC31'> <span class="k">return</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC32'><span class="k">endfunction</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">i</span><span class="p">,</span> ...<span class="p">)</span></div><div class='line' id='LC35'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC36'> <span class="k">call</span> <span class="k">p</span>.kill<span class="p">(</span><span class="k">get</span><span class="p">(</span><span class="k">a</span>:<span class="m">000</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span> ? <span class="k">g</span>:vimproc#SIGKILL : <span class="k">g</span>:vimproc#SIGTERM<span class="p">)</span></div><div class='line' id='LC37'><span class="c"> " call p.waitpid()</span></div><div class='line' id='LC38'> unlet <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC39'><span class="k">endfunction</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">term</span><span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC42'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC43'><span class="k">endfunction</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC46'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC47'><span class="k">endfunction</span></div><div class='line' id='LC48'><br/></div><div class='line' id='LC49'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read<span class="p">(</span><span class="k">i</span><span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC50'> <span class="k">return</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span>.<span class="m">05</span><span class="p">,</span> <span class="k">a</span>:endpatterns<span class="p">)</span></div><div class='line' id='LC51'><span class="k">endfunction</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">i</span><span class="p">,</span> wait<span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC54'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC55'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC56'> <span class="k">endif</span></div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC61'> <span class="k">return</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">(),</span> <span class="s1">'inactive'</span>]</div><div class='line' id='LC62'> <span class="k">endif</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'> <span class="k">let</span> out_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC65'> <span class="k">let</span> err_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC66'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC67'> <span class="k">while</span> <span class="m">1</span></div><div class='line' id='LC68'> <span class="k">let</span> [<span class="k">x</span><span class="p">,</span> <span class="k">y</span>] <span class="p">=</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">()</span>]</div><div class='line' id='LC69'> <span class="k">if</span> <span class="k">x</span> <span class="p">==</span># <span class="s1">''</span> && <span class="k">y</span> <span class="p">==</span># <span class="s1">''</span></div><div class='line' id='LC70'> <span class="k">if</span> str2float<span class="p">(</span>reltimestr<span class="p">(</span>reltime<span class="p">(</span>lastchanged<span class="p">)))</span> <span class="p">></span> <span class="k">a</span>:wait</div><div class='line' id='LC71'> <span class="k">return</span> [out_memo<span class="p">,</span> err_memo<span class="p">,</span> <span class="s1">'timedout'</span>]</div><div class='line' id='LC72'> <span class="k">endif</span></div><div class='line' id='LC73'> <span class="k">else</span></div><div class='line' id='LC74'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC75'> <span class="k">let</span> out_memo .<span class="p">=</span> <span class="k">x</span></div><div class='line' id='LC76'> <span class="k">let</span> err_memo .<span class="p">=</span> <span class="k">y</span></div><div class='line' id='LC77'> <span class="k">for</span> pattern <span class="k">in</span> <span class="k">a</span>:endpatterns</div><div class='line' id='LC78'> <span class="k">if</span> out_memo <span class="p">=~</span> <span class="p">(</span><span class="s2">"\\(^\\|\n\\)"</span> . pattern<span class="p">)</span></div><div class='line' id='LC79'> <span class="k">return</span> [<span class="k">s</span>:S.substitute_last<span class="p">(</span>out_memo<span class="p">,</span> pattern<span class="p">,</span> <span class="s1">''</span><span class="p">),</span> err_memo<span class="p">,</span> <span class="s1">'matched'</span>]</div><div class='line' id='LC80'> <span class="k">endif</span></div><div class='line' id='LC81'> <span class="k">endfor</span></div><div class='line' id='LC82'> <span class="k">endif</span></div><div class='line' id='LC83'> <span class="k">endwhile</span></div><div class='line' id='LC84'><span class="k">endfunction</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC87'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC88'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC89'> <span class="k">endif</span></div><div class='line' id='LC90'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC91'> <span class="k">return</span> <span class="s1">'inactive'</span></div><div class='line' id='LC92'> <span class="k">endif</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC95'> <span class="k">call</span> <span class="k">p</span>.stdin.<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:str<span class="p">)</span></div><div class='line' id='LC96'><br/></div><div class='line' id='LC97'> <span class="k">return</span> <span class="s1">'active'</span></div><div class='line' id='LC98'><span class="k">endfunction</span></div><div class='line' id='LC99'><br/></div><div class='line' id='LC100'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:writeln<span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC101'> <span class="k">return</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="k">a</span>:str . <span class="s2">"\n"</span><span class="p">)</span></div><div class='line' id='LC102'><span class="k">endfunction</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC105'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC106'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC107'> <span class="k">endif</span></div><div class='line' id='LC108'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC109'><span class="c"> " vimproc.kill isn't to stop but to ask for the current state.</span></div><div class='line' id='LC110'><span class="c"> " return p.kill(0) ? 'inactive' : 'active'</span></div><div class='line' id='LC111'><span class="c"> " ... checkpid() checks if the process is running AND does waitpid() in C,</span></div><div class='line' id='LC112'><span class="c"> " so it solves zombie processes.</span></div><div class='line' id='LC113'> <span class="k">return</span> <span class="k">get</span><span class="p">(</span><span class="k">p</span>.checkpid<span class="p">(),</span> <span class="m">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'run'</span></div><div class='line' id='LC114'> \ ? <span class="s1">'active'</span></div><div class='line' id='LC115'> \ : <span class="s1">'inactive'</span></div><div class='line' id='LC116'><span class="k">endfunction</span></div><div class='line' id='LC117'><br/></div><div class='line' id='LC118'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:debug_processes<span class="p">()</span></div><div class='line' id='LC119'> <span class="k">return</span> <span class="k">s</span>:_processes</div><div class='line' id='LC120'><span class="k">endfunction</span></div><div class='line' id='LC121'><br/></div><div class='line' id='LC122'><span class="k">let</span> &<span class="nb">cpo</span> <span class="p">=</span> <span class="k">s</span>:save_cpo</div><div class='line' id='LC123'>unlet <span class="k">s</span>:save_cpo</div><div class='line' id='LC124'><span class="c">" vim:set et ts=2 sts=2 sw=2 tw=0:</span></div></pre></div> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a> | |
| <div id="jump-to-line" style="display:none"> | |
| <form accept-charset="UTF-8" class="js-jump-to-line-form"> | |
| <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus> | |
| <button type="submit" class="button">Go</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div><!-- /.repo-container --> | |
| <div class="modal-backdrop"></div> | |
| </div><!-- /.container --> | |
| </div><!-- /.site --> | |
| </div><!-- /.wrapper --> | |
| <div class="container"> | |
| <div class="site-footer"> | |
| <ul class="site-footer-links right"> | |
| <li><a href="https://status.github.com/">Status</a></li> | |
| <li><a href="http://developer.github.com">API</a></li> | |
| <li><a href="http://training.github.com">Training</a></li> | |
| <li><a href="http://shop.github.com">Shop</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="/about">About</a></li> | |
| </ul> | |
| <a href="/"> | |
| <span class="mega-octicon octicon-mark-github" title="GitHub"></span> | |
| </a> | |
| <ul class="site-footer-links"> | |
| <li>© 2014 <span title="0.03660s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> | |
| <li><a href="/site/terms">Terms</a></li> | |
| <li><a href="/site/privacy">Privacy</a></li> | |
| <li><a href="/security">Security</a></li> | |
| <li><a href="/contact">Contact</a></li> | |
| </ul> | |
| </div><!-- /.site-footer --> | |
| </div><!-- /.container --> | |
| <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> | |
| <div class="fullscreen-container js-fullscreen-container"> | |
| <div class="textarea-wrap"> | |
| <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea> | |
| <div class="suggester-container"> | |
| <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester" | |
| data-url="/vim-jp/vital.vim/suggestions/commit"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="fullscreen-sidebar"> | |
| <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode"> | |
| <span class="mega-octicon octicon-screen-normal"></span> | |
| </a> | |
| <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards" | |
| title="Switch themes"> | |
| <span class="octicon octicon-color-mode"></span> | |
| </a> | |
| </div> | |
| </div> | |
| <div id="ajax-error-message" class="flash flash-error"> | |
| <span class="octicon octicon-alert"></span> | |
| <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a> | |
| Something went wrong with that request. Please try again. | |
| </div> | |
| </body> | |
| </html> | |
| <!DOCTYPE html> | |
| <html> | |
| <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#"> | |
| <meta charset='utf-8'> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>vital.vim/autoload/vital/__latest__/ProcessManager.vim at master · vim-jp/vital.vim</title> | |
| <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> | |
| <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> | |
| <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" /> | |
| <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" /> | |
| <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" /> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png"> | |
| <meta name="hostname" content="github-fe122-cp1-prd.iad.github.net"> | |
| <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]"> | |
| <link rel="assets" href="https://github.global.ssl.fastly.net/"> | |
| <link rel="conduit-xhr" href="https://ghconduit.com:25035/"> | |
| <link rel="xhr-socket" href="/_sockets" /> | |
| <meta name="msapplication-TileImage" content="/windows-tile.png" /> | |
| <meta name="msapplication-TileColor" content="#ffffff" /> | |
| <meta name="selected-link" value="repo_source" data-pjax-transient /> | |
| <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="B6F95C6A:6644:E50EC4:52E18AFE" name="octolytics-dimension-request_id" /><meta content="214488" name="octolytics-actor-id" /><meta content="osyo-manga" name="octolytics-actor-login" /><meta content="e5012931f92cc8195a7f530c4e37bcc88d86a6df4ea3fd06d12d9d5795f6d0e8" name="octolytics-actor-hash" /> | |
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |
| <meta content="authenticity_token" name="csrf-param" /> | |
| <meta content="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" name="csrf-token" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github-43087292f81aebbe92f90a36344865c4ad8170a0.css" media="all" rel="stylesheet" type="text/css" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github2-d23a1b1c4a1bc509a0ca67face2fb37ef257f599.css" media="all" rel="stylesheet" type="text/css" /> | |
| <script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script> | |
| <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-eab207422bd65ea8c46ef3d26d6fbcc74bba89ce.js" type="text/javascript"></script> | |
| <meta http-equiv="x-pjax-version" content="1ceda3c4fa0194817b46f4df6a3f2c23"> | |
| <link data-pjax-transient rel='permalink' href='/vim-jp/vital.vim/blob/3e229e28b002d42b9ca0d15bddddf0872fa2eed0/autoload/vital/__latest__/ProcessManager.vim'> | |
| <meta property="og:title" content="vital.vim"/> | |
| <meta property="og:type" content="githubog:gitrepository"/> | |
| <meta property="og:url" content="https://github.com/vim-jp/vital.vim"/> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/> | |
| <meta property="og:site_name" content="GitHub"/> | |
| <meta property="og:description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins"/> | |
| <meta name="description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins" /> | |
| <meta content="1051958" name="octolytics-dimension-user_id" /><meta content="vim-jp" name="octolytics-dimension-user_login" /><meta content="1308435" name="octolytics-dimension-repository_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1308435" name="octolytics-dimension-repository_network_root_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_network_root_nwo" /> | |
| <link href="https://github.com/vim-jp/vital.vim/commits/master.atom" rel="alternate" title="Recent Commits to vital.vim:master" type="application/atom+xml" /> | |
| </head> | |
| <body class="logged_in env-production windows vis-public page-blob"> | |
| <div class="wrapper"> | |
| <div class="header header-logged-in true"> | |
| <div class="container clearfix"> | |
| <a class="header-logo-invertocat" href="https://github.com/"> | |
| <span class="mega-octicon octicon-mark-github"></span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/notifications" class="notification-indicator tooltipped downwards contextually-unread" data-gotokey="n" title="You have unread notifications in this repository"> | |
| <span class="mail-status unread"></span> | |
| </a> | |
| <div class="command-bar js-command-bar in-repository"> | |
| <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get"> | |
| <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off" | |
| data-username="osyo-manga" | |
| data-repo="vim-jp/vital.vim" | |
| data-branch="master" | |
| data-sha="e9e83ed3a8ffeefb55aeb10af4b80747448aeda6" | |
| > | |
| <input type="hidden" name="nwo" value="vim-jp/vital.vim" /> | |
| <div class="select-menu js-menu-container js-select-menu search-context-select-menu"> | |
| <span class="minibutton select-menu-button js-menu-target"> | |
| <span class="js-select-button">This repository</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container"> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" /> | |
| <div class="select-menu-item-text js-select-button-text">This repository</div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" name="search_target" value="global" /> | |
| <div class="select-menu-item-text js-select-button-text">All repositories</div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| </div> | |
| </div> | |
| <span class="octicon help tooltipped downwards" title="Show command bar help"> | |
| <span class="octicon octicon-question"></span> | |
| </span> | |
| <input type="hidden" name="ref" value="cmdform"> | |
| </form> | |
| <ul class="top-nav"> | |
| <li class="explore"><a href="/explore">Explore</a></li> | |
| <li><a href="https://gist.github.com">Gist</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="https://help.github.com">Help</a></li> | |
| </ul> | |
| </div> | |
| <ul id="user-links"> | |
| <li> | |
| <a href="/osyo-manga" class="name"> | |
| <img height="20" src="https://1.gravatar.com/avatar/3931098ae486b6df619050c63e24f6cc?d=https%3A%2F%2Fidenticons.github.com%2Fc192b911f32678010c36ee637415e182.png&r=x&s=140" width="20" /> osyo-manga | |
| </a> | |
| </li> | |
| <li class="new-menu dropdown-toggle js-menu-container"> | |
| <a href="#" class="js-menu-target tooltipped downwards" title="Create new…"> | |
| <span class="octicon octicon-plus"></span> | |
| <span class="dropdown-arrow"></span> | |
| </a> | |
| <div class="js-menu-content"> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/settings/profile" id="account_settings" | |
| class="tooltipped downwards" | |
| aria-label="Account settings " | |
| title="Account settings "> | |
| <span class="octicon octicon-tools"></span> | |
| </a> | |
| </li> | |
| <li> | |
| <a class="tooltipped downwards" href="/logout" data-method="post" id="logout" title="Sign out" aria-label="Sign out"> | |
| <span class="octicon octicon-log-out"></span> | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="js-new-dropdown-contents hidden"> | |
| <ul class="dropdown-menu"> | |
| <li> | |
| <a href="/new"><span class="octicon octicon-repo-create"></span> New repository</a> | |
| </li> | |
| <li> | |
| <a href="/organizations/new"><span class="octicon octicon-organization"></span> New organization</a> | |
| </li> | |
| <li class="section-title"> | |
| <span title="vim-jp/vital.vim">This repository</span> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/issues/new"><span class="octicon octicon-issue-opened"></span> New issue</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="site" itemscope itemtype="http://schema.org/WebPage"> | |
| <div class="pagehead repohead instapaper_ignore readability-menu"> | |
| <div class="container"> | |
| <ul class="pagehead-actions"> | |
| <li class="subscription"> | |
| <form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> <input id="repository_id" name="repository_id" type="hidden" value="1308435" /> | |
| <div class="select-menu js-menu-container js-select-menu"> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/watchers"> | |
| 22 | |
| </a> | |
| <span class="minibutton select-menu-button with-count js-menu-target" role="button" tabindex="0"> | |
| <span class="js-select-button"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </span> | |
| <div class="select-menu-modal-holder"> | |
| <div class="select-menu-modal subscription-menu-modal js-menu-content"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Notification status</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-list js-navigation-container" role="menu"> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_included" name="do" type="radio" value="included" /> | |
| <h4>Not watching</h4> | |
| <span class="description">You only receive notifications for conversations in which you participate or are @mentioned.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-watch"></span> | |
| Watch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input checked="checked" id="do_subscribed" name="do" type="radio" value="subscribed" /> | |
| <h4>Watching</h4> | |
| <span class="description">You receive notifications for all conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_ignore" name="do" type="radio" value="ignore" /> | |
| <h4>Ignoring</h4> | |
| <span class="description">You do not receive any notifications for conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-mute"></span> | |
| Stop ignoring | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| </form> | |
| </li> | |
| <li> | |
| <div class="js-toggler-container js-social-container starring-container "> | |
| <a href="/vim-jp/vital.vim/unstar" | |
| class="minibutton with-count js-toggler-target star-button starred upwards" | |
| title="Unstar this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star-delete"></span><span class="text">Unstar</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/star" | |
| class="minibutton with-count js-toggler-target star-button unstarred upwards" | |
| title="Star this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star"></span><span class="text">Star</span> | |
| </a> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/stargazers"> | |
| 79 | |
| </a> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/fork" class="minibutton with-count js-toggler-target fork-button lighter upwards" title="Fork this repo" rel="facebox nofollow"> | |
| <span class="octicon octicon-git-branch-create"></span><span class="text">Fork</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/network" class="social-count">26</a> | |
| </li> | |
| </ul> | |
| <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> | |
| <span class="repo-label"><span>public</span></span> | |
| <span class="mega-octicon octicon-repo"></span> | |
| <span class="author"> | |
| <a href="/vim-jp" class="url fn" itemprop="url" rel="author"><span itemprop="title">vim-jp</span></a> | |
| </span> | |
| <span class="repohead-name-divider">/</span> | |
| <strong><a href="/vim-jp/vital.vim" class="js-current-repository js-repo-home-link">vital.vim</a></strong> | |
| <span class="page-context-loader"> | |
| <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </span> | |
| </h1> | |
| </div><!-- /.container --> | |
| </div><!-- /.repohead --> | |
| <div class="container"> | |
| <div class="repository-with-sidebar repo-container "> | |
| <div class="repository-sidebar"> | |
| <div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders"> | |
| <div class="sunken-menu-contents"> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Code"> | |
| <a href="/vim-jp/vital.vim" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /vim-jp/vital.vim"> | |
| <span class="octicon octicon-code"></span> <span class="full-word">Code</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Issues"> | |
| <a href="/vim-jp/vital.vim/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /vim-jp/vital.vim/issues"> | |
| <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> | |
| <span class='counter'>28</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Pull Requests"> | |
| <a href="/vim-jp/vital.vim/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /vim-jp/vital.vim/pulls"> | |
| <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> | |
| <span class='counter'>4</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Wiki"> | |
| <a href="/vim-jp/vital.vim/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_wiki /vim-jp/vital.vim/wiki"> | |
| <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| <div class="sunken-menu-separator"></div> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Pulse"> | |
| <a href="/vim-jp/vital.vim/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /vim-jp/vital.vim/pulse"> | |
| <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Graphs"> | |
| <a href="/vim-jp/vital.vim/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /vim-jp/vital.vim/graphs"> | |
| <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Network"> | |
| <a href="/vim-jp/vital.vim/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /vim-jp/vital.vim/network"> | |
| <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="only-with-full-nav"> | |
| <div class="clone-url " | |
| data-protocol-type="http" | |
| data-url="/users/set_protocol?protocol_selector=http&protocol_type=push"> | |
| <h3><strong>HTTPS</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url open" | |
| data-protocol-type="ssh" | |
| data-url="/users/set_protocol?protocol_selector=ssh&protocol_type=push"> | |
| <h3><strong>SSH</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="git@github.com:vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="git@github.com:vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url " | |
| data-protocol-type="subversion" | |
| data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=push"> | |
| <h3><strong>Subversion</strong> checkout URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <p class="clone-options">You can clone with | |
| <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>, | |
| <a href="#" class="js-clone-selector" data-protocol="ssh">SSH</a>, | |
| or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. | |
| <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you."> | |
| <a href="https://help.github.com/articles/which-remote-url-should-i-use"> | |
| <span class="octicon octicon-question"></span> | |
| </a> | |
| </span> | |
| </p> | |
| <a href="http://windows.github.com" class="minibutton sidebar-button"> | |
| <span class="octicon octicon-device-desktop"></span> | |
| Clone in Desktop | |
| </a> | |
| <a href="/vim-jp/vital.vim/archive/master.zip" | |
| class="minibutton sidebar-button" | |
| title="Download this repository as a zip file" | |
| rel="nofollow"> | |
| <span class="octicon octicon-cloud-download"></span> | |
| Download ZIP | |
| </a> | |
| </div> | |
| </div><!-- /.repository-sidebar --> | |
| <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> | |
| <!-- blob contrib key: blob_contributors:v21:8865196e6c233067ca43f509eaa36ae4 --> | |
| <p title="This is a placeholder element" class="js-history-link-replace hidden"></p> | |
| <a href="/vim-jp/vital.vim/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a> | |
| <div class="file-navigation"> | |
| <div class="select-menu js-menu-container js-select-menu" > | |
| <span class="minibutton select-menu-button js-menu-target" data-hotkey="w" | |
| data-master-branch="master" | |
| data-ref="master" | |
| role="button" aria-label="Switch branches or tags" tabindex="0"> | |
| <span class="octicon octicon-git-branch"></span> | |
| <i>branch:</i> | |
| <span class="js-select-button">master</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Switch branches/tags</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-filters"> | |
| <div class="select-menu-text-filter"> | |
| <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Find or create a branch…"> | |
| </div> | |
| <div class="select-menu-tabs"> | |
| <ul> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> | |
| </li> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> | |
| </li> | |
| </ul> | |
| </div><!-- /.select-menu-tabs --> | |
| </div><!-- /.select-menu-filters --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/Data.Closure/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="Data.Closure" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="Data.Closure">Data.Closure</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/git_submodule/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="git_submodule" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="git_submodule">git_submodule</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/logger/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="logger" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="logger">logger</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="master" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="master">master</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/optional-prelude/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="optional-prelude" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="optional-prelude">optional-prelude</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sqlite-processmanager-wip/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sqlite-processmanager-wip" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sqlite-processmanager-wip">sqlite-processmanager-wip</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sys.file/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sys.file" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sys.file">sys.file</a> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| <form accept-charset="UTF-8" action="/vim-jp/vital.vim/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> | |
| <span class="octicon octicon-git-branch-create select-menu-item-icon"></span> | |
| <div class="select-menu-item-text"> | |
| <h4>Create branch: <span class="js-new-item-name"></span></h4> | |
| <span class="description">from ‘master’</span> | |
| </div> | |
| <input type="hidden" name="name" id="name" class="js-new-item-value"> | |
| <input type="hidden" name="branch" id="branch" value="master" /> | |
| <input type="hidden" name="path" id="path" value="autoload/vital/__latest__/ProcessManager.vim" /> | |
| </form> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| </div> | |
| <div class="select-menu-no-results">Nothing to show</div> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| <div class="breadcrumb"> | |
| <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital.vim</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">autoload</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital/__latest__" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">__latest__</span></a></span><span class="separator"> / </span><strong class="final-path">ProcessManager.vim</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="autoload/vital/__latest__/ProcessManager.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="commit file-history-tease"> | |
| <img class="main-avatar" height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <span class="author"><a href="/ujihisa" rel="author">ujihisa</a></span> | |
| <time class="js-relative-date" datetime="2013-12-21T20:30:11-08:00" title="2013-12-21 20:30:11">December 21, 2013</time> | |
| <div class="commit-title"> | |
| <a href="/vim-jp/vital.vim/commit/240d2c93ff042c7afd291cdb301c0c1004136a73" class="message" data-pjax="true" title="ProcessManager: cosmetic change">ProcessManager: cosmetic change</a> | |
| </div> | |
| <div class="participation"> | |
| <p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>4</strong> contributors</a></p> | |
| <a class="avatar tooltipped downwards" title="ujihisa" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ujihisa"><img height="20" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="mattn" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=mattn"><img height="20" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="ichizok" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ichizok"><img height="20" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="alpaca-tc" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=alpaca-tc"><img height="20" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="20" /></a> | |
| </div> | |
| <div id="blob_contributors_box" style="display:none"> | |
| <h2 class="facebox-header">Users who have contributed to this file</h2> | |
| <ul class="facebox-user-list"> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <a href="/ujihisa">ujihisa</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="24" /> | |
| <a href="/mattn">mattn</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="24" /> | |
| <a href="/ichizok">ichizok</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="24" /> | |
| <a href="/alpaca-tc">alpaca-tc</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div id="files" class="bubble"> | |
| <div class="file"> | |
| <div class="meta"> | |
| <div class="info"> | |
| <span class="icon"><b class="octicon octicon-file-text"></b></span> | |
| <span class="mode" title="File Mode">file</span> | |
| <span>125 lines (103 sloc)</span> | |
| <span>2.881 kb</span> | |
| </div> | |
| <div class="actions"> | |
| <div class="button-group"> | |
| <a class="minibutton tooltipped leftwards" | |
| href="http://windows.github.com" title="Open this file in GitHub for Windows"> | |
| <span class="octicon octicon-device-desktop"></span> Open | |
| </a> | |
| <a class="minibutton" | |
| href="/vim-jp/vital.vim/edit/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-method="post" rel="nofollow" data-hotkey="e">Edit</a> | |
| <a href="/vim-jp/vital.vim/raw/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " id="raw-url">Raw</a> | |
| <a href="/vim-jp/vital.vim/blame/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton ">Blame</a> | |
| <a href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " rel="nofollow">History</a> | |
| </div><!-- /.button-group --> | |
| <a class="minibutton danger empty-icon tooltipped downwards" | |
| href="/vim-jp/vital.vim/delete/master/autoload/vital/__latest__/ProcessManager.vim" | |
| title="" | |
| data-method="post" data-test-id="delete-blob-file" rel="nofollow"> | |
| Delete | |
| </a> | |
| </div><!-- /.actions --> | |
| </div> | |
| <div class="blob-wrapper data type-viml js-blob-data"> | |
| <table class="file-code file-diff"> | |
| <tr class="file-code-line"> | |
| <td class="blob-line-nums"> | |
| <span id="L1" rel="#L1">1</span> | |
| <span id="L2" rel="#L2">2</span> | |
| <span id="L3" rel="#L3">3</span> | |
| <span id="L4" rel="#L4">4</span> | |
| <span id="L5" rel="#L5">5</span> | |
| <span id="L6" rel="#L6">6</span> | |
| <span id="L7" rel="#L7">7</span> | |
| <span id="L8" rel="#L8">8</span> | |
| <span id="L9" rel="#L9">9</span> | |
| <span id="L10" rel="#L10">10</span> | |
| <span id="L11" rel="#L11">11</span> | |
| <span id="L12" rel="#L12">12</span> | |
| <span id="L13" rel="#L13">13</span> | |
| <span id="L14" rel="#L14">14</span> | |
| <span id="L15" rel="#L15">15</span> | |
| <span id="L16" rel="#L16">16</span> | |
| <span id="L17" rel="#L17">17</span> | |
| <span id="L18" rel="#L18">18</span> | |
| <span id="L19" rel="#L19">19</span> | |
| <span id="L20" rel="#L20">20</span> | |
| <span id="L21" rel="#L21">21</span> | |
| <span id="L22" rel="#L22">22</span> | |
| <span id="L23" rel="#L23">23</span> | |
| <span id="L24" rel="#L24">24</span> | |
| <span id="L25" rel="#L25">25</span> | |
| <span id="L26" rel="#L26">26</span> | |
| <span id="L27" rel="#L27">27</span> | |
| <span id="L28" rel="#L28">28</span> | |
| <span id="L29" rel="#L29">29</span> | |
| <span id="L30" rel="#L30">30</span> | |
| <span id="L31" rel="#L31">31</span> | |
| <span id="L32" rel="#L32">32</span> | |
| <span id="L33" rel="#L33">33</span> | |
| <span id="L34" rel="#L34">34</span> | |
| <span id="L35" rel="#L35">35</span> | |
| <span id="L36" rel="#L36">36</span> | |
| <span id="L37" rel="#L37">37</span> | |
| <span id="L38" rel="#L38">38</span> | |
| <span id="L39" rel="#L39">39</span> | |
| <span id="L40" rel="#L40">40</span> | |
| <span id="L41" rel="#L41">41</span> | |
| <span id="L42" rel="#L42">42</span> | |
| <span id="L43" rel="#L43">43</span> | |
| <span id="L44" rel="#L44">44</span> | |
| <span id="L45" rel="#L45">45</span> | |
| <span id="L46" rel="#L46">46</span> | |
| <span id="L47" rel="#L47">47</span> | |
| <span id="L48" rel="#L48">48</span> | |
| <span id="L49" rel="#L49">49</span> | |
| <span id="L50" rel="#L50">50</span> | |
| <span id="L51" rel="#L51">51</span> | |
| <span id="L52" rel="#L52">52</span> | |
| <span id="L53" rel="#L53">53</span> | |
| <span id="L54" rel="#L54">54</span> | |
| <span id="L55" rel="#L55">55</span> | |
| <span id="L56" rel="#L56">56</span> | |
| <span id="L57" rel="#L57">57</span> | |
| <span id="L58" rel="#L58">58</span> | |
| <span id="L59" rel="#L59">59</span> | |
| <span id="L60" rel="#L60">60</span> | |
| <span id="L61" rel="#L61">61</span> | |
| <span id="L62" rel="#L62">62</span> | |
| <span id="L63" rel="#L63">63</span> | |
| <span id="L64" rel="#L64">64</span> | |
| <span id="L65" rel="#L65">65</span> | |
| <span id="L66" rel="#L66">66</span> | |
| <span id="L67" rel="#L67">67</span> | |
| <span id="L68" rel="#L68">68</span> | |
| <span id="L69" rel="#L69">69</span> | |
| <span id="L70" rel="#L70">70</span> | |
| <span id="L71" rel="#L71">71</span> | |
| <span id="L72" rel="#L72">72</span> | |
| <span id="L73" rel="#L73">73</span> | |
| <span id="L74" rel="#L74">74</span> | |
| <span id="L75" rel="#L75">75</span> | |
| <span id="L76" rel="#L76">76</span> | |
| <span id="L77" rel="#L77">77</span> | |
| <span id="L78" rel="#L78">78</span> | |
| <span id="L79" rel="#L79">79</span> | |
| <span id="L80" rel="#L80">80</span> | |
| <span id="L81" rel="#L81">81</span> | |
| <span id="L82" rel="#L82">82</span> | |
| <span id="L83" rel="#L83">83</span> | |
| <span id="L84" rel="#L84">84</span> | |
| <span id="L85" rel="#L85">85</span> | |
| <span id="L86" rel="#L86">86</span> | |
| <span id="L87" rel="#L87">87</span> | |
| <span id="L88" rel="#L88">88</span> | |
| <span id="L89" rel="#L89">89</span> | |
| <span id="L90" rel="#L90">90</span> | |
| <span id="L91" rel="#L91">91</span> | |
| <span id="L92" rel="#L92">92</span> | |
| <span id="L93" rel="#L93">93</span> | |
| <span id="L94" rel="#L94">94</span> | |
| <span id="L95" rel="#L95">95</span> | |
| <span id="L96" rel="#L96">96</span> | |
| <span id="L97" rel="#L97">97</span> | |
| <span id="L98" rel="#L98">98</span> | |
| <span id="L99" rel="#L99">99</span> | |
| <span id="L100" rel="#L100">100</span> | |
| <span id="L101" rel="#L101">101</span> | |
| <span id="L102" rel="#L102">102</span> | |
| <span id="L103" rel="#L103">103</span> | |
| <span id="L104" rel="#L104">104</span> | |
| <span id="L105" rel="#L105">105</span> | |
| <span id="L106" rel="#L106">106</span> | |
| <span id="L107" rel="#L107">107</span> | |
| <span id="L108" rel="#L108">108</span> | |
| <span id="L109" rel="#L109">109</span> | |
| <span id="L110" rel="#L110">110</span> | |
| <span id="L111" rel="#L111">111</span> | |
| <span id="L112" rel="#L112">112</span> | |
| <span id="L113" rel="#L113">113</span> | |
| <span id="L114" rel="#L114">114</span> | |
| <span id="L115" rel="#L115">115</span> | |
| <span id="L116" rel="#L116">116</span> | |
| <span id="L117" rel="#L117">117</span> | |
| <span id="L118" rel="#L118">118</span> | |
| <span id="L119" rel="#L119">119</span> | |
| <span id="L120" rel="#L120">120</span> | |
| <span id="L121" rel="#L121">121</span> | |
| <span id="L122" rel="#L122">122</span> | |
| <span id="L123" rel="#L123">123</span> | |
| <span id="L124" rel="#L124">124</span> | |
| </td> | |
| <td class="blob-line-code"> | |
| <div class="code-body highlight"><pre><div class='line' id='LC1'><span class="k">let</span> <span class="k">s</span>:save_cpo <span class="p">=</span> &<span class="nb">cpo</span></div><div class='line' id='LC2'><span class="k">set</span> <span class="nb">cpo</span>&<span class="k">vim</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">let</span> <span class="k">s</span>:_processes <span class="p">=</span> {}</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_loaded<span class="p">(</span>V<span class="p">)</span></div><div class='line' id='LC7'> <span class="k">let</span> <span class="k">s</span>:V <span class="p">=</span> <span class="k">a</span>:V</div><div class='line' id='LC8'> <span class="k">let</span> <span class="k">s</span>:S <span class="p">=</span> <span class="k">s</span>:V.import<span class="p">(</span><span class="s1">'Data.String'</span><span class="p">)</span></div><div class='line' id='LC9'><span class="k">endfunction</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_depends<span class="p">()</span></div><div class='line' id='LC12'> <span class="k">return</span> [<span class="s1">'Data.String'</span>]</div><div class='line' id='LC13'><span class="k">endfunction</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:is_available<span class="p">()</span></div><div class='line' id='LC16'> <span class="k">return</span> <span class="k">s</span>:V.has_vimproc<span class="p">()</span></div><div class='line' id='LC17'><span class="k">endfunction</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:touch<span class="p">(</span>name<span class="p">,</span> cmd<span class="p">)</span></div><div class='line' id='LC20'> <span class="k">if</span> has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:name<span class="p">)</span></div><div class='line' id='LC21'> <span class="k">return</span> <span class="s1">'existing'</span></div><div class='line' id='LC22'> <span class="k">else</span></div><div class='line' id='LC23'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> vimproc#popen3<span class="p">(</span><span class="k">a</span>:cmd<span class="p">)</span></div><div class='line' id='LC24'> <span class="k">let</span> <span class="k">s</span>:_processes[<span class="k">a</span>:name] <span class="p">=</span> <span class="k">p</span></div><div class='line' id='LC25'> <span class="k">return</span> <span class="s1">'new'</span></div><div class='line' id='LC26'> <span class="k">endif</span></div><div class='line' id='LC27'><span class="k">endfunction</span></div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:stop<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC30'> <span class="k">echomsg</span> <span class="s2">"Vital.ProcessManager.stop() is deprecated! Please use kill() or term() instead."</span></div><div class='line' id='LC31'> <span class="k">return</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC32'><span class="k">endfunction</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">i</span><span class="p">,</span> ...<span class="p">)</span></div><div class='line' id='LC35'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC36'> <span class="k">call</span> <span class="k">p</span>.kill<span class="p">(</span><span class="k">get</span><span class="p">(</span><span class="k">a</span>:<span class="m">000</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span> ? <span class="k">g</span>:vimproc#SIGKILL : <span class="k">g</span>:vimproc#SIGTERM<span class="p">)</span></div><div class='line' id='LC37'><span class="c"> " call p.waitpid()</span></div><div class='line' id='LC38'> unlet <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC39'><span class="k">endfunction</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">term</span><span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC42'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC43'><span class="k">endfunction</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC46'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC47'><span class="k">endfunction</span></div><div class='line' id='LC48'><br/></div><div class='line' id='LC49'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read<span class="p">(</span><span class="k">i</span><span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC50'> <span class="k">return</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span>.<span class="m">05</span><span class="p">,</span> <span class="k">a</span>:endpatterns<span class="p">)</span></div><div class='line' id='LC51'><span class="k">endfunction</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">i</span><span class="p">,</span> wait<span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC54'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC55'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC56'> <span class="k">endif</span></div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC61'> <span class="k">return</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">(),</span> <span class="s1">'inactive'</span>]</div><div class='line' id='LC62'> <span class="k">endif</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'> <span class="k">let</span> out_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC65'> <span class="k">let</span> err_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC66'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC67'> <span class="k">while</span> <span class="m">1</span></div><div class='line' id='LC68'> <span class="k">let</span> [<span class="k">x</span><span class="p">,</span> <span class="k">y</span>] <span class="p">=</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">()</span>]</div><div class='line' id='LC69'> <span class="k">if</span> <span class="k">x</span> <span class="p">==</span># <span class="s1">''</span> && <span class="k">y</span> <span class="p">==</span># <span class="s1">''</span></div><div class='line' id='LC70'> <span class="k">if</span> str2float<span class="p">(</span>reltimestr<span class="p">(</span>reltime<span class="p">(</span>lastchanged<span class="p">)))</span> <span class="p">></span> <span class="k">a</span>:wait</div><div class='line' id='LC71'> <span class="k">return</span> [out_memo<span class="p">,</span> err_memo<span class="p">,</span> <span class="s1">'timedout'</span>]</div><div class='line' id='LC72'> <span class="k">endif</span></div><div class='line' id='LC73'> <span class="k">else</span></div><div class='line' id='LC74'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC75'> <span class="k">let</span> out_memo .<span class="p">=</span> <span class="k">x</span></div><div class='line' id='LC76'> <span class="k">let</span> err_memo .<span class="p">=</span> <span class="k">y</span></div><div class='line' id='LC77'> <span class="k">for</span> pattern <span class="k">in</span> <span class="k">a</span>:endpatterns</div><div class='line' id='LC78'> <span class="k">if</span> out_memo <span class="p">=~</span> <span class="p">(</span><span class="s2">"\\(^\\|\n\\)"</span> . pattern<span class="p">)</span></div><div class='line' id='LC79'> <span class="k">return</span> [<span class="k">s</span>:S.substitute_last<span class="p">(</span>out_memo<span class="p">,</span> pattern<span class="p">,</span> <span class="s1">''</span><span class="p">),</span> err_memo<span class="p">,</span> <span class="s1">'matched'</span>]</div><div class='line' id='LC80'> <span class="k">endif</span></div><div class='line' id='LC81'> <span class="k">endfor</span></div><div class='line' id='LC82'> <span class="k">endif</span></div><div class='line' id='LC83'> <span class="k">endwhile</span></div><div class='line' id='LC84'><span class="k">endfunction</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC87'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC88'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC89'> <span class="k">endif</span></div><div class='line' id='LC90'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC91'> <span class="k">return</span> <span class="s1">'inactive'</span></div><div class='line' id='LC92'> <span class="k">endif</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC95'> <span class="k">call</span> <span class="k">p</span>.stdin.<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:str<span class="p">)</span></div><div class='line' id='LC96'><br/></div><div class='line' id='LC97'> <span class="k">return</span> <span class="s1">'active'</span></div><div class='line' id='LC98'><span class="k">endfunction</span></div><div class='line' id='LC99'><br/></div><div class='line' id='LC100'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:writeln<span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC101'> <span class="k">return</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="k">a</span>:str . <span class="s2">"\n"</span><span class="p">)</span></div><div class='line' id='LC102'><span class="k">endfunction</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC105'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC106'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC107'> <span class="k">endif</span></div><div class='line' id='LC108'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC109'><span class="c"> " vimproc.kill isn't to stop but to ask for the current state.</span></div><div class='line' id='LC110'><span class="c"> " return p.kill(0) ? 'inactive' : 'active'</span></div><div class='line' id='LC111'><span class="c"> " ... checkpid() checks if the process is running AND does waitpid() in C,</span></div><div class='line' id='LC112'><span class="c"> " so it solves zombie processes.</span></div><div class='line' id='LC113'> <span class="k">return</span> <span class="k">get</span><span class="p">(</span><span class="k">p</span>.checkpid<span class="p">(),</span> <span class="m">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'run'</span></div><div class='line' id='LC114'> \ ? <span class="s1">'active'</span></div><div class='line' id='LC115'> \ : <span class="s1">'inactive'</span></div><div class='line' id='LC116'><span class="k">endfunction</span></div><div class='line' id='LC117'><br/></div><div class='line' id='LC118'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:debug_processes<span class="p">()</span></div><div class='line' id='LC119'> <span class="k">return</span> <span class="k">s</span>:_processes</div><div class='line' id='LC120'><span class="k">endfunction</span></div><div class='line' id='LC121'><br/></div><div class='line' id='LC122'><span class="k">let</span> &<span class="nb">cpo</span> <span class="p">=</span> <span class="k">s</span>:save_cpo</div><div class='line' id='LC123'>unlet <span class="k">s</span>:save_cpo</div><div class='line' id='LC124'><span class="c">" vim:set et ts=2 sts=2 sw=2 tw=0:</span></div></pre></div> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a> | |
| <div id="jump-to-line" style="display:none"> | |
| <form accept-charset="UTF-8" class="js-jump-to-line-form"> | |
| <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus> | |
| <button type="submit" class="button">Go</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div><!-- /.repo-container --> | |
| <div class="modal-backdrop"></div> | |
| </div><!-- /.container --> | |
| </div><!-- /.site --> | |
| </div><!-- /.wrapper --> | |
| <div class="container"> | |
| <div class="site-footer"> | |
| <ul class="site-footer-links right"> | |
| <li><a href="https://status.github.com/">Status</a></li> | |
| <li><a href="http://developer.github.com">API</a></li> | |
| <li><a href="http://training.github.com">Training</a></li> | |
| <li><a href="http://shop.github.com">Shop</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="/about">About</a></li> | |
| </ul> | |
| <a href="/"> | |
| <span class="mega-octicon octicon-mark-github" title="GitHub"></span> | |
| </a> | |
| <ul class="site-footer-links"> | |
| <li>© 2014 <span title="0.03660s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> | |
| <li><a href="/site/terms">Terms</a></li> | |
| <li><a href="/site/privacy">Privacy</a></li> | |
| <li><a href="/security">Security</a></li> | |
| <li><a href="/contact">Contact</a></li> | |
| </ul> | |
| </div><!-- /.site-footer --> | |
| </div><!-- /.container --> | |
| <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> | |
| <div class="fullscreen-container js-fullscreen-container"> | |
| <div class="textarea-wrap"> | |
| <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea> | |
| <div class="suggester-container"> | |
| <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester" | |
| data-url="/vim-jp/vital.vim/suggestions/commit"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="fullscreen-sidebar"> | |
| <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode"> | |
| <span class="mega-octicon octicon-screen-normal"></span> | |
| </a> | |
| <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards" | |
| title="Switch themes"> | |
| <span class="octicon octicon-color-mode"></span> | |
| </a> | |
| </div> | |
| </div> | |
| <div id="ajax-error-message" class="flash flash-error"> | |
| <span class="octicon octicon-alert"></span> | |
| <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a> | |
| Something went wrong with that request. Please try again. | |
| </div> | |
| </body> | |
| </html> | |
| <!DOCTYPE html> | |
| <html> | |
| <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# githubog: http://ogp.me/ns/fb/githubog#"> | |
| <meta charset='utf-8'> | |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| <title>vital.vim/autoload/vital/__latest__/ProcessManager.vim at master · vim-jp/vital.vim</title> | |
| <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> | |
| <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> | |
| <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" /> | |
| <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" /> | |
| <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" /> | |
| <link rel="logo" type="image/svg" href="https://github-media-downloads.s3.amazonaws.com/github-logo.svg" /> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/modules/logos_page/Octocat.png"> | |
| <meta name="hostname" content="github-fe122-cp1-prd.iad.github.net"> | |
| <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (60139581e1) [x86_64-linux]"> | |
| <link rel="assets" href="https://github.global.ssl.fastly.net/"> | |
| <link rel="conduit-xhr" href="https://ghconduit.com:25035/"> | |
| <link rel="xhr-socket" href="/_sockets" /> | |
| <meta name="msapplication-TileImage" content="/windows-tile.png" /> | |
| <meta name="msapplication-TileColor" content="#ffffff" /> | |
| <meta name="selected-link" value="repo_source" data-pjax-transient /> | |
| <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="B6F95C6A:6644:E50EC4:52E18AFE" name="octolytics-dimension-request_id" /><meta content="214488" name="octolytics-actor-id" /><meta content="osyo-manga" name="octolytics-actor-login" /><meta content="e5012931f92cc8195a7f530c4e37bcc88d86a6df4ea3fd06d12d9d5795f6d0e8" name="octolytics-actor-hash" /> | |
| <link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |
| <meta content="authenticity_token" name="csrf-param" /> | |
| <meta content="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" name="csrf-token" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github-43087292f81aebbe92f90a36344865c4ad8170a0.css" media="all" rel="stylesheet" type="text/css" /> | |
| <link href="https://github.global.ssl.fastly.net/assets/github2-d23a1b1c4a1bc509a0ca67face2fb37ef257f599.css" media="all" rel="stylesheet" type="text/css" /> | |
| <script src="https://github.global.ssl.fastly.net/assets/frameworks-bf5987648bb83690ac0a5e955f74bbaf6ba44c4a.js" type="text/javascript"></script> | |
| <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-eab207422bd65ea8c46ef3d26d6fbcc74bba89ce.js" type="text/javascript"></script> | |
| <meta http-equiv="x-pjax-version" content="1ceda3c4fa0194817b46f4df6a3f2c23"> | |
| <link data-pjax-transient rel='permalink' href='/vim-jp/vital.vim/blob/3e229e28b002d42b9ca0d15bddddf0872fa2eed0/autoload/vital/__latest__/ProcessManager.vim'> | |
| <meta property="og:title" content="vital.vim"/> | |
| <meta property="og:type" content="githubog:gitrepository"/> | |
| <meta property="og:url" content="https://github.com/vim-jp/vital.vim"/> | |
| <meta property="og:image" content="https://github.global.ssl.fastly.net/images/gravatars/gravatar-user-420.png"/> | |
| <meta property="og:site_name" content="GitHub"/> | |
| <meta property="og:description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins"/> | |
| <meta name="description" content="vital.vim - A comprehensive Vim utility functions for Vim plugins" /> | |
| <meta content="1051958" name="octolytics-dimension-user_id" /><meta content="vim-jp" name="octolytics-dimension-user_login" /><meta content="1308435" name="octolytics-dimension-repository_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="1308435" name="octolytics-dimension-repository_network_root_id" /><meta content="vim-jp/vital.vim" name="octolytics-dimension-repository_network_root_nwo" /> | |
| <link href="https://github.com/vim-jp/vital.vim/commits/master.atom" rel="alternate" title="Recent Commits to vital.vim:master" type="application/atom+xml" /> | |
| </head> | |
| <body class="logged_in env-production windows vis-public page-blob"> | |
| <div class="wrapper"> | |
| <div class="header header-logged-in true"> | |
| <div class="container clearfix"> | |
| <a class="header-logo-invertocat" href="https://github.com/"> | |
| <span class="mega-octicon octicon-mark-github"></span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/notifications" class="notification-indicator tooltipped downwards contextually-unread" data-gotokey="n" title="You have unread notifications in this repository"> | |
| <span class="mail-status unread"></span> | |
| </a> | |
| <div class="command-bar js-command-bar in-repository"> | |
| <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get"> | |
| <input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off" | |
| data-username="osyo-manga" | |
| data-repo="vim-jp/vital.vim" | |
| data-branch="master" | |
| data-sha="e9e83ed3a8ffeefb55aeb10af4b80747448aeda6" | |
| > | |
| <input type="hidden" name="nwo" value="vim-jp/vital.vim" /> | |
| <div class="select-menu js-menu-container js-select-menu search-context-select-menu"> | |
| <span class="minibutton select-menu-button js-menu-target"> | |
| <span class="js-select-button">This repository</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container"> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" /> | |
| <div class="select-menu-item-text js-select-button-text">This repository</div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <input type="radio" name="search_target" value="global" /> | |
| <div class="select-menu-item-text js-select-button-text">All repositories</div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| </div> | |
| </div> | |
| <span class="octicon help tooltipped downwards" title="Show command bar help"> | |
| <span class="octicon octicon-question"></span> | |
| </span> | |
| <input type="hidden" name="ref" value="cmdform"> | |
| </form> | |
| <ul class="top-nav"> | |
| <li class="explore"><a href="/explore">Explore</a></li> | |
| <li><a href="https://gist.github.com">Gist</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="https://help.github.com">Help</a></li> | |
| </ul> | |
| </div> | |
| <ul id="user-links"> | |
| <li> | |
| <a href="/osyo-manga" class="name"> | |
| <img height="20" src="https://1.gravatar.com/avatar/3931098ae486b6df619050c63e24f6cc?d=https%3A%2F%2Fidenticons.github.com%2Fc192b911f32678010c36ee637415e182.png&r=x&s=140" width="20" /> osyo-manga | |
| </a> | |
| </li> | |
| <li class="new-menu dropdown-toggle js-menu-container"> | |
| <a href="#" class="js-menu-target tooltipped downwards" title="Create new…"> | |
| <span class="octicon octicon-plus"></span> | |
| <span class="dropdown-arrow"></span> | |
| </a> | |
| <div class="js-menu-content"> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/settings/profile" id="account_settings" | |
| class="tooltipped downwards" | |
| aria-label="Account settings " | |
| title="Account settings "> | |
| <span class="octicon octicon-tools"></span> | |
| </a> | |
| </li> | |
| <li> | |
| <a class="tooltipped downwards" href="/logout" data-method="post" id="logout" title="Sign out" aria-label="Sign out"> | |
| <span class="octicon octicon-log-out"></span> | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="js-new-dropdown-contents hidden"> | |
| <ul class="dropdown-menu"> | |
| <li> | |
| <a href="/new"><span class="octicon octicon-repo-create"></span> New repository</a> | |
| </li> | |
| <li> | |
| <a href="/organizations/new"><span class="octicon octicon-organization"></span> New organization</a> | |
| </li> | |
| <li class="section-title"> | |
| <span title="vim-jp/vital.vim">This repository</span> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/issues/new"><span class="octicon octicon-issue-opened"></span> New issue</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="site" itemscope itemtype="http://schema.org/WebPage"> | |
| <div class="pagehead repohead instapaper_ignore readability-menu"> | |
| <div class="container"> | |
| <ul class="pagehead-actions"> | |
| <li class="subscription"> | |
| <form accept-charset="UTF-8" action="/notifications/subscribe" class="js-social-container" data-autosubmit="true" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> <input id="repository_id" name="repository_id" type="hidden" value="1308435" /> | |
| <div class="select-menu js-menu-container js-select-menu"> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/watchers"> | |
| 22 | |
| </a> | |
| <span class="minibutton select-menu-button with-count js-menu-target" role="button" tabindex="0"> | |
| <span class="js-select-button"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </span> | |
| <div class="select-menu-modal-holder"> | |
| <div class="select-menu-modal subscription-menu-modal js-menu-content"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Notification status</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-list js-navigation-container" role="menu"> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_included" name="do" type="radio" value="included" /> | |
| <h4>Not watching</h4> | |
| <span class="description">You only receive notifications for conversations in which you participate or are @mentioned.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-watch"></span> | |
| Watch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected" role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input checked="checked" id="do_subscribed" name="do" type="radio" value="subscribed" /> | |
| <h4>Watching</h4> | |
| <span class="description">You receive notifications for all conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-eye-unwatch"></span> | |
| Unwatch | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item " role="menuitem" tabindex="0"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <div class="select-menu-item-text"> | |
| <input id="do_ignore" name="do" type="radio" value="ignore" /> | |
| <h4>Ignoring</h4> | |
| <span class="description">You do not receive any notifications for conversations in this repository.</span> | |
| <span class="js-select-button-text hidden-select-button-text"> | |
| <span class="octicon octicon-mute"></span> | |
| Stop ignoring | |
| </span> | |
| </div> | |
| </div> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| </form> | |
| </li> | |
| <li> | |
| <div class="js-toggler-container js-social-container starring-container "> | |
| <a href="/vim-jp/vital.vim/unstar" | |
| class="minibutton with-count js-toggler-target star-button starred upwards" | |
| title="Unstar this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star-delete"></span><span class="text">Unstar</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/star" | |
| class="minibutton with-count js-toggler-target star-button unstarred upwards" | |
| title="Star this repository" data-remote="true" data-method="post" rel="nofollow"> | |
| <span class="octicon octicon-star"></span><span class="text">Star</span> | |
| </a> | |
| <a class="social-count js-social-count" href="/vim-jp/vital.vim/stargazers"> | |
| 79 | |
| </a> | |
| </div> | |
| </li> | |
| <li> | |
| <a href="/vim-jp/vital.vim/fork" class="minibutton with-count js-toggler-target fork-button lighter upwards" title="Fork this repo" rel="facebox nofollow"> | |
| <span class="octicon octicon-git-branch-create"></span><span class="text">Fork</span> | |
| </a> | |
| <a href="/vim-jp/vital.vim/network" class="social-count">26</a> | |
| </li> | |
| </ul> | |
| <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public"> | |
| <span class="repo-label"><span>public</span></span> | |
| <span class="mega-octicon octicon-repo"></span> | |
| <span class="author"> | |
| <a href="/vim-jp" class="url fn" itemprop="url" rel="author"><span itemprop="title">vim-jp</span></a> | |
| </span> | |
| <span class="repohead-name-divider">/</span> | |
| <strong><a href="/vim-jp/vital.vim" class="js-current-repository js-repo-home-link">vital.vim</a></strong> | |
| <span class="page-context-loader"> | |
| <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </span> | |
| </h1> | |
| </div><!-- /.container --> | |
| </div><!-- /.repohead --> | |
| <div class="container"> | |
| <div class="repository-with-sidebar repo-container "> | |
| <div class="repository-sidebar"> | |
| <div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders"> | |
| <div class="sunken-menu-contents"> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Code"> | |
| <a href="/vim-jp/vital.vim" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /vim-jp/vital.vim"> | |
| <span class="octicon octicon-code"></span> <span class="full-word">Code</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Issues"> | |
| <a href="/vim-jp/vital.vim/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /vim-jp/vital.vim/issues"> | |
| <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span> | |
| <span class='counter'>28</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Pull Requests"> | |
| <a href="/vim-jp/vital.vim/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /vim-jp/vital.vim/pulls"> | |
| <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span> | |
| <span class='counter'>4</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Wiki"> | |
| <a href="/vim-jp/vital.vim/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_wiki /vim-jp/vital.vim/wiki"> | |
| <span class="octicon octicon-book"></span> <span class="full-word">Wiki</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| <div class="sunken-menu-separator"></div> | |
| <ul class="sunken-menu-group"> | |
| <li class="tooltipped leftwards" title="Pulse"> | |
| <a href="/vim-jp/vital.vim/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /vim-jp/vital.vim/pulse"> | |
| <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Graphs"> | |
| <a href="/vim-jp/vital.vim/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /vim-jp/vital.vim/graphs"> | |
| <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| <li class="tooltipped leftwards" title="Network"> | |
| <a href="/vim-jp/vital.vim/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /vim-jp/vital.vim/network"> | |
| <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span> | |
| <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" /> | |
| </a> </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="only-with-full-nav"> | |
| <div class="clone-url " | |
| data-protocol-type="http" | |
| data-url="/users/set_protocol?protocol_selector=http&protocol_type=push"> | |
| <h3><strong>HTTPS</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url open" | |
| data-protocol-type="ssh" | |
| data-url="/users/set_protocol?protocol_selector=ssh&protocol_type=push"> | |
| <h3><strong>SSH</strong> clone URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="git@github.com:vim-jp/vital.vim.git" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="git@github.com:vim-jp/vital.vim.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="clone-url " | |
| data-protocol-type="subversion" | |
| data-url="/users/set_protocol?protocol_selector=subversion&protocol_type=push"> | |
| <h3><strong>Subversion</strong> checkout URL</h3> | |
| <div class="clone-url-box"> | |
| <input type="text" class="clone js-url-field" | |
| value="https://github.com/vim-jp/vital.vim" readonly="readonly"> | |
| <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/vim-jp/vital.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <p class="clone-options">You can clone with | |
| <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>, | |
| <a href="#" class="js-clone-selector" data-protocol="ssh">SSH</a>, | |
| or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>. | |
| <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you."> | |
| <a href="https://help.github.com/articles/which-remote-url-should-i-use"> | |
| <span class="octicon octicon-question"></span> | |
| </a> | |
| </span> | |
| </p> | |
| <a href="http://windows.github.com" class="minibutton sidebar-button"> | |
| <span class="octicon octicon-device-desktop"></span> | |
| Clone in Desktop | |
| </a> | |
| <a href="/vim-jp/vital.vim/archive/master.zip" | |
| class="minibutton sidebar-button" | |
| title="Download this repository as a zip file" | |
| rel="nofollow"> | |
| <span class="octicon octicon-cloud-download"></span> | |
| Download ZIP | |
| </a> | |
| </div> | |
| </div><!-- /.repository-sidebar --> | |
| <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container> | |
| <!-- blob contrib key: blob_contributors:v21:8865196e6c233067ca43f509eaa36ae4 --> | |
| <p title="This is a placeholder element" class="js-history-link-replace hidden"></p> | |
| <a href="/vim-jp/vital.vim/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a> | |
| <div class="file-navigation"> | |
| <div class="select-menu js-menu-container js-select-menu" > | |
| <span class="minibutton select-menu-button js-menu-target" data-hotkey="w" | |
| data-master-branch="master" | |
| data-ref="master" | |
| role="button" aria-label="Switch branches or tags" tabindex="0"> | |
| <span class="octicon octicon-git-branch"></span> | |
| <i>branch:</i> | |
| <span class="js-select-button">master</span> | |
| </span> | |
| <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax> | |
| <div class="select-menu-modal"> | |
| <div class="select-menu-header"> | |
| <span class="select-menu-title">Switch branches/tags</span> | |
| <span class="octicon octicon-remove-close js-menu-close"></span> | |
| </div> <!-- /.select-menu-header --> | |
| <div class="select-menu-filters"> | |
| <div class="select-menu-text-filter"> | |
| <input type="text" aria-label="Find or create a branch…" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Find or create a branch…"> | |
| </div> | |
| <div class="select-menu-tabs"> | |
| <ul> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a> | |
| </li> | |
| <li class="select-menu-tab"> | |
| <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a> | |
| </li> | |
| </ul> | |
| </div><!-- /.select-menu-tabs --> | |
| </div><!-- /.select-menu-filters --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/Data.Closure/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="Data.Closure" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="Data.Closure">Data.Closure</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/git_submodule/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="git_submodule" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="git_submodule">git_submodule</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/logger/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="logger" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="logger">logger</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item selected"> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="master" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="master">master</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/optional-prelude/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="optional-prelude" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="optional-prelude">optional-prelude</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sqlite-processmanager-wip/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sqlite-processmanager-wip" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sqlite-processmanager-wip">sqlite-processmanager-wip</a> | |
| </div> <!-- /.select-menu-item --> | |
| <div class="select-menu-item js-navigation-item "> | |
| <span class="select-menu-item-icon octicon octicon-check"></span> | |
| <a href="/vim-jp/vital.vim/blob/sys.file/autoload/vital/__latest__/ProcessManager.vim" | |
| data-name="sys.file" | |
| data-skip-pjax="true" | |
| rel="nofollow" | |
| class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target" | |
| title="sys.file">sys.file</a> | |
| </div> <!-- /.select-menu-item --> | |
| </div> | |
| <form accept-charset="UTF-8" action="/vim-jp/vital.vim/branches" class="js-create-branch select-menu-item select-menu-new-item-form js-navigation-item js-new-item-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="QJ+IADlDg9SxDImNEnlVQuqnrERp2WaGGsoyvKtaTk4=" /></div> | |
| <span class="octicon octicon-git-branch-create select-menu-item-icon"></span> | |
| <div class="select-menu-item-text"> | |
| <h4>Create branch: <span class="js-new-item-name"></span></h4> | |
| <span class="description">from ‘master’</span> | |
| </div> | |
| <input type="hidden" name="name" id="name" class="js-new-item-value"> | |
| <input type="hidden" name="branch" id="branch" value="master" /> | |
| <input type="hidden" name="path" id="path" value="autoload/vital/__latest__/ProcessManager.vim" /> | |
| </form> <!-- /.select-menu-item --> | |
| </div> <!-- /.select-menu-list --> | |
| <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags"> | |
| <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring"> | |
| </div> | |
| <div class="select-menu-no-results">Nothing to show</div> | |
| </div> <!-- /.select-menu-list --> | |
| </div> <!-- /.select-menu-modal --> | |
| </div> <!-- /.select-menu-modal-holder --> | |
| </div> <!-- /.select-menu --> | |
| <div class="breadcrumb"> | |
| <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital.vim</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">autoload</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">vital</span></a></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/vim-jp/vital.vim/tree/master/autoload/vital/__latest__" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">__latest__</span></a></span><span class="separator"> / </span><strong class="final-path">ProcessManager.vim</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="autoload/vital/__latest__/ProcessManager.vim" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span> | |
| </div> | |
| </div> | |
| <div class="commit file-history-tease"> | |
| <img class="main-avatar" height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <span class="author"><a href="/ujihisa" rel="author">ujihisa</a></span> | |
| <time class="js-relative-date" datetime="2013-12-21T20:30:11-08:00" title="2013-12-21 20:30:11">December 21, 2013</time> | |
| <div class="commit-title"> | |
| <a href="/vim-jp/vital.vim/commit/240d2c93ff042c7afd291cdb301c0c1004136a73" class="message" data-pjax="true" title="ProcessManager: cosmetic change">ProcessManager: cosmetic change</a> | |
| </div> | |
| <div class="participation"> | |
| <p class="quickstat"><a href="#blob_contributors_box" rel="facebox"><strong>4</strong> contributors</a></p> | |
| <a class="avatar tooltipped downwards" title="ujihisa" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ujihisa"><img height="20" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="mattn" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=mattn"><img height="20" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="ichizok" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=ichizok"><img height="20" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="20" /></a> | |
| <a class="avatar tooltipped downwards" title="alpaca-tc" href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim?author=alpaca-tc"><img height="20" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="20" /></a> | |
| </div> | |
| <div id="blob_contributors_box" style="display:none"> | |
| <h2 class="facebox-header">Users who have contributed to this file</h2> | |
| <ul class="facebox-user-list"> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/d9d0ceb387e3b6de5c4562af78e8a910?d=https%3A%2F%2Fidenticons.github.com%2F0fc780bb04e74ce5ed154d2e49cfe2fd.png&r=x&s=140" width="24" /> | |
| <a href="/ujihisa">ujihisa</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/1ba93fd9e39ebf48777f217c38e768fd?d=https%3A%2F%2Fidenticons.github.com%2F70bb83c9272e6c4bc6e83e0a55c7c9c3.png&r=x&s=140" width="24" /> | |
| <a href="/mattn">mattn</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://2.gravatar.com/avatar/9b780db659a9a657e775b07521be3efc?d=https%3A%2F%2Fidenticons.github.com%2Fa8a23399cfd9dee3779fad0970ec23dc.png&r=x&s=140" width="24" /> | |
| <a href="/ichizok">ichizok</a> | |
| </li> | |
| <li class="facebox-user-list-item"> | |
| <img height="24" src="https://1.gravatar.com/avatar/c2fe23111675890bf8bc59afb312990e?d=https%3A%2F%2Fidenticons.github.com%2F8e3d7e94dcb83a1fda7307b9f75b186c.png&r=x&s=140" width="24" /> | |
| <a href="/alpaca-tc">alpaca-tc</a> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div id="files" class="bubble"> | |
| <div class="file"> | |
| <div class="meta"> | |
| <div class="info"> | |
| <span class="icon"><b class="octicon octicon-file-text"></b></span> | |
| <span class="mode" title="File Mode">file</span> | |
| <span>125 lines (103 sloc)</span> | |
| <span>2.881 kb</span> | |
| </div> | |
| <div class="actions"> | |
| <div class="button-group"> | |
| <a class="minibutton tooltipped leftwards" | |
| href="http://windows.github.com" title="Open this file in GitHub for Windows"> | |
| <span class="octicon octicon-device-desktop"></span> Open | |
| </a> | |
| <a class="minibutton" | |
| href="/vim-jp/vital.vim/edit/master/autoload/vital/__latest__/ProcessManager.vim" | |
| data-method="post" rel="nofollow" data-hotkey="e">Edit</a> | |
| <a href="/vim-jp/vital.vim/raw/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " id="raw-url">Raw</a> | |
| <a href="/vim-jp/vital.vim/blame/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton ">Blame</a> | |
| <a href="/vim-jp/vital.vim/commits/master/autoload/vital/__latest__/ProcessManager.vim" class="button minibutton " rel="nofollow">History</a> | |
| </div><!-- /.button-group --> | |
| <a class="minibutton danger empty-icon tooltipped downwards" | |
| href="/vim-jp/vital.vim/delete/master/autoload/vital/__latest__/ProcessManager.vim" | |
| title="" | |
| data-method="post" data-test-id="delete-blob-file" rel="nofollow"> | |
| Delete | |
| </a> | |
| </div><!-- /.actions --> | |
| </div> | |
| <div class="blob-wrapper data type-viml js-blob-data"> | |
| <table class="file-code file-diff"> | |
| <tr class="file-code-line"> | |
| <td class="blob-line-nums"> | |
| <span id="L1" rel="#L1">1</span> | |
| <span id="L2" rel="#L2">2</span> | |
| <span id="L3" rel="#L3">3</span> | |
| <span id="L4" rel="#L4">4</span> | |
| <span id="L5" rel="#L5">5</span> | |
| <span id="L6" rel="#L6">6</span> | |
| <span id="L7" rel="#L7">7</span> | |
| <span id="L8" rel="#L8">8</span> | |
| <span id="L9" rel="#L9">9</span> | |
| <span id="L10" rel="#L10">10</span> | |
| <span id="L11" rel="#L11">11</span> | |
| <span id="L12" rel="#L12">12</span> | |
| <span id="L13" rel="#L13">13</span> | |
| <span id="L14" rel="#L14">14</span> | |
| <span id="L15" rel="#L15">15</span> | |
| <span id="L16" rel="#L16">16</span> | |
| <span id="L17" rel="#L17">17</span> | |
| <span id="L18" rel="#L18">18</span> | |
| <span id="L19" rel="#L19">19</span> | |
| <span id="L20" rel="#L20">20</span> | |
| <span id="L21" rel="#L21">21</span> | |
| <span id="L22" rel="#L22">22</span> | |
| <span id="L23" rel="#L23">23</span> | |
| <span id="L24" rel="#L24">24</span> | |
| <span id="L25" rel="#L25">25</span> | |
| <span id="L26" rel="#L26">26</span> | |
| <span id="L27" rel="#L27">27</span> | |
| <span id="L28" rel="#L28">28</span> | |
| <span id="L29" rel="#L29">29</span> | |
| <span id="L30" rel="#L30">30</span> | |
| <span id="L31" rel="#L31">31</span> | |
| <span id="L32" rel="#L32">32</span> | |
| <span id="L33" rel="#L33">33</span> | |
| <span id="L34" rel="#L34">34</span> | |
| <span id="L35" rel="#L35">35</span> | |
| <span id="L36" rel="#L36">36</span> | |
| <span id="L37" rel="#L37">37</span> | |
| <span id="L38" rel="#L38">38</span> | |
| <span id="L39" rel="#L39">39</span> | |
| <span id="L40" rel="#L40">40</span> | |
| <span id="L41" rel="#L41">41</span> | |
| <span id="L42" rel="#L42">42</span> | |
| <span id="L43" rel="#L43">43</span> | |
| <span id="L44" rel="#L44">44</span> | |
| <span id="L45" rel="#L45">45</span> | |
| <span id="L46" rel="#L46">46</span> | |
| <span id="L47" rel="#L47">47</span> | |
| <span id="L48" rel="#L48">48</span> | |
| <span id="L49" rel="#L49">49</span> | |
| <span id="L50" rel="#L50">50</span> | |
| <span id="L51" rel="#L51">51</span> | |
| <span id="L52" rel="#L52">52</span> | |
| <span id="L53" rel="#L53">53</span> | |
| <span id="L54" rel="#L54">54</span> | |
| <span id="L55" rel="#L55">55</span> | |
| <span id="L56" rel="#L56">56</span> | |
| <span id="L57" rel="#L57">57</span> | |
| <span id="L58" rel="#L58">58</span> | |
| <span id="L59" rel="#L59">59</span> | |
| <span id="L60" rel="#L60">60</span> | |
| <span id="L61" rel="#L61">61</span> | |
| <span id="L62" rel="#L62">62</span> | |
| <span id="L63" rel="#L63">63</span> | |
| <span id="L64" rel="#L64">64</span> | |
| <span id="L65" rel="#L65">65</span> | |
| <span id="L66" rel="#L66">66</span> | |
| <span id="L67" rel="#L67">67</span> | |
| <span id="L68" rel="#L68">68</span> | |
| <span id="L69" rel="#L69">69</span> | |
| <span id="L70" rel="#L70">70</span> | |
| <span id="L71" rel="#L71">71</span> | |
| <span id="L72" rel="#L72">72</span> | |
| <span id="L73" rel="#L73">73</span> | |
| <span id="L74" rel="#L74">74</span> | |
| <span id="L75" rel="#L75">75</span> | |
| <span id="L76" rel="#L76">76</span> | |
| <span id="L77" rel="#L77">77</span> | |
| <span id="L78" rel="#L78">78</span> | |
| <span id="L79" rel="#L79">79</span> | |
| <span id="L80" rel="#L80">80</span> | |
| <span id="L81" rel="#L81">81</span> | |
| <span id="L82" rel="#L82">82</span> | |
| <span id="L83" rel="#L83">83</span> | |
| <span id="L84" rel="#L84">84</span> | |
| <span id="L85" rel="#L85">85</span> | |
| <span id="L86" rel="#L86">86</span> | |
| <span id="L87" rel="#L87">87</span> | |
| <span id="L88" rel="#L88">88</span> | |
| <span id="L89" rel="#L89">89</span> | |
| <span id="L90" rel="#L90">90</span> | |
| <span id="L91" rel="#L91">91</span> | |
| <span id="L92" rel="#L92">92</span> | |
| <span id="L93" rel="#L93">93</span> | |
| <span id="L94" rel="#L94">94</span> | |
| <span id="L95" rel="#L95">95</span> | |
| <span id="L96" rel="#L96">96</span> | |
| <span id="L97" rel="#L97">97</span> | |
| <span id="L98" rel="#L98">98</span> | |
| <span id="L99" rel="#L99">99</span> | |
| <span id="L100" rel="#L100">100</span> | |
| <span id="L101" rel="#L101">101</span> | |
| <span id="L102" rel="#L102">102</span> | |
| <span id="L103" rel="#L103">103</span> | |
| <span id="L104" rel="#L104">104</span> | |
| <span id="L105" rel="#L105">105</span> | |
| <span id="L106" rel="#L106">106</span> | |
| <span id="L107" rel="#L107">107</span> | |
| <span id="L108" rel="#L108">108</span> | |
| <span id="L109" rel="#L109">109</span> | |
| <span id="L110" rel="#L110">110</span> | |
| <span id="L111" rel="#L111">111</span> | |
| <span id="L112" rel="#L112">112</span> | |
| <span id="L113" rel="#L113">113</span> | |
| <span id="L114" rel="#L114">114</span> | |
| <span id="L115" rel="#L115">115</span> | |
| <span id="L116" rel="#L116">116</span> | |
| <span id="L117" rel="#L117">117</span> | |
| <span id="L118" rel="#L118">118</span> | |
| <span id="L119" rel="#L119">119</span> | |
| <span id="L120" rel="#L120">120</span> | |
| <span id="L121" rel="#L121">121</span> | |
| <span id="L122" rel="#L122">122</span> | |
| <span id="L123" rel="#L123">123</span> | |
| <span id="L124" rel="#L124">124</span> | |
| </td> | |
| <td class="blob-line-code"> | |
| <div class="code-body highlight"><pre><div class='line' id='LC1'><span class="k">let</span> <span class="k">s</span>:save_cpo <span class="p">=</span> &<span class="nb">cpo</span></div><div class='line' id='LC2'><span class="k">set</span> <span class="nb">cpo</span>&<span class="k">vim</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">let</span> <span class="k">s</span>:_processes <span class="p">=</span> {}</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_loaded<span class="p">(</span>V<span class="p">)</span></div><div class='line' id='LC7'> <span class="k">let</span> <span class="k">s</span>:V <span class="p">=</span> <span class="k">a</span>:V</div><div class='line' id='LC8'> <span class="k">let</span> <span class="k">s</span>:S <span class="p">=</span> <span class="k">s</span>:V.import<span class="p">(</span><span class="s1">'Data.String'</span><span class="p">)</span></div><div class='line' id='LC9'><span class="k">endfunction</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_vital_depends<span class="p">()</span></div><div class='line' id='LC12'> <span class="k">return</span> [<span class="s1">'Data.String'</span>]</div><div class='line' id='LC13'><span class="k">endfunction</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:is_available<span class="p">()</span></div><div class='line' id='LC16'> <span class="k">return</span> <span class="k">s</span>:V.has_vimproc<span class="p">()</span></div><div class='line' id='LC17'><span class="k">endfunction</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:touch<span class="p">(</span>name<span class="p">,</span> cmd<span class="p">)</span></div><div class='line' id='LC20'> <span class="k">if</span> has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:name<span class="p">)</span></div><div class='line' id='LC21'> <span class="k">return</span> <span class="s1">'existing'</span></div><div class='line' id='LC22'> <span class="k">else</span></div><div class='line' id='LC23'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> vimproc#popen3<span class="p">(</span><span class="k">a</span>:cmd<span class="p">)</span></div><div class='line' id='LC24'> <span class="k">let</span> <span class="k">s</span>:_processes[<span class="k">a</span>:name] <span class="p">=</span> <span class="k">p</span></div><div class='line' id='LC25'> <span class="k">return</span> <span class="s1">'new'</span></div><div class='line' id='LC26'> <span class="k">endif</span></div><div class='line' id='LC27'><span class="k">endfunction</span></div><div class='line' id='LC28'><br/></div><div class='line' id='LC29'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:stop<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC30'> <span class="k">echomsg</span> <span class="s2">"Vital.ProcessManager.stop() is deprecated! Please use kill() or term() instead."</span></div><div class='line' id='LC31'> <span class="k">return</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC32'><span class="k">endfunction</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">i</span><span class="p">,</span> ...<span class="p">)</span></div><div class='line' id='LC35'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC36'> <span class="k">call</span> <span class="k">p</span>.kill<span class="p">(</span><span class="k">get</span><span class="p">(</span><span class="k">a</span>:<span class="m">000</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span> ? <span class="k">g</span>:vimproc#SIGKILL : <span class="k">g</span>:vimproc#SIGTERM<span class="p">)</span></div><div class='line' id='LC37'><span class="c"> " call p.waitpid()</span></div><div class='line' id='LC38'> unlet <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC39'><span class="k">endfunction</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">term</span><span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC42'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC43'><span class="k">endfunction</span></div><div class='line' id='LC44'><br/></div><div class='line' id='LC45'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:kill<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC46'> <span class="k">return</span> <span class="k">s</span>:_stop<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC47'><span class="k">endfunction</span></div><div class='line' id='LC48'><br/></div><div class='line' id='LC49'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read<span class="p">(</span><span class="k">i</span><span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC50'> <span class="k">return</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="m">0</span>.<span class="m">05</span><span class="p">,</span> <span class="k">a</span>:endpatterns<span class="p">)</span></div><div class='line' id='LC51'><span class="k">endfunction</span></div><div class='line' id='LC52'><br/></div><div class='line' id='LC53'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:read_wait<span class="p">(</span><span class="k">i</span><span class="p">,</span> wait<span class="p">,</span> endpatterns<span class="p">)</span></div><div class='line' id='LC54'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC55'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC56'> <span class="k">endif</span></div><div class='line' id='LC57'><br/></div><div class='line' id='LC58'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC59'><br/></div><div class='line' id='LC60'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC61'> <span class="k">return</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">(),</span> <span class="s1">'inactive'</span>]</div><div class='line' id='LC62'> <span class="k">endif</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'> <span class="k">let</span> out_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC65'> <span class="k">let</span> err_memo <span class="p">=</span> <span class="s1">''</span></div><div class='line' id='LC66'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC67'> <span class="k">while</span> <span class="m">1</span></div><div class='line' id='LC68'> <span class="k">let</span> [<span class="k">x</span><span class="p">,</span> <span class="k">y</span>] <span class="p">=</span> [<span class="k">p</span>.stdout.read<span class="p">(),</span> <span class="k">p</span>.stderr.read<span class="p">()</span>]</div><div class='line' id='LC69'> <span class="k">if</span> <span class="k">x</span> <span class="p">==</span># <span class="s1">''</span> && <span class="k">y</span> <span class="p">==</span># <span class="s1">''</span></div><div class='line' id='LC70'> <span class="k">if</span> str2float<span class="p">(</span>reltimestr<span class="p">(</span>reltime<span class="p">(</span>lastchanged<span class="p">)))</span> <span class="p">></span> <span class="k">a</span>:wait</div><div class='line' id='LC71'> <span class="k">return</span> [out_memo<span class="p">,</span> err_memo<span class="p">,</span> <span class="s1">'timedout'</span>]</div><div class='line' id='LC72'> <span class="k">endif</span></div><div class='line' id='LC73'> <span class="k">else</span></div><div class='line' id='LC74'> <span class="k">let</span> lastchanged <span class="p">=</span> reltime<span class="p">()</span></div><div class='line' id='LC75'> <span class="k">let</span> out_memo .<span class="p">=</span> <span class="k">x</span></div><div class='line' id='LC76'> <span class="k">let</span> err_memo .<span class="p">=</span> <span class="k">y</span></div><div class='line' id='LC77'> <span class="k">for</span> pattern <span class="k">in</span> <span class="k">a</span>:endpatterns</div><div class='line' id='LC78'> <span class="k">if</span> out_memo <span class="p">=~</span> <span class="p">(</span><span class="s2">"\\(^\\|\n\\)"</span> . pattern<span class="p">)</span></div><div class='line' id='LC79'> <span class="k">return</span> [<span class="k">s</span>:S.substitute_last<span class="p">(</span>out_memo<span class="p">,</span> pattern<span class="p">,</span> <span class="s1">''</span><span class="p">),</span> err_memo<span class="p">,</span> <span class="s1">'matched'</span>]</div><div class='line' id='LC80'> <span class="k">endif</span></div><div class='line' id='LC81'> <span class="k">endfor</span></div><div class='line' id='LC82'> <span class="k">endif</span></div><div class='line' id='LC83'> <span class="k">endwhile</span></div><div class='line' id='LC84'><span class="k">endfunction</span></div><div class='line' id='LC85'><br/></div><div class='line' id='LC86'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC87'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC88'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC89'> <span class="k">endif</span></div><div class='line' id='LC90'> <span class="k">if</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'inactive'</span></div><div class='line' id='LC91'> <span class="k">return</span> <span class="s1">'inactive'</span></div><div class='line' id='LC92'> <span class="k">endif</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC95'> <span class="k">call</span> <span class="k">p</span>.stdin.<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:str<span class="p">)</span></div><div class='line' id='LC96'><br/></div><div class='line' id='LC97'> <span class="k">return</span> <span class="s1">'active'</span></div><div class='line' id='LC98'><span class="k">endfunction</span></div><div class='line' id='LC99'><br/></div><div class='line' id='LC100'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:writeln<span class="p">(</span><span class="k">i</span><span class="p">,</span> str<span class="p">)</span></div><div class='line' id='LC101'> <span class="k">return</span> <span class="k">s</span>:<span class="nb">write</span><span class="p">(</span><span class="k">a</span>:<span class="k">i</span><span class="p">,</span> <span class="k">a</span>:str . <span class="s2">"\n"</span><span class="p">)</span></div><div class='line' id='LC102'><span class="k">endfunction</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:status<span class="p">(</span><span class="k">i</span><span class="p">)</span></div><div class='line' id='LC105'> <span class="k">if</span> <span class="p">!</span>has_key<span class="p">(</span><span class="k">s</span>:_processes<span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC106'> <span class="k">throw</span> printf<span class="p">(</span><span class="s2">"ProcessManager doesn't know about %s"</span><span class="p">,</span> <span class="k">a</span>:<span class="k">i</span><span class="p">)</span></div><div class='line' id='LC107'> <span class="k">endif</span></div><div class='line' id='LC108'> <span class="k">let</span> <span class="k">p</span> <span class="p">=</span> <span class="k">s</span>:_processes[<span class="k">a</span>:<span class="k">i</span>]</div><div class='line' id='LC109'><span class="c"> " vimproc.kill isn't to stop but to ask for the current state.</span></div><div class='line' id='LC110'><span class="c"> " return p.kill(0) ? 'inactive' : 'active'</span></div><div class='line' id='LC111'><span class="c"> " ... checkpid() checks if the process is running AND does waitpid() in C,</span></div><div class='line' id='LC112'><span class="c"> " so it solves zombie processes.</span></div><div class='line' id='LC113'> <span class="k">return</span> <span class="k">get</span><span class="p">(</span><span class="k">p</span>.checkpid<span class="p">(),</span> <span class="m">0</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="p">==</span># <span class="s1">'run'</span></div><div class='line' id='LC114'> \ ? <span class="s1">'active'</span></div><div class='line' id='LC115'> \ : <span class="s1">'inactive'</span></div><div class='line' id='LC116'><span class="k">endfunction</span></div><div class='line' id='LC117'><br/></div><div class='line' id='LC118'><span class="k">function</span><span class="p">!</span> <span class="k">s</span>:debug_processes<span class="p">()</span></div><div class='line' id='LC119'> <span class="k">return</span> <span class="k">s</span>:_processes</div><div class='line' id='LC120'><span class="k">endfunction</span></div><div class='line' id='LC121'><br/></div><div class='line' id='LC122'><span class="k">let</span> &<span class="nb">cpo</span> <span class="p">=</span> <span class="k">s</span>:save_cpo</div><div class='line' id='LC123'>unlet <span class="k">s</span>:save_cpo</div><div class='line' id='LC124'><span class="c">" vim:set et ts=2 sts=2 sw=2 tw=0:</span></div></pre></div> | |
| </td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| <a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a> | |
| <div id="jump-to-line" style="display:none"> | |
| <form accept-charset="UTF-8" class="js-jump-to-line-form"> | |
| <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" autofocus> | |
| <button type="submit" class="button">Go</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div><!-- /.repo-container --> | |
| <div class="modal-backdrop"></div> | |
| </div><!-- /.container --> | |
| </div><!-- /.site --> | |
| </div><!-- /.wrapper --> | |
| <div class="container"> | |
| <div class="site-footer"> | |
| <ul class="site-footer-links right"> | |
| <li><a href="https://status.github.com/">Status</a></li> | |
| <li><a href="http://developer.github.com">API</a></li> | |
| <li><a href="http://training.github.com">Training</a></li> | |
| <li><a href="http://shop.github.com">Shop</a></li> | |
| <li><a href="/blog">Blog</a></li> | |
| <li><a href="/about">About</a></li> | |
| </ul> | |
| <a href="/"> | |
| <span class="mega-octicon octicon-mark-github" title="GitHub"></span> | |
| </a> | |
| <ul class="site-footer-links"> | |
| <li>© 2014 <span title="0.03660s from github-fe122-cp1-prd.iad.github.net">GitHub</span>, Inc.</li> | |
| <li><a href="/site/terms">Terms</a></li> | |
| <li><a href="/site/privacy">Privacy</a></li> | |
| <li><a href="/security">Security</a></li> | |
| <li><a href="/contact">Contact</a></li> | |
| </ul> | |
| </div><!-- /.site-footer --> | |
| </div><!-- /.container --> | |
| <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay"> | |
| <div class="fullscreen-container js-fullscreen-container"> | |
| <div class="textarea-wrap"> | |
| <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea> | |
| <div class="suggester-container"> | |
| <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester" | |
| data-url="/vim-jp/vital.vim/suggestions/commit"> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="fullscreen-sidebar"> | |
| <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode"> | |
| <span class="mega-octicon octicon-screen-normal"></span> | |
| </a> | |
| <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards" | |
| title="Switch themes"> | |
| <span class="octicon octicon-color-mode"></span> | |
| </a> | |
| </div> | |
| </div> | |
| <div id="ajax-error-message" class="flash flash-error"> | |
| <span class="octicon octicon-alert"></span> | |
| <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a> | |
| Something went wrong with that request. Please try again. | |
| </div> | |
| </body> | |
| </html> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment