VirtualBoxでArch linux

( ´_ゝ`)ノシ

yoshitiaです。

最近Javaの再学習始めてJSF2便利さを感じてます。

以前学習した時のテキストより3年新しいものですが

IDE、JSF2ともに前回使ったIDEjsp+Javaサーブレットより

かなり進歩してる気がします。

 

本題。


開発環境としてのデスクトップLinuxのススメ - 今日学んだこと

 

この記事を見てホイホイ環境構築しました。

Windows 8.1 64bit + VirtualBox + Arch Linux + Mate

Vagrantの扱い覚えようとしてハマったまま放置してた

VirtualBoxの再利用、素晴らしいですね。

 

同じような記事を書いてる方たくさんいらっしゃるので

検索のワードに使えそうな単語だけ並べます。

2015年3月現在

仮想マシンの設定

cpuコア 1

ram      3GB

データ領域 128GB

パーティション  gdiskコマンド使った

ブートローダ  EFI  (このあたりはハマる)

パッケージマネージャ   pacman  (ムチャクチャ使う)

GUIのグラフィック関係のもの  lightdm-gtk-greeter

※gtk2とかgtk3もこれに入ってる。

 

Virtualbox用グラフィックのドライバ      ○ fbdev × vesa

※PC本体が2014年購入のNVIDIAの新しめのものなのでvesaでは

対応してなかった

キーボードやマウスとか  xf86-input-mouse xf86-input-keyboard edev

GUI環境   MATE Xorg

設定したファイル(多分もっとある) .xinitrc .xprofile

xorg.confファイル作るときに使ったコマンド(設定ファイル生成してくれる)

# Xorg -configure

日本語入力  ibusを使用(他にもmozcとかfcitxとかある)

 

日本語化までは終わらせました。

快適さ加減で言うと、この記事をArch Linux上で書いてます。

VirtualBoxからの起動がちょっと重いブラウザ程度なので速すぎ。

ただ、仮想環境と1コア設定だからなのか半角/全角切り替え

で見た目は動いてる用に見えて裏の動きが追いついてない感じがありますが

1コアとしてはこれ以上ゼイタク言ったらバチが当たると納得するレベルの

快適さです。

 

少しずつ手を入れてVimEmacsXmonad・・・楽しくなりそうです。

Land of Lisp でハマったこと その2

( ´_ゝ`)ノシ

yoshitiaです。

land of lisp もdice of doom v2辺りです。

 

本題。

環境 windows 8.1 64bit Gnu Clisp-2.49

webserver.lispでserve関数がsocket通信できないorz

socketをquicklispのusocketに変えても駄目っぽい。


land-of-lisp/http.lisp at master · kofno/land-of-lisp · GitHub

失敗時に出てくるメッセージは

*** - Winsock error 10013 (EACCES): Permission denied

windowsのソケット通信を行うdll辺りで止められてるっぽい。

 

原著でも2010年辺りに出てるのでsocketやusocketが古いってことは

ないと思いますがwindows8辺りでwindowsのソケット通信回りが変わったのかな?(dllファイルもwinsock.dllじゃなくて

winsockac.dll?のようなファイル名だった)

 

windowsファイアウォールやウィルス対策ソフトの例外処理とかやっても変わらず。

land of lispでどうしてもweb関連について学びたいわけではないのでその辺はスルーすることに決定。

 

多分webserver.lispのようなプログラムを作って動かすって話ならCやJavaRubyPython・・・と他の言語でもあるので無理に頑張ることはないです。

linuxmacなら動くんだろうなぁ・・・

Land of Lisp でハマったこと

( ´_ゝ`)ノシ

yoshitiaです。

2015年に入ってからLand of LispCommon Lispを始めて

ますますVimからEvilへの比重が高くなってます。

 

本題。

Land of Lisp の7章あたりでextパッケージを使うコードが出てくるのですが

Clozure Common Lispを使ってると

extパッケージが存在しないのが原因でエラー出ます。

環境はwindows 8.1 64bit  ccl-1.10-windowsx86.zip

(もしかしたら設定とかパッケージ導入法などあるかもしれませんが

私のgoogle検索力や英語力では見つかりませんでしたorz)

 

回避方法としてGnu Clisp-2.49の

windowsバイナリに処理系変更しました。

設定後、REPLで

(ext:shell)

を入力してコマンドプロンプト起動時メッセージ出てきたら

extパッケージ入ってます。

slime側で上手くいかない場合は環境変数pathにclispのパス通すと

上手くいったりします。

 

他にもハマったこと出来たら追記すると思います。

 

早速追記:

エラーにwide characterとか書かれてたら

多分日本語等のマルチバイト文字が原因。

; コメントでも引っかかるのは予想外だった。

そのうち日本語対応の設定探そう。

 

2/23 Gnu Clispのバージョンを追記。

 

Emacs24.4でEvil

( ´_ゝ`)ノシ
この記事はEvil Advent Calender2014 6日目になります。
2015年になってしまいましたが今年のクリスマスまでには
25日分埋めていきたいです。

