SublimeText2でInputHelperを使っても日本語が入力できない(CentOS6.3)

昨日から使い始めたSublimeText2。かなりイケてるエディターで使いながら感心してた。もともとWindowsユーザの何ちゃってlinuxユーザの俺は、結局GVimを使いこなすことができず、Geditではプラグインをうまくインストールできず。SublimeText2にたどり着いたんだが……。日本語がうまく入力できないのだよね。Linuxでは。

で、検索すると「InputHelper」というパッケージを入れると良いよとでてきたのだけども。自分の環境にいれてもうまくいかないのよねぇ。InputHelperのウィンドーを呼び出して文字を入力するが、InputHelperもSublimeTextもフリーズする。エラー原因を見てみると、

(sublime:6712): Gdk-WARNING **: gdkdrawable-x11.c:952 drawable is not a pixmap or window

(sublime:6712): Gdk-WARNING **: gdkdrawable-x11.c:952 drawable is not a pixmap or window
Traceback (most recent call last):
  File "/home/kunren/.config/sublime-text-2/Packages/InputHelper/lib/linux_text_input_gui.py", line 28, in on_key_press
    self.print_text()
  File "/home/kunren/.config/sublime-text-2/Packages/InputHelper/lib/linux_text_input_gui.py", line 19, in print_text
    buffer = self.textInput.get_buffer()
AttributeError: 'gtk.Entry' object has no attribute 'get_buffer'
Traceback (most recent call last):
  File "/home/kunren/.config/sublime-text-2/Packages/InputHelper/lib/linux_text_input_gui.py", line 23, in destroy
    self.print_text()
  File "/home/kunren/.config/sublime-text-2/Packages/InputHelper/lib/linux_text_input_gui.py", line 19, in print_text
    buffer = self.textInput.get_buffer()
AttributeError: 'gtk.Entry' object has no attribute 'get_buffer'

という表示がでるんだが、意味が分からないorz なんちゃってユーザの限界である。誰か偉い人がたどり着いて解決してくれないかなぁ。無理かなぁ?まぁそのうち誰か良いインプットヘルパーを作ってくれることを期待しよう。

とりあえず、日本語に関しては、メモ帳か何かに書いておいて、それをペーストする感じで使おうと思う。
またそのうち使えるようになるかもしれないし、気長に待とうかな。しかし日本語が自然に使えないとなると、お金払うのちょっと迷うなぁ。でもメインで使うようになったら仕方ないので払うかな。

SublimeText2をCentOS6.3にインストール

Ubuntoでのインストール方法は結構見つかったが、CentOSでの方法が書かれているサイトが見当たらなかったのでメモ。まぁSublimeText2のサイトでも簡単に紹介されてるんだけど。何ちゃってlinuxユーザの俺には分からなかったのです。

今回パクら参考にさせていただいたのは、こちら([Submile Text2] Ubuntu へのインストール手順 | CodeNote.net)。

1.サイトからDLし、展開する。

2.展開したら端末を開いてコマンドを入力。以下同じ

sudo mv Sublime\ Text\ 2 /usr/lib/
sudo ln -s /usr/lib/Sublime\ Text\ 2/sublime_text /usr/bin/sublime
sudo sublime /usr/share/applications/sublime.desktop
[Desktop Entry]
Version=1.0
Name=Sublime Text 2
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Text Editor

Exec=sublime
Terminal=false
Icon=/usr/lib/Sublime Text 2/Icon/48x48/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
Exec=sublime -n
TargetEnvironment=Unity

5.アプリケーションメニューのプログラミンググループに有るSubmile Textのアイコンをデスクトップなりランチャーに固定する

rakeを実行するとエラーが出る

rake about

とすると

rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.

こんな感じでエラーが出る。そんなときはしかたがないのでGemfileに次のgemを追加する。

gem 'execjs'
gem 'therubyracer'

Gemfileを閉じたら、bundle installを実行してgemを更新。そうするとうまくいく。therubyracerに関しては、ぐぐったらそれが先に出たから使ってるが、別に他の演じんでも構わない。いろいろやって行く先で決めていけばいいと思う。

