投稿

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

つくったVim PluginとつかったVim scriptのはなし

イメージ
この記事は Vim Advent Calendar 2013 の 12日目の記事です。

もう12月も半ばですね。 みなさまは年の暮れに向けていかがお過ごしでしょうか。 私の場合、Plugin作りがなかなか進まず、苦しい年末が近づいております。
さて、今回は自分で作ったPlugin4つの紹介とその時に知ったVim scriptについてのことを書こうと思います。
まずは一つ目です。 Vim scriptをVim Pluginとするにはディレクトリを分けるなど Vim Pluginとしてのルールがあります。 ですが、「あっ、これPluginにしよう!」と思った時にmkdirやtouchコマンドを連打するのは面倒です。 :help write-plugin にもある通り、Pluginとするにはディレクトリを分ける必要があります。 直ぐにパッと作って行きたい、Pluginを作りはじめるまでをカイゼンしようというわけです。
そんなときに使うために作ったのがこれです。 mopp/layoutplugin.vim Vimからディレクトリ、スクリプトファイル、README.mdをパッと作ってくれます。
スクリプトファイルの中身もテンプレ的に出力してくれます。


2つ目です。
githubをふらふらしていた時にたまたま見つけた、
数年前にmattnさんが作ったgooglesuggest-complete-vimをneocomplete.vim向けにラップしました。
mopp/googlesuggest-source.vim 自動でgoogle補完力で入力ができます。
個人的に5分で出来たにもかかわらずなかなか面白いなあと感じております。
ただ少々不安定なのは通信をするからでしょうか…
そういうときはインサートモードで<C-U>するとよいです。


3つ目です。 molokaiのような色合いが好みなのですが コメントの色など不満が幾つかあったのでmolokaiを元に自分のカラースキームを作りました。
mopp/mopkai.vim もぷかいと読んでやってください。
molokaiよりも強めのカラーリングのつもりです。
自分のためのカラースキームなのでこれからもガンガンいじっていく予定です。

4つ目です。
先日のvimrc読書会で誰かこれをPlugin化という話が挙がっていたのでささっと…

OSの超簡単なメモリ管理を実装するおはなし

この記事は Aizu Advent Calendar 2013 6日目の記事です。
前日は「Aizu Advent Calender 5日目(ダイエット成功したかも知れません)」でした。

おはようございます。 もぷりです。 最近すっかり寒いですが、皆様いかがお過ごしでしょうか。 私は今、胸部に痛みを感じつつキーを叩いております。
さてさて、今年もAdventな季節がやってまいりました。
今回は自分の作ってるOSでとりあえず実装した簡単なメモリ管理について書きます。 間違いなどの指摘があれば@Mopp_jpでもissuesでもなんでもよいのでぜひ言ってください。
リポジトリはこれです。 もぷりんOS
まず、メモリの管理とは 「OS内でハードウェアからのメモリ情報を使って 動的なメモリ確保を行えるようにする。」 ということです。

もっと簡単に言うと使っているのか使っていないのかを自動で判断してメモリ割り当てをしてくれるって意味です。

順を追って説明をします。
まず、OSはブートローダというOSを起動するだけ+αのソフトウェアから起動されます。 具体的にはgrubとかLILOですね。 で、このブートローダはBIOSが起動します。
BIOS → ブートローダ → OS → ζ*'ヮ')ζ<うっうー
このように起動していきます。 ちなみに、もぷりんOSでは色々とめんどかったのでgrubから起動されること前提で作っています。
先に言ったように、ブートローダはOSを起動するだけ+αです。 ですが、とても大切ですので簡単に説明します。
OSの実行ファイルをデバイスから探す OSの実行ファイルをメモリに読み込む ハードウェア情報、BIOSコールの戻り値などをメモリに置いておく 読み込んだOSの実行ファイル先頭部分へジャンプ
この4ステップです。 シンプルですねー(※1ステップ目以外)
このOSが起動した時点で、メモリについて考えてみます。 はい、なにもないですね。 ですので、とりあえずOSはセグメントというものを設定します。 セグメントもメモリに関係するものでメモリの使用用途や権限を定めるものです。 (※セグメントも大事なことなのですが今回は説明しないですすいませんです。)
他にも割り込みなどいろいろと設定するものがあります。 どれもこれもコンピュータ上のデータであるからにはメモリ上に存在していなければなりません。 しかし、まだ、動的…