Sinatraのあらかると

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

NTEmacsのバージョンと関連ツール。

NTEmacs / Emacs for Windows

auto-complete + robeをpackage installで入れられるのは25.x~

robeだけがpackage installにないよと24.xではなることがある

github.com

そこで、これを使う。

ruby-dictionary3の下の方に追加した文を抜粋。

git clone https://github.com/takkii/ruby-dictionary3.git

(require 'auto-complete-config)
;; (add-to-list 'ac-dictionary-directories "ruby-dictionary3を設置した場所")
(add-to-list 'ac-dictionary-directories "~/ruby-dictionary3/autoload/source/")
(ac-config-default)
(setq ac-use-menu-map t)

Rubyで開発をする際に、Emacs派ならばこんなこともできる。

OSSエディタ戦争のような過去をもつVimEmacsでも、プラグインとして入力補完辞書を指定する、中身の仕様は共通していることが多いんだ。だからこそできた。)

エディタは相棒。弁慶のように複数持っているのもありだ。

さぁ、Emacsを使ってRubyと共にWebの未来を構想しよう。

NTEmacsのこれから。

takkii.hatenablog.com

過去に書いた記事では、anythingを入れることができなくなりました。でも、どうしても入れたいときがありますね。そういうときのために。記録を書いておきます。

install-elisp.elをオンラインから手にして設置していると前提。

anything.elのURL先です。

http://www.emacswiki.org/cgi-bin/wiki/download/anything.el

http://www.emacswiki.org/cgi-bin/wiki/download/anything-config.el

http://www.emacswiki.org/cgi-bin/wiki/download/anything-match-plugin.el

C-cを繰り返してコンパイルします。

これで動作するようになりました。

auto-installはfatal error has occurredを醸し出して動作不良の問題がありますね。

URLですよ、これだけ。あとは調べるとオンラインで記事をみます。参考までに。

zinbeijettの使い方

長らく他者のソフトウェアを紹介してきました。

そろそろ自分のソフトウェアを、

RubyGemsに公開しているので紹介したいと想います。

gem install zinbeijett

これでzinbeijettはインストールできます。

Rubyが入っていれば標準ライブラリを使っているのでOKです。

0.4.2~zengine

演算子正規表現評価しています。

SJISWindowsベースだったと想います。

それでも動かないときは、zinbeiを使ってください。

取りそろえています。

1.0.0~engine

matchメソッドで正規表現を評価しています。

このエンジンというシェルは、

例: engine [option] [読む込むファイル] [単語または正規表現(全文のみ)]

・AND option -a

・NOT option -n

・OR option -o

・全文 option -z

全文だけは余分な正規表現を初期値で入れていないので、

正規表現テストエンジンになります。

IPアドレスにマッチする正規表現...など

※ () を使う正規表現で、よくトークンエラーを起こします。 そのときは、''シングルクォートなどで正規表現を囲んでくださいませ。 あと、//の始まりの区別は入りません。

● programmer.txt内を検索します。

IPアドレスが、文章に含まれているという確証を得ないときや、

6行目辺りに 255.255.255.0というサブネットマスクがあることを知っているとして、

抜き出して表示するためには、以下のコマンドを実行します。

例 engine -z programmer.txt '^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'

takkii.hatenablog.com

正規表現を試すことができるエンジンです。

この機会に是非、zinbeijettを学習用などでお使いくださいませ。

WSLでGUIアプリであるmikutterを使ってみる

「なんで、こうなっちまったんだよ。」

私はmikutterに対抗すべくRuby/TkでTwitterのつぶやきができるツールを作成したことがありました。それぐらい、このmikutterというツール存在を無視できなかったのですよ。Rubyで、作成されているところも憎いじゃないですか。こういう記事を書くのも本当はしたくないです。でも使えるTwitterクライアントとして記録。

moguno.hatenablog.jp

このサイト通りにしていくと、VcXsrvでサーバを起動することができます。ただ、コマンドプロンプトでブラウザを起動するという方法がよくわかりませんでしたね。ただ、これだけでは済みませんでした。

問題点

uimが立ち上がらない。

これに対処するためには、~/.uimにこの記述を追加します

(define default-im-name 'anthy)
(define-key generic-on-key? '("Henkan_Mode" "zenkaku-hankaku" "<Control> " "<Control>\\"))
(define-key generic-off-key? '("Muhenkan" "zenkaku-hankaku" "<Control> " "<Control>\\"))
(define-key anthy-extend-segment-key? '("<Control>o"))
(define-key anthy-shrink-segment-key? '("<Control>i"))

~/.bashrc

export LC_IDENTIFICATION=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
export LC_MEASUREMENT=ja_JP.UTF-8
export LC_NAME=ja_JP.UTF-8
export DISPLAY=localhost:0.0
export XIM=uim
export XMODIFIERS=@im=uim
export UIM_CANDWIN_PROG=uim-candwin-gtk
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim

if [ $SHLVL -eq 1 ]; then
  uim-xim &
fi

これで、mikutterで辞書を呼び出すことができます。もちろん、日本語フォント入れてますね。うん。 それで、日本語入力ができるようになります。コピー & ペーストしてつぶやかなくていいんですよ。

mikutterにはプラグイン管理というツールがあります。

moguno.hatenablog.jp

このプラグイン管理ツールを動作させるためには、

gtk2とminitarが必要です

mkdir ~/.mikutter/plugin

pluginフォルダを作ります。

※ ~/.mikutterは自動でできてます。

sudo apt install ruby-dev
sudo apt install libgtk2.0-dev
sudo apt install libglib2.0-dev

あとatkです

github.com

gem install bundler

bundle install

これでglib2とgtk2はいけるはずです。まだです。locate辺りでエラーになります。

sudo apt-get install language-pack-ja-base

sudo dpkg-reconfigure locales

ja_JP.utf-8

これを選択します。

.bashrc末尾に追加

export LC_ALL="ja_JP.utf-8"
export LANG="ja_JP"
export LANGUAGE="ja_JP"
export C_CTYPE="ja_JP"

これで、perlスクリプト対策 ... done.

もう一度、bundle installをしてみてください。成功しているはずです。

スキンを追加するには下記サイトですね。申し分ない。

mikutter-icon-theme-miq 2ray34g.deviantart.com

Windowsフォントに直結

sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows

sudo fc-cache -fv

これで、WSLでGUIアプリであるmikutterが動作してますよ。

手遅れ勢、流石です。

余談

mikutterはLinuxカーネルだけで動くわけではありません。こんな風にすれば、Linuxカーネルで動作するアプリケーション、例を挙げるならneovimのGUI版なども(Windowsだと不具合が多い)おそらく、Windowsで(編集はWindows、環境はWSLで)使えるように所見を持っています。ということは、Linuxカーネルに依存しているアプリケーションをサーバを介して、使用できうるということになります。近代的なWindows10との付き合いを始めてみませんか。

テキストエディタなどに関するお知らせ

VImに関する話題を減らしていこうと考えています。

テキストエディタの話題も確かに面白いしアクセスは多いですが、

私がやりたいこと、実現していくこととはかけ離れていて、

エンジニアがチューイングするエディタのウォーミングアップのような存在だからです。

今後は、RubyJavaなどの話題を展開していくか、

Webに関するまとめを書いていきます。

それでは、また更新されたときに記事をお楽しみくださいませ。

( ̄^ ̄)ゞ

deopleteで自作の辞書を追加するには

takkii.hatenablog.com

前回、dictionaryオプションを追加するといい話がでていました。

その話を踏まえて、今回は辞書を追加します。

github.com

私のGitHubレポジトリは見ましたか?

あんな風に動作します。辞書は[D]と表示されます。

github.com

629行目~650行目

追加方法が書かれています。

     " Examples:
        " Sample configuration for dictionary source with multiple
        " dictionary files.
        setlocal dictionary+=/usr/share/dict/words
        setlocal dictionary+=/usr/share/dict/american-english
        " Remove this if you'd like to use fuzzy search
        call deoplete#custom#source(
        \ 'dictionary', 'matchers', ['matcher_head'])
        " If dictionary is already sorted, no need to sort it again.
        call deoplete#custom#source(
        \ 'dictionary', 'sorters', [])
        " Do not complete too short words
        call deoplete#custom#source(
        \ 'dictionary', 'min_pattern_length', 4)

この内容で辞書を読ませるようにすれば読みます。

複数の入力補完辞書、設定例

setlocal dictionary+=辞書があるところファイル名まで

※ わからないときは、私のレポジトリを再度見るとわかると想います。

あいまいな検索をする場合はこれを削除します

 call deoplete#custom#source(
        \ 'dictionary', 'matchers', ['matcher_head'])

補完リスト上で、既に並べている場合は、再度並び替えする必要はありません。

     call deoplete#custom#source(
        \ 'dictionary', 'sorters', [])

あまりにも短い単語数で完了しないでください

     call deoplete#custom#source(
        \ 'dictionary', 'min_pattern_length', 4)

直訳で書いてみました。

入力補完の細かいところを、辞書で補うのもありですね。

遭遇したエラーを解決する。

Windows10にて

xcopyコマンドが存在しません。

依存関係を解決して、まだ補完できない状況のときに、PATHが通っていないということも考えられます。

自分の環境にあった解決方法を模索すべきです。これは一例ですね。

短文でした。

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