【宣伝】Emacs-jpでは毎週土曜日22:00よりinit.el読書会を行っております。
チャットサービスlingrでのオンライン開催です。
(facebookアカウントをお持ちならすぐログインできます。)
http://emacs-jp.github.io/reading-init.el/
毎週開いているのでinit.elを見てもらってアドバイスをもらうこともできますし、
プラグインについての情報を聞くことのできる詳しい方も参加しています。
(web検索で上位hitする記事より新しい情報聞けることもある)

1 Emacs24.4とEvil-1.0.8の問題

2014年にEmacs24.4がリリースされ、
gnupackでもEmacs24.4対応がリリースされて、
Emacs24.4にしたついでにEvil導入を考える方も
おられると思います。
ただ2015年1月現在、
Emacs24.4でEvilのstable、1.0.8を使用すると
Metaキーを使うキーバインド(M-のもの)が
undefindになる症状が発生します。
(Emacs24.4になって
Evil側のEmacsキーバインドを扱う部分に問題が生じたっぽい)

2 対策

対策としては以下のリンクのevil-1.0.9を使えば回避できます。
https://bitbucket.org/lyro/evil/downloads
元々のEvilをインストールしたフォルダの中身を
lyro-evil-XXXXXXXフォルダの中身に入れ替えると
動きました。
(もっとスマートな方法があるかもですが私は知りません。)
これでEmacs24.4でEvilライフを始められますね。


日々の暮らしにVimEmacsをEvilを。
Happy Evil life!

VimとEmacs、もしくはテキストエディタのカーソル移動

2015/12/19 viとemacsの基本的なカーソル移動操作の記事作りました。

↓今見てるこの記事はポエムなのでキーバインドが見たい方はココのリンクから↓

VimとEmacsのカーソル移動 - yoshitia’s diary

( ´_ゝ`)ノシ この記事はEvil Advent Calender 24日目になります。

Evil使いにだってクリスマスは来ます。Evilデクリスマス(´ω`)ハヤル!

目次

1 ついつい多用するカーソル1文字移動

Vim⇒Evilの皆さん、hjkl多用してますか?

Emacs⇒Evilの皆さんC-f、C-b、C-n、C-pを evil-insert-stateで
バリバリ使ってますか?
私は使ってます。

 ただ、そうやっていると、「hjkl(C-f、C-b、C-n、C-p)は2回か3回くらいで

それ以上は単語単位移動とか画面移動、 行指定移動を駆使した方がいい。」

とアドバイスされた経験はないでしょうか?

他のテキストエディタでも 方向キー以外の

カーソル移動用キーボードショートカット、 あると思います。

でも正直、hjkl押しっぱなしで足りてる、そう思います。

なら何のためにあるんだろう?

そう思ってた時期がありました。

2 良い道具がその力を発揮する時

昔居た職場で、そこそこいいお値段のする工具を買っては

「工具にそこまで金掛けなくてもいいだろう?」と

上司や経理に度々お小言をもらう先輩が居ました。

先輩曰く、「いい仕事をするならそれなりの道具が必要だ」と。

この辺りは道具にこだわる人なら良く主張すると思いますが、

次の一言は初めて聞きました。

「良い道具の真価は困難な状況で発揮される」

例えば、ネジを回すドライバーだと

買った値段がどうであれネジを回せるのは同じです。

しかし、古くなって、ネジ頭のドライバーを当てる部分が

すり減ってたりすると 道具の差が出てきます。

パッと見わからなくても古いネジを

簡単に回せるかネジ頭をダメにしてしまうか、

そこに道具の価値の差が出るのです。

3 多彩なカーソル移動方法の真価

カーソル移動の話に戻ります。

端的に言うとhjklや C-f、C-b、C-n、C-pで間に合ってしまうのは

現在のPCのスペックがviやEmacsなどが生まれた当時より高いからです。

vi開発当初時代のコンピュータに触れたことがないので伝聞になりますが、

キー入力がどうこう以前に、画面一杯にファイルの中身を表示することと

テキスト入力を同時に行うとすぐに動作が重くなったそうです。

そんな状況下でテキスト入力モードと

テキスト編集・カーソル移動用モードを分けたのはすごい発想だと思います。

ただ、モードを分けてても動作が重たかったので

なるべくカーソル移動のタイプ数を減らすために

画面移動・行指定移動・単語移動・行頭移動・行末移動と

多彩な移動方法を駆使して快適なテキスト編集を志向したようです。

 

私も似たような経験をしていれば「hjklは多用するな」

と言うと思います。

この先hjklを多用しても快適に動くマシンばかりの幸せが

ずっと続くか 誰にもわからないので。

4 これからのありそうな開発環境に備えて

近年スマホタブレットなど端末の小型化が

異様に進んでるように感じます。

Raspberry Piのような製品が

ますます一般向けのコンピュータを利用した製品の

小型化、低コスト化、大衆化を推し進めるだろう、

そう感じています。

 

近い将来、タブレット開発の次に小型コンピュータ開発が

盛んになるとしたら CUIがメインの開発環境になる可能性は

大いにあると思います。

そんな時、各種移動操作を身に着けてなくても

存在を知っていれば チートシートの一つも印刷して、

方向キーを使って頑張るであろう人を横目に

快適なテキスト編集をVimEmacsでEvilで楽しめると思います。

 

Evil、始めましょう。

 

日々の生活にVimEmacsをEvilを。

Merry Christmas!

Happy Evil life!

* Evilの:q

* ( ´_ゝ`)ノシこの記事はEvil Advent Calender 2014 5日目の記事です

** VimとEvilの違い

Evil話の前置きで「ロードスという名の島がある。・・・」なみに定型句となっている、
「Evil≠Vim
これは時として私のような貧弱な素Vimmerにも牙をむきます。

** VimmerからEvilに移ったら割と体験するイベント

今回はそのひとつexモードのコマンド:q[uit]です。
Evilデフォルトで使うとC-x C-cみたいな挙動になります。
ウィンドウ一つでメモ帳な使い方していれば問題ないですが
今時Emacs使う人はタブで複数のファイルを開くのが普通なので
ウィンドウ丸ごと閉じられて

( ^o^)< Evilすごい!再現度高い!
( ˘⊖˘) 。o(よし!exステートも試してみよう!)
:q |┗(☋` )┓三
( ◠‿◠ )☛ お前はEvilの闇を覗いてしまったのだ
▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああああああ

となった方は結構いると思います。
Emacsは一度起動したら起動しっぱなしの利用法がメインなので
うっかりでも起きると困りますね。

** ウィンドウ丸ごと閉じる悲劇は回避しよう

とりあえずの回避方法。

init.elに

