投稿

12月, 2012の投稿を表示しています

またVimのビルドした

先日、技術書の添付ディスクないのファイルを開く際、そのファイルがsjisでして、しかもオレオレビルドVimのiconvが無効になっており、という…_:(´ཀ`」 ∠):_ 加えて、どうもMac標準のgccとMacPortsとかで入れたgccだと違いがあるようだったので 改めてまとめ直すことにしました。 基本的にはMac環境ですが多分Unix系ならほとんど同じはず… ソースとパッチをダウンロードして、パッチを当ててからmakeします ソースは http://www.vim.org/sources.php パッチは ftp://ftp.vim.org/pub/vim/patches/7.3/ からダウンロードします 今回はpluginで必要だったのでPythonも有効にします Pythonは全くわからないで、ただMacPortsから突っ込んだだけです さて、通常のMac環境ならパッチを当ててmakeするだけでいいのですが MacPortsでインストールしたgcc48を使ってみようと思います 正直、使ってみたかっただけなのに少し面倒だった… 環境変数はこんな感じに設定してます。 PATHの設定はむずかしい # MacPorts export PATH=/opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/man:$MANPATH # For Compiler export BOOST_ROOT=/opt/local/include/boost export CPLUS_INCLUDE_PATH=/opt/local/include:/usr/include export CPLUS_LIBRARY_PATH=/opt/local/lib:/usr/lib export C_INCLUDE_PATH=/opt/local/include:/usr/include export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:/usr/lib export LD_LIBRARY_PATH=/opt/local/lib:/usr/lib export LIBRARY_PATH=/opt/local/lib:/usr/lib #

VimScriptで区切り文字までをサクサク削除できるやつ書いた

はい、タイトルの通りです。 普段、かなり使うコマンドの一つに以下のものがあります。 dfX - 文字Xまで削除 (Xを含む) dtX - 文字Xの前まで削除 (Xを含まない) cfX - 文字Xまで削除し、インサートモードへ (Xを含む) ctX - 文字Xの前まで削除し、インサートモードへ (Xを含まない) ランダムなアルファベットの時などは別によいのですが コードを書いていてセミコロンの前まで消したい時、閉じ括弧の前まで消したい時などがあります。 そんな時に毎回毎回同じようなコマンドを打つのは面倒です。 "."は使いますがそれでもVimを開くたびに打ち直すのすら面倒_(:3」∠ )_ ということで、現在のカーソル位置から予め設定した、任意の区切り文字まで上記の4つのコマンドを実行出来るVimScript書きました。 VimScriptの練習にもなっていいことです(・∀・)。 " 区切り文字までを削除する " @isInsert 削除後に挿入するか否か " @isInclude 区切り文字を含むか否か function! g:deleteDelimitChar(isInsert, isInclude) " 区切り文字リスト 優先順位はリストの並びごとに高→低 let l:delimitList = [';', ':', ')', '}', ']', '.', '"', ''''] let l:cursolPos = getpos('.') " 現在カーソルのある列、以降の文字列を取得(カーソル文字も含む) let l:afterCursolStr = strpart(getline(line('.')), remove(l:cursolPos, 2) - 1) " 区切り文字のいずれかがあるか検出 for l:i in l:delimitList " 区切り文字が存在すれば削除処理開

xspim ビルド しました

イメージ
大学でアセンブラ課題がでました 大学環境だとxspimを使います。 ですが、家でやりたい時とかに面倒なので、自分のMacに入れました。 最新のだと結構かっこいいQtSpimというのがあるようなので 普通はこっちを使えばいいと思います http://spimsimulator.sourceforge.net/ 一応、大学にあわせてxspimをビルドします。 まずはソースのダウンロード http://spimsimulator.svn.sourceforge.net/viewvc/spimsimulator/ Download GNU tarballを押せばおk tar -xvf spimsimulator.tar.gz cd spimsimulator/xspim 普通に解凍し、移動します。 次にMakefileのインストール場所と例外時のファイル?とManファイルのパスを変更します。 別にしなくてもいいですが、その時はexception.sを(ディレクトリがない場合は作って)/usr/share/spimに移動させておかないと起動しません。 1080行目辺りに BIN_DIR - インストール場所 EXCEPTION_DIR - exception.sの場所 MAN_DIR - manファイルの場所 があるのでそれぞれ任意の場所に書き換えます。 exception.sはspimsimulator/CPUの中、manファイルはspimsimulator/Documentation内です。 manは詳しく知らないのですがファイル名をspim.manからspim.1のようにしておくと正常にman spimで見れました。 あとは普通にmakeです make make install パタヘネをちゃんと読みたい…

Rogue を Mac OS X で ビルドした

イメージ
先日Rogueという古い古いRPGがあって、基本の移動キーがhjklだと聞いて興味を持ったのでインストールしました。 というわけでメモです。 以下のページからRogue 5.4.4のソースを引っ張ってきてビルドしました。 Rogue なんか色々バージョンがあるようですがUNIX上の最終バージョンが5.4ということでこれにしました。 tar -xvf rogue5.4.4-src.tar.tar.gz ./configure make make install オプションはチートモードとかいろいろありましたがつけませんでした で、早速やってみたところ 死! なんかよくわからんまま死にました(´○ω○`) 意外とおもしろいかもです。

