neovimからstataを実行する

私は、日常的なデータの管理にはRを利用しています。macあるいはcentosのterminalアプリケーションで.Rファイルを開き、nvim-Rを利用して、Rのコマンドを実行します。

Rは、初心者には敷居が高すぎるので、Stataを推奨しています。DoファイルエディタでStataのコマンドを編集しますが、どうも使い勝手がよくありません(neovimを比較すれば当たり前ですね・・・)。そこで、neovimでStataのコマンドを編集・実行できるプラグイン探してみました。

中国のJinan大学のZizhong Yan准教授がGitHubに公開しているプラグインvim-stataを利用すれば、neovimでdoファイルを編集・実行できますので、その設定方法を紹介します。

zizhongyan/vim-stata
Vim Plugin for Running Selected Do-File Lines in Stata

macにVundleのインストールする

手動インストールも可能ですが、プラグインマネージャーを利用した方が簡単そうです。neovimのプラグインマネージャーはいくつかありますが、今回はVundleをインストールします。macのterminalで下記のコマンドを実行して、~/.vim/bundle/にVundle.vimにインストールします。

$ git clone https://github.com/gmarik/Vundle.vim.git~/.vim/bundle/Vundle.vim
$ ls ~/.vim/bundle/ # プラグインのインストール先

今後Vundleでインストールしたプラグインは、~/.vim/bundle/にインストールされています。Vundle.vim自体もプラグインなので、~/.vim/bundle/にインストールされます。

vim-stataをインストールする

neovimの設定ファイルinit.vimにインストールするプラグインを設定します。

$ nvim ~/.config/nvim/inti.vim

下記の設定をinit.vimの先頭に記載します。

“Vundleの最少限の設定
set nocompatible ” be iMproved, required
filetype off ” required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

“GitHubからインストールするプラグインを記載する
Plugin ‘VundleVim/Vundle.vim’
Plugin ‘zizhongyan/vim-stata’

call vundle#end() ” required
filetype plugin indent on ” required

neovim上で下記のコマンドを実行して、init.vimを再読み込みして、プラグインをインストールします。

:source ~/.config/nvim/init.vim
:PluginInstall

vim-stataがVundleにインストールされているのを確認しましょう。vim-stataフォルダが見つかれば、インストール成功です!

$ ls ~/.vim/bundle/

.doファイルの設定

.doファイルを必ずstataで開かれるように設定します。hogehoge.doファイルを作成し、アイコンを右クリックして、

このアプリケーションで開く > その他…

を選択します。「常にこのアプリケーションで開く」にチェックを入れて、stataを選択して、「開く」をクリックします。

stataのメニューバーから

Stata/SE 15.0 > ユーザー設定 > 一般的なユーザー設定…

を選択して、下記の設定を表示します。cmd+,でもOKです。ウィンドウタブのDoファイルエディタの上級設定を開き、「doファイルエディタのFinderから開いたdoファイルを編集する」のチェックを外します。

これで.doファイルの設定は完了です。

vim-stataで”Hello, World”

あらかじめstataを起動しておきます。
neovimでhogehoge.doファイルを開き、下記コマンドを記載します。

display “Hello, world”

<shift+V>でコマンド行を選択してから、hotkey(デフォルトはF9)をクリックすると、stataで”Hello, world”が表示されます。

これで、neovimでstataコマンド編集しながら、実行できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください