タグ

ブックマーク / www.kaoriya.net (12)

  • Vimmerに捧げる正規表現の基礎中の基礎 — KaoriYa

    正規表現はVimに限らずコンピューター上でのテキスト操作において非常に強力です。 しかし学習の難しさも非情で多くのIT技術者、Vimmerが正規表現に苦しんでいるのを幾度となく目の当たりにしています。 ただ正規表現は当にそんなに難しいのでしょうか。 いいえそんなことはありません。 正規表現は来とても簡単な原理で学習も容易なのです。 にも関わらず難しいと思われてしまうのは、原理を理解しないまま外見上の機能をそのまま覚えようとするからです。 記事では正規表現の原理にフォーカスし解説することで、Vimを含む様々な正規表現実装の利用難度を適切にしようという記事です。 記事は Vim Advent Calendar 2019 の1日目の記事です。 「正規表現」はもともと形式言語という言語学の一分野の研究から生まれました。 言語学というのは言葉を科学的に研究する学問です。 形式言語はその中でも

    barlog
    barlog 2019/12/24
    “Vimmerに捧げる正規表現の基礎中の基礎”
  • golang は ゆるふわに JSON を扱えまぁす! — KaoriYa

    以下のツイートにもある通り、一見 golang は struct を定義しないと JSON を扱えないように見えます。他にも似たようなツイートをチラホラと見かけましたが、それらは全部誤解です。そこでこの記事では、golang でゆるふわ (structを定義せず) に JSON を扱う方法を紹介します。 golangrubyのようにゆるふわにJSONは扱えない? https://t.co/olsryDHc5G — bamchoh (@bamchoh) 2016年6月24日 この記事では入力の json.Unmarshal() を取り扱いますが、出力の json.Marshal() にも応用できます。 TL;DR json.Unmarshal() には *interface{} を渡せます interface{} は dproxy を使うと、値のアクセスで楽ができます json.Unmar

    barlog
    barlog 2016/06/27
  • Vim の配布場所を github に変更しました — KaoriYa

    香り屋版の Vim の一次配布場所を github の releases に変更しました。今後は以下のURLより最新版の香り屋版 Vim にアクセスしてください。 最新リリース情報: https://github.com/koron/vim-kaoriya/releases/latest 過去のリリース情報: https://github.com/koron/vim-kaoriya/releases また vim-jp より、各最新バイナリへのショートカットURLが提供されています。クッションページを挟む形になりますが、必要に応じてご利用ください。 Windows 32bit版 : http://vim-jp.org/redirects/koron/vim-kaoriya/latest/win32/ Windows 64bit版 : http://vim-jp.org/redirects/

    barlog
    barlog 2015/02/04
  • Vimにrevコマンドを実装してみた — KaoriYa

    この記事は Vim Advent Calendar 2014 3日目の記事です。 前説 VAC2014 のネタを全く考えていなくて、ぜんぜん思いつかなくて困っていたところ 面接官「テキストに書かれた4行をキーストローク5回で確実に上下反転させるにはどうしたらいいですか」 KoRoN「ちょっとvimのソース弄って来る」 mattn「五人だけに誤認逮捕でしょ」 thinca「普通に無理なんじゃ」 Shougo「そのまさかだ!」 一同「言わせねぇよ!」 — mattn (@mattn_jp) 2014, 12月 1 まっつんさんから急にネタを振られたので @mattn_jp :rev<ENTER> — MURAOKA Taro (@kaoriya) 2014, 12月 1 やってみることにしました。 ということで早速 :reverse コマンドを作ってみましょう。 調査 まずは :sort が、

    Vimにrevコマンドを実装してみた — KaoriYa
    barlog
    barlog 2014/12/03
    香り屋さんを見ておけば問題はない。というアーティクル
  • コードに色を付ける beni を書いた — KaoriYa

    ソースコードにシンタックスに応じた色を付ける code syntax highlighter を golang で書いたので 紹介します。 beni - code syntax highlighter written in golang 皆さんは code syntax highlighter (以下ハイライター)って知ってます? & 使ってますか? githubgist にコードを貼ると、言語の文法に応じてカラフルに表示してくれるアレですね。なのでこの記事を読むような人は、まず使ったことがあるんじゃないでしょうか。 ちなみに git はたぶん pygments です。私はこのサイトなどでは、最近 pure ruby な rouge を使うようになりました。jekyll から使う場合には、 python (しかも2.x限定) に依存してしまう pygments.rb よりは roug

    コードに色を付ける beni を書いた — KaoriYa
    barlog
    barlog 2014/09/24
  • FcitxでVimからIM制御する — KaoriYa

    過去にも何度か取り上げてきましたが、Linuxでの日語制御にはとても難しい問題が常につきまといます。 Ubuntu上のVimでIME(ibus)制御 iBusがクソになった理由 私は以前から書いているとおりXubuntuを使っているのですが、iBusに愛想を尽かして以降はUIMでMozcを使うようになっていました。しかし結構な頻度で、急にIMが利用できなくなってしまうという現象に見舞われていました。それはIMを通じた入力ができなくなる(英語は入力できる)という現象で、VimからだけではなくChromeでも同様の症状に悩まされていました。 あたかもIMから切断されたような、この現象の原因はUIMではないかと推測し、とりあえずFcitxに切り替えてみようと思い、やってみることにしました。まずは Fcitx のインストールです。 あとは設定マネージャから言語サポートを選択し、「キーボード入力に

    barlog
    barlog 2014/07/21
  • Vimが変なファイルを作るようになった — KaoriYa

    +kaoriya版として配布しているVimでは デフォルトで undofile がオンになった関係で ファイルの保存時に変な名前のファイルが作成されるようになりました。 その解説をします。 うちで配布している Vim は 7.4.227 から、デフォルトで undofile がオンの状態で配布されるようになりました。そのためデフォルトではファイルを保存した時に同時に.{ファイル名}.un~ を undo ファイルを作成します。この undo ファイルにより Vim は undo の情報をセッションを越えて保持できます。 しかしいきなりゴミのような名前のファイルが生成され、普通のユーザは驚くことでしょう。かく言う私も驚きました。っていうかそのまま間違えてレポジトリに commit しちゃいました。それでは困りますので、無効化する設定などを紹介しておきます。 完全に無効化する こう設定してくだ

    barlog
    barlog 2014/03/30
  • jQueryのメモリーリークの傾向と対策 — KaoriYa

    Web開発にとても便利なjQueryですが、 実はメモリーリークを誘発しやすい構造であることは あまり知られていないようです。 記事ではメモリーリークが発生する傾向と対策を紹介します。 皆さんjQueryは使ったことありますよね。Webでの開発ではとても便利で、ほぼ必須と言っても過言ではありません。しかしながらこのjQueryはメモリーリークを誘発しやすい構造であることはあまり知られていません。 GCのあるJavaScriptでメモリーリークが発生するとは何を言っとるんだ、と思われる向きもあるやもしれません。しかしGCがあっても、もう使わなくなったオブジェクトを配列やテーブル(Object)にしまいこんでいて、それを回収するタイミングが存在しなければ積もり積もってメモリを圧迫する、メモリーリークとなりうるというのは想像に難くないでしょう。jQueryで起こりうるメモリーリークはそのような

    barlog
    barlog 2014/03/28
  • enchantMOON レビュー — KaoriYa

    enchantMOON を使ってみて気になったことを書き留めておきます。 未来の enchantMOON のために。 04/23 に注文した enchantMOON が 07/20 に届きました。 わずかな時間ですが、使ってみたので気になったことを書いておきます。お世辞にも「現状で長く使おうと思えるもの」「もっと使ってからレビューしよう」と言えないあたりは察してください。 一応、購入に至る背景を書いておきます。まずもともとは買うつもりは一切ありませんでした。理由は簡単で「ハードやるのが初めてなところから実用に足るものがでてくるわけがない」と考えていたからです。その考えは今も変わっていません。にも関わらず この記事 が 刺さり 購入を決定しました。 刺さりポイントは次の通り: 自分たちのハードを作って売ろうという心意気 手書きの重要性への共感 彼らに次の打席へ立って欲しかった まとめると、初

    barlog
    barlog 2013/07/22
    どちらもおもしろそう~。 Poche入り!
  • Vimの問題を見つけた時の報告のしかた — KaoriYa

    Vimを利用していてなんかおかしいなって思った時にどうしてますか?是非、問題として報告してください。今回は日語で報告する方法をご紹介いたします。 Vimを利用していてなんかおかしいなって思った時にどうしてますか?理想を言えば英語vim-devへ報告できることですが、ちょっと日人には敷居が高いですよね。そんな時は是非vim-jpまで不具合として報告してください。今回は日語で報告する方法をちょっと細かく紹介いたします。 問題発見から報告までの流れ まずは実例ということで、ちょうど今さっき私が発見した問題を報告するまでのストーリーを紹介します。 Vimを使う 「Vim Advent Calendarの欠番を埋めるため、正規表現を使ったネタスクリプトでも書くかー」 :help pattern.txt 「なんか使ったこと無い正規表現の機能はないかなー 行をまたいだ操作したいなー」 /line

    barlog
    barlog 2012/05/01
    47日目 "報告の際には「バグ」という言葉はなるべく避けてあげてください。そうでなくてもプログラマーという人種は日々「バグ」に怯えています。そんな中で「バグがあるからなんとかして」と言われると必要以上に身
  • Vimに這いよるホモォ — KaoriYa

    まずはこのビデオを見て欲しい。 ソースコードはhttps://github.com/koron/homoo-vimこちらからどうぞ。 パクったらパクリ返されたので再度パクってみたわけだが、自分で作っておきながら動いた瞬間に「ウワァ…キモォ」ってなった。

    barlog
    barlog 2012/04/19
    www2
  • nyancat.vimの裏話 — KaoriYa

    この記事はVim Advent Calendar 2011 の9日目のエントリーです。 @mattn_jpさんにそそのかされて勢いだけでnyancat.vimを書きました。その時のVimを活用した裏話を書きます。時間があったらソースコードも読んでみると面白いかもです。これらのテクニックを身につければあなたもVimでアニメーションとかエロゲとか作れちゃうかも。 裏話 このnyancat.vimは以前に書いたmaze3d.vimをベースにしており、ちょっと面倒だったのは二点だけです。 nyancatのデータどうするよ? 色、具体的には何色よ? 後者は資料画像があり、GIMPのスポイトツールでポチポチと吸い出せば良かったので、単に面倒なだけでした。 問題は前者で、自前でドットパターンを作ることも考えたのですが、この記事にあったPerlのソースを見たら良さ気なテキストデータがありましたので、流用す

    barlog
    barlog 2011/12/11
  • 1