Vimの基本と考察と !

イメージ
おはようございます. もぷりです. おはようございますって言うと何時でも朝っぽくなるから良いあいさつですね. さて、某とっぷ氏が企画した Aizu Advent Calendar 3日目の記事です. Vimについて書きます. といっても、いつものような設定ファイルなどではつまらないので 私的な考察や以前からまとめて見たかったHowToVimなど書いてみます. Mac, Unix系向けです。 初学者向けですのでProVimmerや闇Vimmerの方には無用の長物でありましょう. 加えて、近いうちにAizuの地でVim勉強会を開催しようと考えていますので その時の資料にもなればいいかなあなどと考えています :) はじめに 私はVimが好きです. Vim歴は浅いですが設定をいじったりコマンドを叩いていると楽しいです. 大したプログラムは書けませんのであしからず。 なんでVim使ってるの?すぐに慣れた? と極稀に聞かれますが、そこまで深い理由があるわけではないです. 以前はWindowsでEmEditorやNotepad++など使っていました. MacやLinuxでターミナルを使い始めた時にemacsとVimという二大宗派があるらしいということを知り sshで便利だし、名前もこっちのがいい響きかなとかそんな適当な感じで使い始めた気がします. で、使ってみるとなかなか面白いし使い勝手が非常にいいわけでして… 大学にいったらこういうの得意な人とかいっぱいいるといいな、と考えていたわけですが、 残念なことに大学ではemacsがデファクトスタンダードでした. 一番初めに教わるのは環境の説明、ワークステーションのログイン、emacsの基本操作だった気がします. そんな中で、めげずに友人たちにも薦めていますがなかなか使ってくれません. 強要するものではないので仕方ないですね. あ、誤解を招かないように添えておきますが、宗教戦争をする記事ではありません. emacsも良い環境だと思います. Shell機能がとても便利そうですし、Twitterもできるし、なんかミニゲームとか入ってるし、elispとかもありますし…. どちらか片方(もしくは両方)を使いこなし、気持ち悪い指の動き(音ゲ

型サイズ出力

いろいろ出力 #include<stdio.h> int main(void){ char a1; short a2; int a3; float a4; double a5; // 型サイズ アドレスのサイズ アドレス printf("char %d, %d, %p\n",sizeof(a1),sizeof(&a1),&a1); printf("short %d, %d, %p\n",sizeof(a2),sizeof(&a2),&a2); printf("int %d, %d, %p\n",sizeof(a3),sizeof(&a3),&a3); printf("float %d, %d, %p\n",sizeof(a4),sizeof(&a4),&a4); printf("double %d, %d, %p\n",sizeof(a5),sizeof(&a5),&a5); return 0; }