Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

ブックマーク / rhysd.hatenablog.com (20)

  • ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい

    言語処理系やテキストエディタなどのプログラミングツールが好きなので,その周辺を趣味で触ってます.VimWasm にポートするために Vim の実装を読んだりはしているのですが,フルスクラッチでテキストエディタをつくったことはありませんでした. 今年のお盆はめちゃ暑かったので,引きこもって夏休みの自由工作的に Rust でテキストエディタをつくっていたという話です.普段ターミナルで作業しているので,つくるのもターミナル向けテキストエディタです.最近 vim.wasm で C と TypeScript ばかりだったので,そろそろまた RustGo を書きたかったのですが,Go はすでに micro という良さそうなテキストエディタ実装があったので,Rust で書いてみることにしました. まずは Build Your Own Text Editor というガイドを利用して,1000行

    ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
    basyura
    basyura 2019/08/29
    活動力にそんけいします (=ΦωΦ)
  • Vim を WebAssembly に移植した - はやくプログラムになりたい

    久々のブログです. 6月ぐらいにWebAssembly の仕様をざっくり読んだので,なんか WebAssembly でやりたいなと思って,VimWebAssembly に移植してブラウザで動くようにしてみました,という話です. github.com 多分実物を見ていただくのが一番早いので,下記のリンクにアクセスしてみてください. デモページはこちら(下記の注意事項を先にお読みください) 注意 デスクトップ版の Chrome か Firefox か Safari か Edge を使ってください.どうやら macOS では Safari が一番動きが良いです. デモページは全部で1MBほどのリソースを fetch します.モバイルネットワークなどからアクセスする場合はお気をつけください. keydown でキー入力を取っているので,キー入力を横取りするブラウザ拡張などが有効になっていると

    Vim を WebAssembly に移植した - はやくプログラムになりたい
    basyura
    basyura 2018/07/09
  • Vim 進捗旅行 - はやくプログラムになりたい

    木曜日午後〜日曜日午前中の4日間,Vim コミュニティつながりの知人と旅館に泊まり込んでもくもく作業する合宿的な旅行に行ってきました. 当日の様子や旅館の便利情報についてはすでにブログ記事にまとめられているのでそちらを読んでいただいて,この記事内では僕がやった作業内容を備忘録的に書いておきます. 土善旅館で最高の開発合宿をしような - darui.io 中年週末旅行 - チューリング不完全 今回やったこと neovim-component と NyaoVim の Polymer v2 対応 clever-f.vim のテストを themis.vim に移行 clever-f.vim のテストカバレッジを covimerage を使って取る Vim プラグインの試作(まだ途中) neovim-component と NyaoVim の Polymer v2 対応 今回の一番でかい成果はウェブ

    Vim 進捗旅行 - はやくプログラムになりたい
    basyura
    basyura 2017/11/27
    (=ΦωΦ)にゃごー
  • Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい

    この記事は Vim Advent Calendar 2015 の20日目の記事です. まずはこちらのスクリーンショットをご覧ください. エディタの UI やカーソル移動は Vim っぽいですが,markdown ライブプレビューやカーソル位置での画像ポップアップ,組み込みブラウザなど謎の UI が見て取れます.記事ではこれについてボトムアップで必要な知識から順を追って紹介します. 長い……三行で Neovim msgpack-rpc API を使って <canvas> と Node.js APINeovim フロントエンドを作成し Web Component としてラップ して HTML アプリに簡単に組み込めるようにした上で UI プラグインをウェブ技術で構築できる NyaoVim という Neovim GUI エディタを Electron 使ってつくってます. 目次 Web C

    Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
    basyura
    basyura 2015/12/20
    なるほど、neovim は(ΦωΦ)であると (すごすぎてよくわからないの意)
  • いらすとやヘビーユーザのために Irasutoyer というアプリをつくった - はやくプログラムになりたい

    この記事は いらすとや Advent Calendar 2015 の6日目の記事です. いらすとやとは? いらすとや とは,フリーのかわいいイラスト素材を提供しているサイトです.実用的で種類が豊富,たまにシュールなのもあり,利用条件のゆるさから至る所で使われています.この間は近所のヨドバシでも使われてました. http://www.irasutoya.com/ 検索性の問題 いらすとやでは10000点以上のイラストが公開されています.その多さゆえ,ほしいイラストを探すのは少し大変です.unite.vim のようにさっとインタラクティブに絞込み検索できれば良いなぁと思っていました. いらすとやヘビーユーザのためのデスクトップアプリ Irasutoyer というわけで,今回はいらすとやをもっと便利に利用するためのアプリ Irasutoyer(イラストヤー)をつくってみました. https://

    いらすとやヘビーユーザのために Irasutoyer というアプリをつくった - はやくプログラムになりたい
    basyura
    basyura 2015/12/07
    (=ΦωΦ) イヌゥ・・
  • vimconf でブラウザ上で Vim を使う方法を発表してきた - はやくプログラムになりたい

    今年も vimconf にスタッフ兼発表者として参加してきました.名札の名前が「ドッグ」でじわじわきました… 開場 当日は準備スタッフの作業のために 8:30 に会場へ.山手線の遅延に巻き込まれて 8:45 ぐらいに到着. 電源ケーブルの配線などをやりました. Vim on Browser vimconf での発表は今年で3回目です.最近趣味ではウェブのフロントエンド周りや Electron を触っているので,今回は便利プラグインとかの実用的な話からそれて "Vim on Browser" というタイトルで発表してきました. ブラウザ上で「物の」Vim を動かす話です. 内容は Vim.js の紹介と,自分がそれを使いやすくするためにつくった react-vimjs というコンポーネントの紹介およびデモでした. ライブコーディングとかするのは今回初めてなので2,3回ほど事前準備していて,

    vimconf でブラウザ上で Vim を使う方法を発表してきた - はやくプログラムになりたい
    basyura
    basyura 2015/11/23
    (=ΦωΦ)
  • GitHub のトレンドリポジトリを見逃さない,Trendy をつくりました - はやくプログラムになりたい

    僕が1日に1回ぐらいの頻度で見ているページの中の1つに GitHubTrending repositories のページがあります.このページには言語ごとに日毎・週毎・月毎の単位で GitHub 上で人気のリポジトリがランキング形式で表示されます. 話題になっているライブラリやソフトウェアの一次ソースとして便利なのですが,微妙にアクセスが悪い位置にあり,言語ごとにしか見られません.また,ランキングには常に人気な「常連」リポジトリが多々いるので,新しく話題になっているリポジトリはその中に埋もれがちになってしまいます. そこで,今回はこれらの問題を解決すべく,GitHub のトレンドクライアント Trendy を Electron ベースでつくりました. Trendy - Menubar App to Keep You in the Trend Trendy は GitHub のトレンド

    GitHub のトレンドリポジトリを見逃さない,Trendy をつくりました - はやくプログラムになりたい
    basyura
    basyura 2015/09/24
    Electron 楽しそうだなぁ (ΦωΦ)
  • Shiba v0.4.0 をリリースしました - はやくプログラムになりたい

    先月ぐらいから Markdown プレビューアプリ Shiba をつくっています. rhysd.hatenablog.com 指定した markdown ドキュメント(または特定のディレクトリ下のすべてのドキュメント)をプレビューするアプリです.特定のファイルを監視し,ファイルに変更があった際は自動で更新します.lint 付きです. 会社でぼちぼち使い始めていて,ちょっと資料見せて話したい時は Markdown で資料を書いて Shiba で別画面に出して説明したりしてます.Markdown のドキュメントのままだとフォントサイズが均一だったり画像見せられなくて不便なので,それが解消されました.また,資料に間違いがあっても手元のエディタでサッと修正すれば大体バレません.以前は PowerPoint で資料作ったりしてたのですが,無駄にスライド式に囚われてしまって資料全体が見渡しづらかったり

    Shiba v0.4.0 をリリースしました - はやくプログラムになりたい
    basyura
    basyura 2015/08/14
    めっちゃいいかおしてる (UΦωΦ)
  • インストールせずにカラースキームを試せる try-colorscheme.vim をつくりました - はやくプログラムになりたい

    問題 Vim でカラースキームを試すときは主に以下の様な作業が必要になります. プラグインマネージャなどでカラースキームをインストールする カラースキームの名前を確認する :colorscheme コマンドでカラースキームを指定する コレジャナカッタ場合はカラースキームを削除する お気に入りのカラースキームを探していると上の操作をひたすら繰り返す必要があり面倒です. 解決 サクッとカラースキームを試したい時のために try-colorscheme.vim というプラグインをつくってみました. https://github.com/rhysd/try-colorscheme.vim 下記のように :TryColorscheme コマンドを使うだけです.下記の3通りの方法で指定できます. " カラースキームのあるリポジトリを指定する (user/repo 形式) :TryColorscheme

    インストールせずにカラースキームを試せる try-colorscheme.vim をつくりました - はやくプログラムになりたい
    basyura
    basyura 2015/07/12
    すごい
  • Software Design で「犬でも分かる!? Vim 導入&カスタマイズの超基本」という記事を書きました - はやくプログラムになりたい

    発売は少し先ですが,12月18日発売予定の Software Design 2015年1月号で「犬でも分かる!? Vim 導入&カスタマイズの超基」という記事を書きました. Software Design 2015年1月号 Software Design (ソフトウェア デザイン) 2015年 01月号 [雑誌] 出版社/メーカー: 技術評論社発売日: 2014/12/18メディア: 雑誌この商品を含むブログを見る 今回の Software Design の Vim 特集は初級者〜中級者向けということで,僕は1章(トップバッター…!)の初心者向け入門記事を担当しました.各 OS における Vim のインストールから始まり,独特な Vim 操作の基に慣れる方法やプラグインの導入方法,設定の書き方などをなるべく丁寧に解説したつもりです.特に Vim のドキュメントを調べる :help コマ

    Software Design で「犬でも分かる!? Vim 導入&カスタマイズの超基本」という記事を書きました - はやくプログラムになりたい
    basyura
    basyura 2014/12/12
    (=ΦωΦ)にゃおーん
  • 犬製 Vim プラグイン紹介3本立て - はやくプログラムになりたい

    この記事は Vim Advent Calendar 2014 の8日目の記事です.昨日に引き続き犬アイコンがお送りします.昨日は daisuzu さんの vital-smtpを作った でした. 今回は今年つくったプラグインとか,過去につくったけれど紹介していなかったプラグインを3つ紹介します. vim-operator-surround : 指定したテキストオブジェクトを特定の囲み(surrounding)で囲むという処理を行うオペレータプラグイン committia.vim : git commit したときに開くコミットバッファをリッチにするプラグイン vim-grammarous : 自然言語の文法チェックプラグイン それぞれのプラグイン紹介は独立しているので,気になるものだけでもチェックしてもらえればと思います. また,インストール方法については,他のプラグインと同じなので割愛して

    犬製 Vim プラグイン紹介3本立て - はやくプログラムになりたい
    basyura
    basyura 2014/12/08
    (=ΦωΦ)にゃー
  • clever-f.vim 1.4 をリリースしました. - はやくプログラムになりたい

    clever-f.vimVim の 1文字検索カーソル移動 f, F, t, T を拡張するプラグインです.Vim では f, F, t, T に加え,繰り返しのために , や ; も必要で,<Leader> などで潰されがちでしたが,clever-f.vim では f などが状態を持つことで , や ; を不要にし,Vim の基的な一文字検索移動の使い勝手を変えないように拡張しています.さらに,いくつかの検索拡張を実装しています.詳しくはドキュメントのほうを御覧ください. clever-f.vim でカーソルの横移動を便利にする 上記記事を書いたときに version 1.3 をリリースしたっきりだったので,最近追加した機能も含めて clever-f.vim version 1.4 をリリースしました. この記事では上記の記事との機能的な差分を紹介します. 入力した文字のハイライ

    clever-f.vim 1.4 をリリースしました. - はやくプログラムになりたい
    basyura
    basyura 2014/08/08
    (UΦωΦ) いぬぅー
  • yokohama.vim #5 でした - はやくプログラムになりたい

    4/6 に @gu4 さん 主催の yokohama.vim #5 に参加してきた. 何も考えず速攻で登録して身内感を出してしまったので人集まるかなぁと思っていたけれど,thinca さんの呼びかけにより参加者が増えてほっとした.thinca さんの人望(もとい魚望?)さすがでした. @srockstyle さんの発表 → thinca さんのライブコーディング → グループごとのハンズオンという流れだった. Vim で捗る Ruby 開発(by srockstyle さん) http://www.slideshare.net/srockstyle/ruby-on-vimyokohamavimRails などの Ruby 開発で Vim こう使ってるよー」という発表だった.僕も一時期 Rails を使っていたときに unite-rails.vim にお世話になった.あと,TweetVi

    yokohama.vim #5 でした - はやくプログラムになりたい
    basyura
    basyura 2014/04/07
    (=ΦωΦ)
  • codic-vim 用の unite.vim ソースを書いた - はやくプログラムになりたい

    codic-vim-with-unite は deprecated になりました.unite-codic.vim に移行をお願いします. ソフトウェア開発者用の辞書サービス Codic の辞書を Vim から使える codic-vim が公開されました. 日語で単語を指定すると,それに近い英単語を一覧で出してくれます.単語のチョイスが開発者向けで,プログラム中でクラスや変数の名前に困ったときに使えます. 便利だったので,unite.vim で絞り込んでその場でカーソル下にワードを挿入できたら便利だろうと思って codic-vim 用の unite ソースを書きました. このために codic-vimAPI に対応を入れてもらったりしました(kaoriya さん,ありがとうございます). rhysd/unite-codic.vim :Unite codic で起動したあと,気になる単

    codic-vim 用の unite.vim ソースを書いた - はやくプログラムになりたい
    basyura
    basyura 2014/01/04
    (=ΦωΦ=)
  • 2013年に書いた Vim プラグインその他まとめ - はやくプログラムになりたい

    今年書いた Vim プラグインその他をリストアップしてみた. Vim プラグイン clever-split.vim 現在のウィンドウの縦幅や横幅,開くバッファの最大の桁数などを考慮して縦分割・横分割・新規タブの中から開き方を賢く選択肢てくれるプラグイン conflict-marker.vim コンフリクトマーカーをハイライト・検索してジャンプして,コンフリクトの解決をするためのプラグイン.解決法は「相手の変更を優先」「自分の変更を優先」「どちらも残す」「どちらも残さない」の4通りから. Momonga.vim #2 に行ってきた git-messenger.vim GVim 限定のプラグイン.マウスカーソルを乗せた行をコミットしたときのコミットメッセージを見ることが出来る.コードリーディングで「この行どうして追加したんだろう」と思った時に使える. TokyoVim #14 に参加して gi

    2013年に書いた Vim プラグインその他まとめ - はやくプログラムになりたい
    basyura
    basyura 2013/12/31
    🐈
  • VimConf 2013 で発表してきた - はやくプログラムになりたい

    クックパッドで開催された Vim Conference 2013 に参加してきた. 発表 How to suggest new features for Vim (香り屋さん) いかにして取り込まれやすいパッチを書くかという話だった.基的に Vim の方針(Vim is a text editor)に反するものは取り込まれなくて,自分が提案している機能がいかにテキスト編集に関連して役立つかをしっかり戦略立ててやるのが大切という話だった.この話はパッチだけでなく,普段の仕事とかにも当てはまると思った.あと,香り屋さんの話しぶりが熱くてよかった. Evil is Justice(esehara さん) Emacs の操作体系を Vim 化する Emacs プラグイン,Evil の発表だった.EvilVim 再現度はいつ見てもすごい.Evil の開発者の情熱が感じられる気がした. vit

    VimConf 2013 で発表してきた - はやくプログラムになりたい
    basyura
    basyura 2013/11/17
    U^ェ^U ワンワンオ
  • コマンドオプションを解析するライブラリ Vital.OptionParser を書いた - はやくプログラムになりたい

    この記事はVim AdventCalendar 2012の 343 日目の記事です. 昨日は cohama さんの VimRuby の def end とかを自動入力する vim-endwise を vim-smartinput で実装してみた でした. そろそろ終わりが見えてきて,僕が投稿するのもこれが最後な気がします. コマンドのオプションを扱うためのライブラリ,Vital.OptionParser の紹介です. コマンドの引数を単純に <f-args> などで取った場合,引数の順序に依存してしまったり,個々のオプションの解析が面倒になり,正規表現などで実装が汚くなることが多々あります. 今までは各プラグインが独自に引数を解析しており,引数のフォーマットなども微妙に違ったりしていました. そこで Vital.OptionParser という汎用的にオプションを解析できるライブラリ

    コマンドオプションを解析するライブラリ Vital.OptionParser を書いた - はやくプログラムになりたい
    basyura
    basyura 2013/11/09
    いぬぅ
  • clever-f.vim でカーソルの横移動を便利にする - はやくプログラムになりたい

    この記事はVim Advent Calendar 2012 291 日目の記事になります.徐々に気温も秋らしくなり,終わりが見えてきてますね. この記事では,Vim の f キーを拡張する clever-f.vim というプラグインを紹介します. 今まで tekkoc さんや thinca さんに紹介していただいたのですが,自分で紹介していなかったのと,色々と機能追加をしたので今回最新の内容で紹介することにしました. clever-f.vimでf連打が便利すぎる件 - tekkoc'blog clever-f.vim を魔改造した話 - 永遠に未完成 Vim の f{char},使ってますか? Vim での横移動は何を使っているでしょうか?h や l での1文字ずつの移動や w や b での単語単位での移動など色々ありますが,個人的におすすめなのが f と F です. Vim の f{ch

    basyura
    basyura 2013/09/20
    べんり
  • 一時ウィンドウを手軽に出し入れできる tmpwin.vim を作った - はやくプログラムになりたい

    この記事は Vim アドベントカレンダー 183 日目の記事です. 早いもので,始まってからもう半年になりますね. ちなみに昨日の記事は manga-osyo さんの Vim Advent Calendar 2012 中間発表 でした. 記事では,一時ウィンドウを簡単に開いたり閉じたりできるプラグイン tmpwin.vim を紹介します. 普段から QuickRun でコードをコンパイルしている時間などを利用して TweetVim でツイッターのタイムラインを覗いたりしているのですが, TweetVim のウィンドウを開いたり閉じたりするのが億劫になってきたので,そのあたりを良い感じに管理してくれるプラグインが欲しくなりました. そこで,ちょっとしたウィンドウをマッピングでさっと開いて同じマッピングでさっと閉じられるプラグインを作りました. インストールは他のプラグインなどと同様に ne

    一時ウィンドウを手軽に出し入れできる tmpwin.vim を作った - はやくプログラムになりたい
    basyura
    basyura 2013/06/02
    仕事し(略
  • 「立て!立つんだビムー!」 - はやくプログラムになりたい

    この記事は Vim アドベントカレンダー 2012 の 19 日目の記事です. 昨日はhrsh7th さんの vim-versions についての記事 でした. たくさんプラグインを入れたり設定を書いたりしていると Vim の立ち上がりはどんどん遅くなってしまいます. 一度 Vim を立ち上げたらそのあと閉じることが無いスタイルの人はそれほど気にならないかもしれませんが, シェルからターミナル内で Vim を開いたり閉じたりするスタイルの人にとっては起動速度はとても大事です. 今年のアドベントカレンダーでは,素敵なプラグインを入れて Vim の機能を強化する記事がたくさん紹介されているので, ここではそういった便利さをなるべく維持しつつ,起動時間を抑える方法を紹介します. (1/3 追記) neobundle.vim がバージョン 3 になり,ファイルタイプ・コマンド・関数名・マッピングの

    「立て!立つんだビムー!」 - はやくプログラムになりたい
    basyura
    basyura 2012/12/19
    (uΦωΦ) にゃー
  • 1