mysqlのバージョンを新しく(5.1→5.5)。ついでにPHPも新しく(??→5.4)。

mysqlのバージョンが古かったので、新しくした。

レポジトリはremiでやればOK。

yum install --enablerepo=remi php-mysql
yum install --enablerepo=remi mysql mysql-server
yum install --enablerepo=remi php

見たいな感じで。インストールについてはcentos6.3 yum mysql5.5見たいな感じでググった。

後は、mysqlの設定をえっちらおっちらやる訳だが、これについてはまぁ普通にやればいいだろう。とりあえず参考にするのは、はじめての自宅サーバ構築 – Fedora/CentOS – データベースサーバの構築(MySQL)

gitのバージョンを新しく1.7.1→1.7.11.3(CentOS6.3)

まだインストールしただけのgit。いつかは使わないといけないんだけど、まだまだ……。で、ふとバージョンを確認したところ、会社の開発機(CentOS6.3)のバージョンは1.7.1なんだが、sougetu.netの(CentOS5.9)上のバージョンは1.7.11.3。なんかバージョンが食い違うと要らぬ手間がかかるのではないかと考えた。

そこでちょこっとググってみると、CentOS 6のgitバージョンを1.7.1から新しくする – torutkの日記というサイトを見つけたので早速パクる参考にした。
それによると、とりあえず、今入っているgitとPerl-Gitをアンインストールする必要が有る。

yum remove perl-Git

と入れると、perl-Gitおよびgitがアンインストールされる。
次に、RPM-Forgeから

  • git-1.7.11.3-1.el6.rfx.x86_64.rpm
  • perl-Git-1.7.11.3-1.el6.rfx.x86_64.rpm

の二つをDLする。サイトはこちら。記事より新しいバージョンは見当たらなかったので、これでよしとするが、将来的にもっと新しいバージョンが配られてたらそれに乗り換える必要が有るだろう。でも、sougetu.netの方は5.9なので、CentOS6用と5用の両方のRPMが必要になるね……。まぁ何とかなるか?

で、RPM-Frogeから、wgetでファイルをDLし、yum localinstallでインストールする。上記二つのRPMは相互に依存関係が有るとかで、同時にインストールしないとダメという制約が有る。

yum localinstall git-1.7.11.3-1.el6.rfx.x86_64.rpm \
perl-Git-1.7.11.3-1.el6.rfx.x86_64.rpm
git --version

で確認すると1.7.11.3となって無事成功。

CentOSの日本語入力(Anthy)で顔文字を。

というわけで、Linux初心者の会のページにある「Anthyに顔文字辞書登録」のページをそのままパクって顔文字を導入(・ω・)ノ

まぁあまり種類は多くないが別に多少使えれば良いだけなので……。

例示ではapt-getでやってたが、yumでも同じパッケージをインストールできた。

lhaもlinuxにあるんだなぁ。懐かしい。

単純な手順としては、

yum install lha kasumi nkf
  • nkf…ネットワーク用漢字コード変換フィルタ
  • lha…高圧縮アーカイバ
  • kasumi…Anthy用個人辞書管理ツール

して、顔文字辞書をここからDL。辞書名は「顔文字一覧 テキスト辞書インターネット対応(orange31-tz.lzh)」

で。DLしたディレクトリにCDして

lha x orange31-tz.lzh

解凍されたフォルダにCDして

nkf --ic=CP932 -w list.txt | awk 'FS="\t",OFS=" " {print ($1,"#T35*100",$2);}' | sort | tail -n +4 > private_words_default

すると、「private_words_default」というファイルができる。これをkasumiで取り込む。

private_words_defaultがあるディレクトリで

kasumi -m

を実行すると、kasumiが起動し、顔文字の一覧が表示されるので、保存を押す。しばらくすると保存され、画面が閉じる。(元ページでは画面が閉じるとは言ってない。OSなどの違いかな?動作不良?)で、最後に「顔」と打って変換すると顔文字の出来上がり。

 

RSpecとCucumber

本を2冊買ってみた。

一冊は「The RSpec Book」Amazonで買った普通の本。もう一冊は「はじめる! Cucumber」達人出版会で買ったPDFの本。

