Sinatraのあらかると

記録することで、環境構築で悩まない。

Rubyの入力補完用の辞書。

github.com

deoplete-rubyのsourceフォルダ内、keywordとcore_methodsを消して、ruby-completeファイルだけで充分動作します。

私は、自分のdeoplete-rubyにそんな細工をしました。単語補完数が増えて助かっています。

もちろん、辞書なので入力補完を読み込めるエディタで動作しますよ。

※ Neovim/Vimだけではありません。

気づきましたが?tanraku,tanraku_logがあることに。

もちろん、require 'tanraku'をしないと動作はしません。no method errorを返すと想います。

require_relativeでもいいはずですが、loadで動作するかはわかりませんね。試してないので。

それでは、Vim2AdventCalendar2017で私が登録した日付、12/17の記事をお楽しみくださいませ。

riceシェルの組み立て方

環境構築ブログなので紹介します。

gem install mecab

gem install natto

MeCab downloads - Google ドライブ

mecab-rubyのバージョンにあったものをダウンロードして、

(例) 一例を解説します、環境にあったように変更願います。

gem build mecab-ruby.gemspec

gem install mecab-ruby-0.996.gem

でインストールできますよ。これで、riceが動作するようになりました。

Ruby Advent Calendar 2017の12/4まで記事はお待ちください、公開されたら内容をお楽しみくださいませ。

Vim8のdeoplete補完について

環境構築ブログなので、何も言わずに対応してくれていたメンテナに感謝しています。

Windows 10
python 2.7.14
python 3.5.4

deinを環境構築まだは、こちら。

takkii.hatenablog.com

takkii.hatenablog.com

takkii.hatenablog.com

deinを使うには、deinでVimのプラギン管理。と

改番、dein,deopleteとの付き合い方を参考に。

vim-plugを使うには、dein記事の無効を参考に。

読者がプラギンマネージャーを選べますよ。

neocompleteから移行するのも、フォルダを消して、

.vimrcの記述を削除すれば動作します。シンプル。

さっき、やってみました。Vim8でdeoplete対応版。

github.com

nvim_buf_line_countメソッドがno implementsだと言っていました。私が構築したときメンテナに報告してくださいのメッセージが流れていたのですが、数分後に追加してくれていました。これにより、WindowsでもdeopleteがVim8で環境構築できるようになっています。すごい。

vim8なのでおなじみの.vimrcに追加していきます。(init.vimじゃないよ)

※ 忘れていないよね、このスタートする記述...

github.com

" Use deoplete.
let g:deoplete#enable_at_startup = 1

takkii.hatenablog.com

let g:python3_host_prog='Python3のインストール先/python.exe'

let g:python_host_prog='python2のインストール先/python.exe'

python.exeはpython3だけ、python3.exeに名前を変更します。

takkii.hatenablog.com

こんな問題がありますが、システム環境変数にインストール先/Scriptsを追加しpip3 install neovimをしておけば大丈夫です。pip3.exeがある場所を通しておくと便利です。python2もScriptsの場所だけシステム環境変数に追加しpip install neovimを実行します。念のためにpython35フォルダでpython.exeがある場所を環境変数に追加しておくと後々助かります。

deinを使っている前提で既存の.vimrcに、

Vim8では動作しないそうなので、deoppet.nvimを削除します。

※ 参考に、自分の好みにあわせてdeopleteの言語をあわせましょう。私はRubyプログラマーなので、deoplete-rubyをプラギンに追加しています。

call dein#add('Shougo/deoplete.nvim')
  call dein#add('Shougo/deoplete-rct')

  if !has('nvim')
  call dein#add('roxma/nvim-yarp')
  call dein#add('roxma/vim-hug-neovim-rpc')
  endif
  
  call dein#add('fishbullet/deoplete-ruby')

書き足します。

deinの記事を参考にneosnippetは追加しているはずなので、

" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1

