サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
syohex.hatenablog.com
github.com Emacs 29に yank-media という機能が追加されて clipboardにあるデータを各モードで自由にハンドリングできるようになった. VSCodeで markdownを書いているときに画像をペーストすると inline linkが挿入されますが、それと同じようなことができるように markdown-mode に機能を追加しました. ただし Emacsでは普通の yankでは実現できなくて, M-x yank-media という別のコマンドを使う必要があります. (clipboardの中身を見て先頭が画像だったら挙動を変えるとかの関数を自分で実装すればいけるとは思います). あと Emacs29以上が必要になります. 例 example ブラウザでコピーした画像を markdownファイルに貼り付けている例になります. 実装 例として html-mode
Emacsをあまりヘビーに使っていないし、できれば標準のものだけで済ませたいと思ってパッケージマネージャを el-getから標準ツールに移行した。前から考えていたんだけど、MELPAなどに登録されていないパッケージをいくつか使っていてそれで el-get使っていたんだけど、Emacs29から use-packageが標準パッケージ化、さらに package-vc.elも加わり、使い勝手はさておき移行は可能になったので移行してみた。(el-getが開発中の Emacsで動かない問題がありそのパッチが全然マージされないなどの理由もある) package-vcは以下のようなシグネチャで url に git repositoryなどを渡せばそれをパッケージとして使える (package-vc-install url rev nil name) use-packageと組み合わせて使う 以下のような
最近ささっと C/C++書くとき, Emacsを使っているのだが, LSP serverとして clangdを使う際のメモ Emacsの設定 Emacs開発版を使っているので, eglotをそのまま使う(C/C++ではデフォルトではサーバとして clangdが使われる) (add-hook 'c-mode-hook #'eglot-ensure) (add-hook 'c++-mode-hook #'eglot-ensure) 1ファイルの場合 特に対応が不要. よしなし補完なりエラーを表示してくれる ビルドファイルがあるような本格的なプロジェクトの場合 各種フラグをセットしていたり, include pathを指定しておく必要があるので compile_commands.json を生成しておく必要がある. compile_commands.json はファイルの親ディレクトリかそのいず
Emacs 29から eglotが標準パッケージに入るということで, 最近はちょっとした C++や Goを書くときなどは Emacsを使うことが少し増えてきた. 仕事だと IDEや VScodeだけど. そこで Rustも設定しておくかということでやってみた. VSCodeだと基本的に全部自動だが, Emacsでの作業が幾分必要であるのはやはり面倒だと思った. 必要なツールのインストール % rustup component add rust-analyzer % rustup component add rust-src PATHの設定 rust-analyzer を PATHに設定されている場所に置く. 直接 PATH設定するなり好きにすればよい % ln -s ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rust-
はじめに 最近まともに追っていなかったから存在さえ知らなかったのだけど、markdown-modeの issueでそういう機能があってどういうものかと使い方を調べてみた. 機能 特定のコマンドのグループを連続でお手軽に実行するための仕組み. 例えば移動系コマンドで次に移動が C-c n , 前に移動が C-c p みたいな場合毎回 C-c n, C-c pと叩くの面倒くさい。一方的に進む、戻るのであれば数値プレフィックスがあるが Vimのように数だけ押せばいいとわけじゃないし、進んだり戻ったりと繰り返したい場合などは使えない。そこで使えるのが repeat-mode。repeat-modeを使って初回実行だけは C-c nだが以降は n, pでそれぞれ移動するということが実現できる. myuheさんが作られた smartrep.elに近い. sheephead.homelinux.org
github.com たまたま目に入ったこのコードを見ていて, zero length arrayって末尾のメンバ以外でも使えたんだって思って気になるところを調べてみた. Flexible array en.wikipedia.org C99から入った機能. 配列の長さを宣言しないことで利用できる. sizeofはできない. 構造体などの末尾フィールドに置くことができる. 典型的な使い方は以下のような感じ. struct Data { // some fields SomeData s[]; }; struct Data *d = malloc(sizeof(Data) + some_arbitrary_size); ポインタを使ってしまうと構造体とこの末尾のデータがある場所は別の領域になってしまうわけだが, このようにすることで連続するメモリにすべて割り当てることができる. 構造体の末尾
code.visualstudio.com 詳細は公式サイトを見てください。 Visual Studio Codeでは上記のように型を書いていなくても型を表示してくれるわけですが, 正直うざいと思うことが多い。特にあまり型を明示的に書かない F#や Rustの場合. 見た目もそうなのだが, 文字を挿入したり削除するときどこにカーソルを合わせるのが適切なのかがわかりづらかったりする問題もあってあまり好きではなかった。ただしどうしても型を知りたいこともあり有効にするか悩ましかったのだが, 先のフラストレーションの方が大きかったので一部機能を無効化していた(F#では細かく設定できたため, 変数と関数呼び出しの型表示を無効化していた). 1.67で入った Toggle Inlay Hintsがこの問題を解消してくれた. editor.inlayHints.enabled は on, off しかで
askubuntu.com gihyo.jp W: https://packagecloud.io/slacktechnologies/slack/debian/dists/jessie/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 最近上記のような警告が出ていて何のことかわかっていなかったけど、apt-keyが廃止とのことだったのでこの際修正してみた。記事を読むと本質的な対応ではないようだが, 3rd partyのリポジトリのものはひとまずこれで良いっぽい. 手順は上記の askubuntu.comの手順の通り. まず該当の鍵を探す % apt-key list War
https://youtrack.jetbrains.com/issue/TBX-7534 ふと気づいたら, JetBrains Toolboxが動かなくなっていた。libfuse2を dlopenしているようだが, Ubuntu 22.04で libfuseが 3系がデフォルトになってしまったので動かなくなっていた。 以下のようなエラーが出るかを確認する % ~/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox dlopen(): error loading libfuse.so.2 AppImages require FUSE to run. You might still be able to extract the contents of this AppImage if you run it with the --appim
studio3104.hatenablog.com を見て, leetcodeがキリがいいところだったので, 私も真似して書いてみる. そもそも私は 40年近く生きてきて何かを継続してできたということがほとんどない. あったとしても若かりし頃のゲーセン通いぐらいで勉強に関してはおそらく皆無である. 今年の何ヶ月か過ぎたあたりでふと自分のキャリアについて考えたとき, 何もできることなくてこのままでいいのかとなって, (遅すぎるけど)いい加減真面目に考えないとまずいとなった. そこで雑ではあるが自分の幅を広げるために根本的なプログラミングスキルと英語をなんとかしようと思い, いろいろ試している. 初めて危機感を持った影響なのか今のところは毎日少しずつではあるが継続できていることもある. それらについてまとめておこうと思う. leetcode leetcode.com @sugyanさんが Tw
github.com 最近 Goに触れていなかったので復習も兼ねて. 内容としては下記の本に載っている Common Lisp風の簡易 Lisp. 本では Common Lispで書いているので read周りとか楽にできる部分があるのだけれど, Lisp系言語以外だとそんなわけにはいかないのでそこは地道に書いた. あとオブジェクト指向というかクラス継承を使って書かれていた部分を Goっぽく(?)落とし込んで書いた. その他の方針などはだいたい本のまま. 以前もっと簡単なものを Cで書いたことはあったけど, それよりは幾分進んだ内容で適度にいい刺激にはなったかと思いました. 対話によるCommon Lisp入門 作者:栗原 正仁メディア: 単行本
仕事で zipファイルを展開せずバイナリのまま構造解析する可能性があったため, zipの仕様を調べていました. 仕様については Wikipedia(日本語版は今ひとつわからなかったところがあったので英語版をメインで見た方がよいと思います)等を参照してください. で, パース方法を調べると初めにファイル末尾にある End of central directory record(以下 EOCD)を探して, そこから Central directory file headerを探してごにょごにょするとあったのですが, EOCDには可変長なコメントフィールド(最大 0xffffバイト)があり, それを考慮した上で正しくパースするにはどうすればいいのだろうと思って, 各種言語の zipライブラリを調べてみました. これはそのメモです. 本記事は zip64の内容は含みません. ご注意ください zip
gihyo.jp tomoyaさんから献本頂きました. ありがとうございます. 紙で置いておきたいというのと若干申し訳ないというのもあり紙版も購入しました. 感想 「実践」とつくように実践な内容です. 操作, 設定, 拡張の 3つのパートから構成されていますが, どれもほどよい長さにまとまっていて読みやすいです. その上, Emacsにこんな謎の機能あるんだとかではなく, 実際によく使う機能のことが多く書かれていると思います. Emacs自体膨大な機能から成り立っており, 標準機能だけで一冊どころではない本にできますが, それを全部書いたら尋常じゃない量になるし, 人によっては使わない機能ばっかりになってしまいます. この本では標準の機能, 標準外の機能が読みやすい形でまとまっているなぁと思いました. たまに登場するコラムもいいアクセントというか参考になると思いました. 初心者や Emac
なかなか忙しい日々を過ごしています. 仕事内容 具体的なことを書いていいのかわからないので雑に書きますが… サーバプログラム(APIサーバ)を Goで書いた 初めての仕事でのサーバプログラムであったが, APIサーバで JSON返すだけなので, そこまで大きな苦労はせず. 仕事の進め方などは前職とはだいぶ変わったので戸惑うところはあったけど, 苦痛とかストレスが溜まるということは特になく楽しくできたと思う サーバプログラムを 4-5ヶ月書いた後からはずっと C++書いている Windows, macOS APIをふんだんに使ったコードを 2-3万行ほど Objective-C++, Objective-C(少量)を書く IDEをメインにするようになった Xcodeはあんまり印象よくないけど, Visual Studioが C++コンパイラの質を除くとだいぶ良かったので デバッグ周りがだいぶ
東京へ引っ越してきてマンションでのネット契約方法がよくわからず不動産屋からいただいた資料にあった Sonetと契約(100Mbps)したがこれがどうにもこうにも激遅である. 人があんまりいない時間だと普通に使えるんだけど, 夜とか 10年前かってレベルの遅さだったので改善方法がないか調べて対策を行った. 結論としては IPoEをプロバイダに有効にしてもらい, ルータを DS-Lite対応のものすればよい. これでひどいとき 1Mbps出ていたかどうかのレベルだったものが 90Mbpsぐらい安定して出るようになった. インターネット関連のストレスはだいぶ減りました. IPoEに申し込む DMM光なんかだと申込時にできるっぽいんだけど, Sonetだと改めて電話して有効にしてもらう必要があった. 電話して一日ぐらいしたら有効になるのでルータ等の電源を一度落として再起動し, IPv6関連の設定を
元ネタ http://qiita.com/muran001/items/7a76a1c70aa12ed68cb6 はてぶのページからリンクを取得する Vimほど楽ではない気がするが一応 M-x browse-url-emacs [RET] http://b.hatena.ne.jp/ctop/it ;; windowを切り替え, read-only-modeを解除 M-x replace-regexp [RET] >< [RET] >改行< ; 改行は C-r C-jで入力 M-x replace-regexp [RET] ^\s-+ [RET] ; 行頭の空白削除 M-x delete-non-matching-lines [RET] <a [RET] M-x replace-regexp [RET] ^.*href="\([^"]+\)".*$ [RET] \1 Gifは割愛. 解説
パッケージのレビューをしまくり, そのパッケージに PRをしまくっていたら,コミット権限をいただきました.(個人的には el-getユーザで MELPAをテスト向けのパッケージぐらいにしか使っていないのですが...). パッケージを MELPAで登録したいけどよくわからないとかレビューして欲しい等の場合は twitterや slackの emacs-jpチーム等でご連絡頂ければと思います. よろしくお願いします. あと Emacsではありませんが, zsh-usersの zsh-completionsのコミッタにもなったので, そちらでも何かありましたらご連絡ください.
Emacs 25から Macの visible-bellが画像を表示するようになったのでデフォルトの画像から差し替えてみた. パッチ Emacs25.1-RC1に対するパッチです. diff --git a/src/nsterm.m b/src/nsterm.m index e6a10b8..9a54886 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1318,7 +1318,7 @@ ns_clip_to_row (struct window *w, struct glyph_row *row, NSRectFill(NSMakeRect(0, 0, 32, 32)); [self.image unlockFocus]; #else - self.image = [NSImage imageNamed:NSImageNameCauti
7月 1日から DeNAで働くことになりました. オフィスは渋谷オフィスです. きっかけは私がストレス溜まりまくっていた時期に Twitterの名前欄に「求職中」と書いていた(非常識な行為で, 前の会社には申し訳なく思います)ときにお声がけをいただいたことです. 働いてみたいと思った理由は尊敬するエンジニアも多く, 多くの刺激を受けられ, 今の自分にとって非常に良い環境だと思ったからです. (もちろん環境はあくまで環境なので伸びるかどうかは自分次第だと思っていますが) その他の理由としては お金がある会社での働き方を知りたかった マネージメントの行われ方を知りたかった 前の会社ではお金がないということで従業員一同様々なことで苦労しました. 一人あたりの仕事の量であったり, 携わる仕事の内容であったり. 結局お金がないとそこまでやりたくない仕事も(少ないお金で)やらないといけないし, 新しい
本日付で 8年と 3ヶ月勤務した組込み系の会社を退職しました. 退職理由 しんどかった 今のままではこの先やっていけないと思った 一番大きな理由はしんどくて自分のための自由な時間が確保しづらかったこと. 経営的な問題から少人数で多くの仕事をやらざるを得ない状況になってしまって, ほとんどの人は 2つ以上の仕事を掛け持ちだったんですがそれが辛かった. ひどい時は午前中と昼は Aの仕事して, そこから夕方まで Bの仕事して, そこから終電まで Cの仕事してとかそんな感じで数カ月間働いていました. そうなると体力的な面もそうなんですけど, 勉強もできなくなってしまい(土日など時間があるといえばあるけど限界まで働くと休日でもやる気が出ない), 精神面でもどんどん疲弊するようになってしまいました. 仕事自体は楽しかったし, やりがいもありましたけど, そちらよりも辛いという方が大きくなってしまいまし
github.com quickrun.el supports Gnuplot file. You can see output of plot as image in other buffer. NOTE: This mode is supported only for GUI Emacs. Please report me if you have any problems or suggestions.
tagomoris.hatenablog.com 昔なんとなく書いたものを apache-modeを参考に改善しました. github.com 問題点, 要望等ありましたら github issuesまで知らせていだけると大変助かります.
https://github.com/client9/misspell misspell command outputs like grep. So we can use it with compile interface. (defun misspell () (interactive) (compile (format "misspell %s" (file-name-nondirectory (buffer-file-name)))))
http://mattn.kaoriya.net/software/vim/20160129114716.htm Emacsが socket使えることは知っていたが, 使ったことがなかったので書いてみました. コード (require 'json) (let ((proc (open-network-stream "test" (get-buffer-create "*test*") "localhost" 8888))) (set-process-filter proc (lambda (proc output) (let ((resp (json-read-from-string output))) (message "ただ今: %s" (aref resp 1))))) (process-send-string proc (json-encode [1 "GET"])) (proce
昔 helmは migemo対応していたのですが(anything時代から), それが除去され, migemo機能を有効にする helm-migemoというパッケージが作成されさました. しかし最近 helmが再度 migemo対応しました. これにより helmだけで migemo対応の sourceが書けるようになりました. その手順を示します(作者の方が主導的に行われたので再度外される可能性はないとはいえませんが, 高くはないと思います). バージョン 1.7.9以上を使う必要があります. 事前準備 migemoの設定を行い(以下は cmigemo), helm-modeを有効にします. (NOTE helm-migemo-modeは autoloadできないので, 事前に helmをロードしています) (require 'migemo) (setq migemo-command "
codic.el から Codic Web APIを使えるようにしました. リポジトリ https://github.com/syohex/emacs-codic/ 使い方 M-x codic-translateで使えます. 使用するには APIトークンの設定が必要になります. codic.jpから APIトークンを取得し, codic-api-tokenに設定します. (custom-set-variables '(codic-api-token "YOUR_API_TOKEN")) イメージ おわりに 問題, 意見等ありましたら, github issuesまでお願いします.
http://hitode909.hatenablog.com/entry/2015/09/13/205925 I wrote @hitode909's 集中線GIFメーカー(Awesome Web application) in Golang. This is command line application and you can use this as below. Repository https://github.com/syohex/speedline Sample Output Code package main import ( "flag" "fmt" "math" "math/rand" "github.com/gographics/imagick/imagick" ) var ( output = flag.String("o", "output.gif", "out
I uploaded ac-emoji to github. This package provides auto-complete source of Emoji. Image Repository https://github.com/syohex/emacs-ac-emoji I test only MacOSX. Sample configuration I think this package is useful for writing Markdown or git commit message. (add-hook 'markdown-mode-hook 'ac-emoji-setup) (add-hook 'git-commit-mode-hook 'ac-emoji-setup) MacOSX Users Please add emoji font configurati
neotree can work with vc-mode. So it works like Atom.io. However its feature is disabled as default. Please add following configuration to your init.el for enabling it. You also enable vc-mode. (custom-set-variables '(neo-vc-integration '(face))) Screenshot is here. Modified files are highlighted in magenta. neotree supports showing vc information by face and char. We can also enable both of them
次のページ
このページを最初にブックマークしてみませんか?
『Shohei Yoshida's Diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く