久々にプログラムを始めるに当たって、いろんな作法を忘れているのでついでに新しい作法を身につけさせようと考えている。その手始めがテスト駆動開発と振舞駆動開発。うまくいくかどうか分からないけど、今、ちょっと本を読んでサンプルをしている分にはすごく楽しそうなので頑張ってみる。

しかしこの調子だと本開発にたどりつくのはいつの日か……

 

はじめる! Cucumber
諸橋恭介
達人出版会
発行日: 2010-10-31
対応フォーマット: EPUB, PDF

ネットワークドライブ(NASなど)で接続が切れる問題を解消する

会社にて。NASの接続が勝手に切れる現象に困っていた。特に困るのが、WordやExcelを開きっぱなしで席を離れ、戻ってくると接続が切れていて上書きできなくなったりするケース。最近、これがよく起きていて困っていた。検索してもうまくヒットしないし……。

が、今日たまたま検索したところ、ネットワークドライブの自動切断を無効にするという記事を見つけた。助かった。

net config server /autodisconnect:-1

 

と管理者権限のコマンドプロンプトで入力するとうまくいくことが分かった。知らなかったぜ。賢くなった。

Vim初心者がいろいろググって作ったvimrcを晒してみる

ここ2、3日必死でググっていろいろ悩んだり試行錯誤した結果出来上がった.vimrcを晒してみる。晒すというより、自分用のメモのようなもの。

こうすると楽だよ!とか初心者だからこれを入れてみて!というのがあったら教えてください。

参照したサイトはたくさんありすぎて訳分からなくなってますが、メインは

使用目的とかも書いておく。そうじゃないと見る人意味分からないよね。

  • 利用OS:CentOS6.3(会社では開発機、家ではVirtualBox)
  • 利用用途:ruby学習およびRails開発
  • gitも使えるようになる予定
"====================
" START NeoBundle設定
" NeoBundleInstall  プラグイン新規追加時のインストール
" NeoBundleInstall! プラグインの更新
" NeoBundleClean    プラグインの削除
"====================
set nocompatible "Vi互換をオフにしてVimの機能を有効化する
filetype off
filetype plugin indent off

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
  call neobundle#rc(expand('~/.vim/bundle/'))

endif
" githubにあるプラグインのインストール
NeoBundle 'Shougo/neobundle.vim'        "NeoBundle
NeoBundle 'scrooloose/nerdtree'         " NerdTree
NeoBundle 'Shougo/vimproc'              " 非同期実行ライブラリ。makeしている間もvimが動くようになる
NeoBundle 'Shougo/vimshell'             " vim上からshell起動できる :VimShell
" NeoBundle 'Shougo/unite.vim'      " ファイラー兼ランチャー NerdTreeあるから要らない
NeoBundle 'Shougo/neocomplcache'    " 挿入モードで入力中、様々な補完候補を元に自動的にポップアップ表示してくれる。
NeoBundle 'Shougo/neosnippet'       " スニペットプラグイン今はまだ便利さが分からない
NeoBundle 'thinca/vim-quickrun'     " 編集中のコードに対して、ショートカットで実行結果をsplitウィンドウに表示してくれる ノーマルモードで \ + r を押す
"NeoBundle 'Lokaltog/vim-easymotion'    "カーソル移動せずに任意の場所へキー入力で移動する
NeoBundle 'vim-ruby/vim-ruby'           "rubyのオムニ補完 <C-o>で補完候補を表示、<C-n>で次の候補、<C-p>で前の候補、<C-y>で決定。
NeoBundle 'tpope/vim-rails'             "超便利らしいんだが……
NeoBundle 'tpope/vim-fugitive'          "vimからgitを動かすツール :G<command> みたいな使い方
NeoBundle 'scrooloose/syntastic'        "自動文法チェックrubyも対応している

filetype plugin indent on     "最後にplugin onにしておく。必須!
"====================
" END NeoBundle設定
"====================

"====================
" START NerdTree 設定
"====================
" 引数なしで実行したとき、NERDTreeを実行する
let file_name = expand("%:p")
if has('vim_starting') &&  file_name == ""
    autocmd VimEnter * call ExecuteNERDTree()