" Plugin key-mappings.
 imap <C-k>     <Plug>(neosnippet_expand_or_jump)
 smap <C-k>     <Plug>(neosnippet_expand_or_jump)
 xmap <C-k>     <Plug>(neosnippet_expand_target)

" SuperTab like snippets behavior.
 imap <expr><TAB> neosnippet#expandable_or_jumpable() ?
 \ "\<Plug>(neosnippet_expand_or_jump)"
 \: pumvisible() ? "\<C-n>" : "\<TAB>"
 smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
  \ "\<Plug>(neosnippet_expand_or_jump)"
   \: "\<TAB>"

" For snippet_complete marker.
   if has('conceal')
   set conceallevel=2 concealcursor=i
   endif

この設定を足します。既にあればそのままでOKです。

echo has ('python3')

echo has ('python')

で1を返せば完了です。

:message

を読んで、エラー対処していきなくなれば、

Vimを起動したら、ゆるゆると単語補完がでますよ。お疲れ様。

channel - Vim日本語ドキュメント

E906エラーがたまに流れます。これはVim8のチャンネルを終了していないのだと想われます。

※ 最新のWindows版Vim8ではでなくなるのを確認しました。ないとは想いますが、kaoriya-vim8-win32と最新のvim8を混在して、プロセスを並列しないほうがいいと想います。私は環境をみるためにそうしたのですが、E906エラーはそのあたりなんじゃないかと推測しています。もし、同じエラーに遭遇したら、チャンネルをcloseする処理をchannel - Vim日本語ドキュメントの上記リンクから考えてみるのも手です。

その後の、対処状況

追記:WindowsVimは最新を使ってますか?

github.com

最新をお使いください。GitHubVimのレポジトリがあります。

動画を修正しました。次はあるのかな...

しれっと、GitExtensionを日本語化する。

まだ、日本人なのにGitExtensionsの英語表記で疲弊しているの?

github.com

GitExtensions-2.50.02-SetupComplete.msi

2017/11/06で最新を入手します。

私の環境では、デフォルトで日本語化にできませんでした。

github.com

downloads ZIPボタンを押して、プロジェクトのzipフォルダを手にします。

zipフォルダを解凍しますLhaplusなどで。

gitextensions/GitUI/Translation/

Japanese.Plugins.xlf
Japanese.gif
Japanese.xlf

GitExtensionsのインストール先

(例)Cドライブ直下にインストールしたとき、

C:/GitExtension/Translation

上記の3つのファイルを追加します。

GitExtensionsを起動して、ツール(tools)→settings→外観(appearance)→言語(language)→Japaneseに指定します。

これで、日本語化できました。

WindowsでVisualStudioを使うときにGitExtensionsで捗りますね。

さぁ、開発を継続しよう...

余談: 一応、有志の日本語化プロジェクトをGitHubで見つけてビルドしてみたんですが、

たぶん、こっちのほうが楽ですね。日本語化するときは選べますよ。

※ インストールするとき、もしかしてチェックボックスのインストールファイルを選ぶときに言語を指定できたり、しないかなぁ。。

追伸:私はherokuのnyasocomをコミット&pushするときも、GitLabでzinbei2をコミット&pushするときも、GitExtensionsを愛用しているので、最近日本語化できなくなったなぁとプロジェクトを調べていました。デフォルトのパッケージに日本語が追加されていないのは、どうなんすかね。GitのGUIツールは多いけど、sourcetreeとかあるけど、やっぱりWindowsならばこれでしょって。日本人は日本語を使うべき、英語は共通語なれど、母国語を愛すべきです。まる。

zenfone2のmicroSDに関する話。

PV100アクセスを記念して、普段使っているSIMフリースマホの話をしていきます。

~ 事の始まり ~