(evil-ex-define-cmd "q[uit]" 'kill-this-buffer)

動作環境:windows7 Emacs 24.2 Evil 1.0.8

と書けばkill-this-bufferの挙動になるのでウィンドウ丸ごと終了は回避できます。
ただ、これだと現在編集中のファイルが変更未保存だと
保存するかどうか確認メッセージを出してきます。
:qとしては期待通りの挙動ですが、現状:q!でも挙動は同じです。
:q!の挙動が再現できれば便利だと思います。Emacsハッカーさんよろしくお願いします。
(他力本願)

** 意外とキーバインドやコマンド変更は簡単なEvil

Evilは各種キーバインド用関数をノーマルステートだと
(define-key evil-normal-state-map (kbd "使いたいキー")
'使いたい機能の関数。evilのじゃなくてもいい。)

exコマンドは簡単なものなら今回みたいな書き方でいけるようです。
(完全再現ではないですが)
Vimと比べてなら機能が関数名なので
書いて数か月後に、ぱっと見であれ?この設定なんだっけ?な事態は少な目。
便利。

* 素VimmerのEvil事始め

* * この記事はEvil Advent Calender 2014 2日目の記事です。

 

今年の8月からEmacsとEvilを始めた素Vimmer、 私( ´_>`)yoshitiaの話です。

このくらいの記事でも問題ないので見てる私よりできるEvil使いな方はちょっと本気出して記事書くだけでモテます。

 

** vimとの初遭遇

2007年頃、とあるIT企業が2か月研修してその出来で決める採用方法を行ってまして、それにホイホイ応募しました。
 研修の環境は研修生にWindowsXPのマシンが割り当てられている普通の環境でしたが、先生がどうもApple信者だったらしく、コーディング等はtera termからサーバ

(ログイン後メッセージにDarwinとあったのでMac OS X?)

に接続したアカウントごとのフォルダ内、メインの内容はhtml, cssに少々Cとかその他でした。やたらW3C標準の書き方へのこだわりとhtmlに半角カタカナがあるのを文字化けの元であると〓を書いて添削してました。

 あと、先生の趣味なのかhtmlの記事をフランス語の記号付き文字で書かせたり。ヒヨコのアイコンがトレードマークのようです。
(ここまでの情報で誰かわかる人は十中八九同じ先生に教えてもらってるはず)

 そして、テキストエディタコマンドラインについて教えていただきました。terapadと今回の記事の元、vimです。



** その後とVimとの付き合い

 結局その研修後採用はされませんでしたがVimの編集力が生かせる程度には使えるようになっていたのでIT業界にご縁ができる2013年後半まで、自宅のPCに@kaoriyaさん配布のVimを操作は忘れないようにと時折使っていました。

 今当時の私にアドバイスできるなら
「沖縄で素人がIT系に就職は無理ゲーだからさっさと東京行け。」

 

** Vimの本気を知る

 2014年の春ごろから東京に来たのを契機に、lingrvim部屋にログインするように。そこで見聞きするVimは私が以前教えられたVimとは別物でした。
(実はvi互換の機能以外は教えられてなかったっぽいのに気付いてきたのもこの時期)
プラグインで自動補完機能を付加出来たり、シェルが使えたりtwitterできたり・・・
今までキーバインドが元で敬遠してきたEmacsと何が違うんだ?、と同時に
組み込みのタブやファイラ機能を知り、今まで.vimrcをろくに書きもしなかったのはvimはあまり設定書かなくても大丈夫、ではなく、単にvimの性能に不満を感じるほど使い込んでなかった事に気づきました。

** そしてEmacs

 lingrにログインするようになってVimの知らなかった機能に触れるたびにVimの機能すごい(かなり)、とはなるのですがプラグインを積極的に導入する気にはなかなかなりませんでした。
(そのうちVimを簡易IDEを作ろうってなるまでは恐らくそのまま)

 根が便利なものがあってもそれがどうしても必要になるまでは手を出さない気質なものでこれから先この業界で働くにはいいものではないな、と始めたのがEmacsです。
(やっと出てきた)
今まで何度か手を出そうとしてきてやめた原因がVimmerに時折ネタにされる

EMACS(Enter Meta Alt Control Shift)
と言われる程修飾キーを多用するキーバインドです。(小指は大切に。)
始めてみようとしてC-f, C-b, C-n, C-pの前にくじけた人は多いと思います。
そこを敢えて始めようと思った動機は、rubyのパパことまつもとゆきひろさんが愛用しているエディタがEmacsだと知ったミーハーな理由と、@supermomongaさんイチオシのEmacsプラグイン、Evilでした。

 

** ただの食わず嫌いだったEmacsとEvilの力

 使ってみてわかったのは見出しの通りです。
Emacs実践入門とともに読んだプロダクティブ・プログラマの影響も大きいです。(かなり)
指は人間の好みと関係なしに操作に馴染んでしまえば違和感を感じなくなります。(Emacs導入と同時に親指シフト入力、NICOLAを導入しました。)
 当初はEmacsの操作に慣れようとEvil使わずに頑張ってたのですが、懸念してた通りにFP(Finger Point)が厳しくなったので導入しました。
親指シフトを導入したのも日本語文章のタイプ数を減らすためなので当然の結果でした。

 ようやくEvilどうなの?って話ですが、最高です。
未だviかvimの組み込み機能あたりにしか関心がなかったため、テキスト編集でvi並みの機能が使えれば私としては問題ないのです。
 おそらく、どちらかをヘビーに使い込んでるとVimらしくない部分、Emacsらしくない部分、が気になるはずですがどちらも深く使い込んでないため気にならない。
便利(かなり)
Evilの検索結果をインクリメンタルにハイライトできたり置換結果をインクリメンタルに表示を簡単にできるのは便利
(日本語検索が微妙に不便なのは秘密)

 

** これからテキストエディタを選ぶ人に

 テキストエディタと言うか道具の扱いは頭より体で覚えていくものです。
VimEmacsに限らず、新しいソフトの操作を覚えるのは確かに大変です。
しかし、結局覚えてくれるのはあなたの指なので頭で心配するだけ無駄です。
心配する暇があるなら覚えたい操作をその時間繰り返し練習すると幸せになれます。
そしてあなたが手に取るテキストエディタEmacsでEvilだとこの記事を書いた者として望外の喜びです。


プロダクティブ・プログラマは良い本です。買いましょう。


以上、素VimmerがEvilを始めるまで、でした。