endif

" カーソルが外れているときは自動的にnerdtreeを隠す
function! ExecuteNERDTree()
    "b:nerdstatus = 1 : NERDTree 表示中
    "b:nerdstatus = 2 : NERDTree 非表示中

    if !exists('g:nerdstatus')
        execute 'NERDTree ./'
        let g:windowWidth = winwidth(winnr())
        let g:nerdtreebuf = bufnr('')
        let g:nerdstatus = 1 

    elseif g:nerdstatus == 1 
        execute 'wincmd t'
        execute 'vertical resize' 0 
        execute 'wincmd p'
        let g:nerdstatus = 2 
    elseif g:nerdstatus == 2 
        execute 'wincmd t'
        execute 'vertical resize' g:windowWidth
        let g:nerdstatus = 1 

    endif
endfunction
noremap <c-e> :<c-u>:call ExecuteNERDTree()<cr>
"====================
" END NerdTree 設定
"====================

"====================
" START vim-ruby 設定
"====================
let g:rubycomplete_buffer_loading =1
let g:rubycomplete_classes_in_global =1
let g:rubycomplete_rails =1

imap <C-o> <C-x><C-o>	"キーマップをC-oに
"====================
" END vim-ruby 設定
"====================

"====================
" START syntastic 設定
"====================
let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=2
"====================
" END syntastic 設定
"====================

"====================
"Helpを日本語に
"====================
helptags ~/.vim/doc
set helplang=ja,en

"====================
" マウスを有効に? In many terminal emulators the mouse works just fine, thus enable it.
"====================
if has('mouse')
  set mouse=a
endif

"====================
" BEGIN ファイル操作
"====================
set encoding =UTF-8 "標準文字コードをUTF-8に指定する
set hidden           "ファイル変更中でも他のファイルを開けるようにする
set autoread         "ファイル内容が変更されると自動読み込みする
"====================
" END ファイル操作
"====================

"====================
" BEGIN インデント
"====================
set cindent         "C言語のインデントに従って高度な自動インデントを行う
set expandtab       "Tabの代わりにSpaceを挿入する。Tabを打つ時は'Ctr-V Tab'。
set smarttab        "行頭の余白内でTabを打ち込むと、'shiftwidth'の数だけインデントする
set shiftwidth  =4
set tabstop     =4 "タブの文字数を設定する
set softtabstop =4 "ファイル内のTabが対応する空白の数
"====================
" END インデント
"====================

"====================
" BEGIN バックアップ
"====================
set backupdir =$HOME/.vim/backup "バックアップ先を指定する
set directory =$HOME/.vim/backup "スワップファイル先を指定する
set browsedir =buffer            "ファイル保存ダイアログの初期位置をバッファファイル先に指定する
set history   =1000              "履歴数
"====================
" END バックアップ
"====================

"====================
" BEGIN 検索
"====================
set incsearch  "インクリメンタルサーチを行う
set hlsearch   "検索結果をハイライトする
set ignorecase "検索時に文字の大小を区別しない
set smartcase  "検索時に大文字を含んでいたら大小を区別する
set wrapscan   "検索をファイルの先頭へループする
"====================
" END 検索
"====================

"====================
" BEGIN 入力操作
"====================
set backspace =indent,eol,start
set whichwrap =b,s,h,l,<,>,[,] "カーソルを行頭、行末で止まらないようにする
"====================
"END 入力操作
"====================

"====================
" BEGIN 画面表示
"====================
colorscheme desert "Vimの色設定
syntax on          "シンタックスカラーリングを設定する
set laststatus =2 "ステータスラインを常に表示する
set number         "行番号を表示する
set title          "編集中のファイル名を表示する
set showcmd        "入力中のコマンドを表示する
set ruler          "ルーラーを表示する
set showmatch      "閉じ括弧の入力時に対応する括弧を表示する
set matchtime  =3 "showmatchの表示時間
set list           "タブ、行末等の不可視文字を表示する
set listchars=eol:$,tab:>\ ,extends:< "listで表示される文字のフォーマットを指定する
"====================
" END 画面表示
"====================