家族に何かほしいのないの?から始まった休日の欲しいもの探し。そういえば、スマホの容量が足りてないので、アプリを削りまくっていたなぁと思い出しました。何気なく、32GBのTOSHIBA製のmicroSDがほしいと購入しましたよっと。帰宅して、SIM2に入れてみても動作しないので、SDカードの認識先を調べていると、ちゃんとオンラインにありますね。参考サイトとして紹介するのは割愛したいと想います。調べると書いている人が多いので壱番自分に合った環境の人のブログを参考にするといいです。そうしてはて、アプリの保存先を変えれるかなぁと調べると...

以上の事が理解できました。できないんですね。

しかしながら、データの保存先としてはとても優秀ですよ。microSD

~ 結論 ~

PCを介さずしても、データを移行できるのでおすすめです。もしかして、メーカー製のmicroSDには相性もあるかもしれないので、その辺は調べるべきだと想います。

それでは、また。

javaからjrubyを呼び出すと...

ハロウィーンが終わって、

トリックオアトリートの面影を残しますか...いたずらなストリーム。

Maven Repository: org.jruby » jruby-complete

jruby-complete.jarを手に入れます。

Eclipseなどで外部ライブラリとして登録します。

下のフォルダ構成にします。

src/Sample.rb

src/Main.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Main {


    public static void main(String[] args) throws Exception {

        String s;

        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("jruby");

        BufferedReader in = new BufferedReader(
                new FileReader("./src/Sample.rb"));

        try {

            while((s = in.readLine()) != null) {

            System.out.println();

            engine.eval(s);

            ((Invocable)engine).invokeMethod("","juke");

            System.out.println();

            ((Invocable)engine).invokeFunction("jack");

            System.out.println();

            in.close();

            }

        } catch(IOException ed) {
         //code here

            }

        } catch (ScriptException ex) {
         //code here

            }

        } catch(Exception e) {
         //code here

            }

        } finally{

         //code here
    }
  }
}
require './src/Sample.rb'

def juke

  puts ''
  puts ' 時計台 開始 '.center(60,'-')
  puts ''
  print ' 現在時刻は... '
  puts Time.new.strftime('%Y年%m月%d日 %H時%M分%S秒です...')
  puts ''
  puts ' 時計台 終了'.center(60,'-')

end

def jack

  puts ''
  puts ' Rubyのバージョン確認 開始 '.center(60,'-')
  puts ''
  puts ' Rubyのバージョンは: ' + RUBY_VERSION + ' です。'
  puts ''
  puts ' Rubyのバージョン確認 終了 '.center(60,'-')

end

WARNING: An illegal reflective access operation has occurred

WARNING: Illegal reflective access by org.jruby.util.io.FilenoUtil (file:/**/jruby-complete-9.1.13.0.jar) to

method sun.nio.ch.SelChImpl.getFD()

WARNING: Please consider reporting this to the maintainers of org.jruby.util.io.FilenoUtil

WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations

WARNING: All illegal access operations will be denied in a future release

なんかこんなメッセージがでました。これはおそらく、このアクセスをメンテナに報告してください。今後は、このアクセスを拒否しますという話である。ストリームから流れてきたのですが、9.1.13ではjrubyは動作していますよ。もったいないね。

javaはわかると面白い言語ですね。

箱入り娘プロジェクトの始動

本日、箱入り娘プロジェクトとしてシェアウェアでzinbei2を公開しました。

箱入り娘のサポートページで、サポートを受ける場合はメールを行い、私から見積もりをもらってください。

そのほかの、動作不良などはissueをGitHubで上げるか、もしくはこのブログを参考にしてください。

何年もの間、宙ぶらりんになっていた活動が少しずつ実を結びました。

目的はさまざまであれ、試用版からシェアウェアを購入する方々を歓迎します。

今後もどうぞ、応援いただければ幸いです。画期的とはいかないまでも面白いことをどんどん重ねていきます。

短文ですが、いつもありがとうございます。

Copyright © 2007-2017 Takayuki Kamiyama. All Rights Reserved.