2015/11/30

vim で Esc キーを押すと fcitx を OFF にするとか

メインで使っているエディタが Sublime Text な無銘闇人です。

そんなことはさておき、サーバや PC の設定を端末エミュレータで操作している時に、テキストファイルを軽く修正することなんてよくあります。さすがに毎回、Sublime Text を開くのは仰々しくて (既に別のプログラムのソースでタブがいっぱいの時とかは起動が重いし)、そんな時は結局 vim で編集してたりします。

そして、時々、後々のためと思って、何のディレクトリかの説明を README.txt なんてファイルに残したりするのですが、vim で日本語を入力すると、以下の手順を踏むことになるわけです。
  1. i で vim のインサートモードに切り替え
  2. 全角半角キーを押して、Fcitx の mozc を ON にして日本語入力モードに切り替え
  3. 日本語で説明を入力
  4. 全角半角キーを押して、Fcitx の mozc を OFF にして英数字入力モードに切り替え
  5. Esc キーを押して vim のノーマルモードに切り替え
4 と 5 はどちらからやってもいいのですが、時々 4 の操作を忘れたままノーマルモードに入って、保存しようとすると、全角で「:wq」となってコマンドを受け付けてくれないのですよね。そもそも、ノーマルモードで日本語を打つことはほとんどないので、4 と 5 が同時に終わってくれれば助かるのです。

で、私がしようとしていることは、もう大抵のギークな人たちがたどり着いているので、検索するだけで解決策を紹介するページがわんさか出てきます。インターネットバンザイ!

代表的なのは 3 つでしょうか。

私のオススメは「Linux の IM (InputMethod) の Fcitx を gVim で快適に使うプラグイン - 地獄の猫日記」で紹介されているプラグインを使う方法。
NeoBundle というプラグイン管理マネージャを導入すれば楽々です。NeoBundle の導入については「NeoBundleによるVimプラグイン管理とおすすめプラグイン - Catcher in the tech」で。

2015/11/08

image-manipulator の更新とか

Linux ディストリビューションのファイルマネージャ (Nautilus や Nemo) で、まとめて画像を変換するスクリプト「Image Manipulator」の Ver. 1.2 を公開しました。

ダウンロードはこちらから。

導入方法や使い方は過去記事を見てください。

Changelog は以下の通り。
  • ファイル名にスペースを含む画像に対応
  • 出力設定を作業ごとに尋ねるように設定 (v1.1 ではスクリプトにデフォルトの挙動を記述していた)
  • トリミング用スクリプト (Trimming) を追加

Trimming の使い方
  1. トリミングしたいファイルを選択
  2. 右クリックメニューから「スクリプト」→「image-manipulator」→「Trimming」をクリック
  3. 余白サイズを設定
    • 画像の例だと、縦と横に、画像の 10 % の余白をそれぞれ挿入します。
    • ピクセル単位でも設定できます。
    • imagemagick の convert や mogrify の -border オプションに当たります。
    • キャンセルボタンをクリックすると、終了します。
  4. 余白の色を設定
    • 余白の色をカラーピッカーや、カラーコードで指定します。
    • imagemagick の convert や mogrify の -bordercolor オプションに当たります。
    • キャンセルボタンを押すと、透過色 (none) が指定されます。
  5. 出力するファイルを末尾に _trim を付けて別名で保存するか、上書きするかを選択
    • キャンセルボタンを押すと、終了します。

Protein Data Bank ファイルの vim 用 syntax ファイルを作ったよとか

仕事で分子情報を扱っている無銘闇人です。

さて、今回は誰の役に立つか分かりませんが、タイトルの通り、Protein Data Bank 形式 (*.pdb) の syntax をハイライトする vim ファイルを作ったので公開しました。
ダウンロードはこちらから。

2015/09/28

VMD を起動できない問題を解決する方法とか

前にも解決したけど、分子モデリングプログラム Visual molecular dynamics (通称: VMD) で再インストールした際にまた躓いて、面倒だったので、その備忘録。


インストール後、端末などから実行しようとすると、rlwrap 絡みのエラーで実行できない(バージョン 1.9、1.9.1、1.9.2 で発生するっぽい)。
実行するとこんな感じ↓
$ vmd
rlwrap: No match.

調べた所、VMD を再インストールするとか、rlwrap をインストールするとかどうしようもないことが書かれているサイトもあったけど、最終的にVMD のメーリングリスト「VMD-L Mailing List」に解決方法が載っていた。

/usr/local/bin/vmd にある以下のソースを見つける (detect あたりで検索するとヒットする)
# detect if we have rlwrap available to have commandline editing                  
set vmdprefixcmd=""
if (("${ARCH}" == "LINUX") || ("${ARCH}" == "LINUXAMD64")) then
  set rlwrap=`which rlwrap`
  if ( -x "$rlwrap" ) then
    if ( -f ${MASTERVMDDIR}/vmd_completion.dat ) then 
      set vmdprefixcmd="rlwrap -C vmd -c -b(){}[],&^%#;|\\ -f ${MASTERVMDDIR}/vmd
    else 
      set vmdprefixcmd="rlwrap -C vmd -c -b(){}[],&^%#;|\\ "
    endif
  endif
endif
それを以下のように行頭に「#」を付けてコメントアウトする。
# detect if we have rlwrap available to have commandline editing                  
set vmdprefixcmd=""
if (("${ARCH}" == "LINUX") || ("${ARCH}" == "LINUXAMD64")) then
  set rlwrap=`which rlwrap`
#  if ( -x "$rlwrap" ) then
#    if ( -f ${MASTERVMDDIR}/vmd_completion.dat ) then 
#      set vmdprefixcmd="rlwrap -C vmd -c -b(){}[],&^%#;|\\ -f ${MASTERVMDDIR}/vmd
#    else 
#      set vmdprefixcmd="rlwrap -C vmd -c -b(){}[],&^%#;|\\ "
#    endif
#  endif
endif
すると、すんなり動く。
ちなみに、/usr/local/bin/vmd は管理者権限でしか編集できない。


余談だが、Ubuntu や LinuxMint での VMD のインストール方法は以下のとおり。
  1. VMD - Visual Molecular Dynamics」の「Download VMD」から自分のアーキテクチャに合ったファイルをダウンロード (今回は Linux_64 OpenGL, CUDA を選択)
  2. ダウンロードしたファイルを展開
    $ tar axvf vmd-1.9.2.bin.LINUXAMD64.opengl.tar.gz
  3. configure でアーキテクチャを指定
    $ cd vmd-1.9.2
    $ ./configure LINUXAMD64
  4. インストール
    $ cd src
    $ sudo checkinstall

この場合だとアンインストールは以下のコマンドで OK。
$ sudo dpkg --purge vmd

2015/09/18

Gnuplot で Å を出す方法とか

gnuplot で「Å」を出す方法という訳で、ググると「encoding を iso_8859_1」にするというサイトが上位に上がっていますが、最近は UTF-8 という素晴らしい文字コードがあるので、それを使うと幸せになれたりします。
テキストエディタ作成したファイルを読み込ませてグラフを表示するとか…。

やり方は、「set encoding utf8」を実行してから、ラベルやタイトルで「Å」の入った文字列を入力するだけ。

ちなみに、Ubuntu や LinuxMint で、Å を ibus を使わずに入力するには、
Ctrl+Shift+u → 00c5 → Space
で入力できます。
他のアプリケーションでもこの入力が使えます。もちろん、LibreOffice でも…。

ちなみにちなみに、00c5 はコードポイントと呼ばれる数字で、これを変えると他の文字も入力できます。コードポイントについては、以下のサイトで検索するといいかも。