Zedエディター試してみるぞーな気持ち
Atomからの系譜 MicrosoftがVisual Studio Codeを作り始めた後、GitHubを買収して、GitHubが作成していたElectronベースのエディタのAtomの開発は停滞して、最終的にプロジェクトはクローズされることになった。 メンテナンスされていない時期にAtom Communityというforkがあったような記憶があるが、クローズ後はPulsarという名前(商標の関係だとか?)のエディタとしてforkされて開発が続いているらしい。 一方、以前にAtomを開発していた人たちが新しく立ち上げたエディタが今回取り上げる「Zed」である。 で、Zedという名前が付いていたエディター、自分の記憶だと2, 3あったような気がする。iOSアプリかなんかであったような。まあ、edの究極版みたいな意味を込めてZed、って名付けは誰でもすると思う。 なので、昔あったよね? となっても、おそらくそれとは違うものだと思った方がいい。(たしかZedって名前で開発してるって話は昔出てたような気がするから、記憶違いではないかもしれないが……) まあ枝葉末節の部分はこれぐらいにしよう。 Zedを選ぶ理由 自分は今、Zedを使い始めたところだ。VS Codeはすでに十分すぎる機能を持っていて、コミュニティの拡張機能開発も活発なので、あえて乗り換える理由は……? というと普通はあまりないと思う。 だが……VS CodeはAtomの亜種みたいなものだから、ベースがElectron。Electronは(元々Atomのために作られたのだが)クロスプラットフォーム開発でGUIを実装するのに優れた手段なのだが——。 仕組み上、Chromiumがまるっと一個必ず動くから、どうしても重量級になってしまう。具体的にはこんな感じ。 それに対して、Rustで書かれているZedはこんな感じ。実際には他の子プロセスもあるのかもだけれど……。 これは流石にだいぶ違う、と思う。 軽量さというメリット 実際、VS Codeは最近のマシンだとそこまで重くはないのだが、それでも「エディタにしては重い」と感じる場面があるのだ。 自分の場合は常に画面がごちゃついてることもあって、少しリソース削減できるならZedに乗り換えるのはありだなと感じていた。 乗り換えの課題 ただ、乗り換えるにあたって支障もあるわけで、次にその辺の整理をしたい。 まず、自分がエディタに求める必須機能について。 Gitリポジトリを扱う機能(GitHub連携もある方が望ましい) AIアシスタントに相談(チャット)できる機能 AIアシスタントに整形などの加工を行ってもらう機能 おお、AIファーストだ。いやもう、正直AIがないとやっていけないのである。 で、これらについては十分な機能があることはすぐにわかった。一番嬉しかったのは、Github Copilot Proを契約していると、そのLLMが呼べることだった。 (あと、驚いたのはなんか組み込みでClaude 3.x Sonnetが使えるっぽいこと。レート制限とかはあるんだろうけど。API呼び出しも当然のようにできるので、最悪Gemini FlashとかClaude Haikuとかの安いAPIを中心にする手もありそう) ちょっとだけ慣れないといけないなあと思ったのは、GitHub Copilotと違って、チャットパネルでチャットと編集を分けて指示するのではなくて、編集はInline Assistのほうでやる感じだとか、そういうUI面の違い。 https://zed.dev/docs/assistant/assistant この辺をちゃんと読んでおけばよさそう。 あと、エディタの基本機能はもちろん、外せない。 エディタの必須機能といえば ターミナルが統合されていること grepやdiffのような基本的な機能の充実 まあこの辺はもはや当然だし、細かく言っているとキリがないので、ここは端折ろう。後発でまだない機能があったとしても、今時のエディタに求められる最低限の編集機能はいずれ完備されるだろう。 カスタマイズの限界 最後に、ちょっと妙なこだわりの部分。 というか、小説を書く、というプログラミング向けのエディタでは本質的ではない用途に使う関係で、期待しすぎても仕方ないのだが、ある程度充実してないと困る部分。 文書によってフォントのカスタムができること(小説本文は明朝で見たいとか) プロジェクト単位で違うカラーテーマが設定できること(小説とブログとプログラム開発で分けたいとか) だけども、現状はちょっと難しそう。 基本的に、プロジェクト単位の設定はプロジェクトルートに.zedフォルダを配置して、settings.jsonに設定を記述する。全体の場合は~/.config/zed/settings.jsonに設定を記述する。 という考え方なわけなのだが、プロジェクトルートの設定でアプリ全体設定を上書きできない項目は当然あり、現状テーマは無理っぽい。フォントサイズやフォントファミリーも多分無理かな? ま、まあMarkdownのプレビューだけ変えられればね、別に小説は読む時にだけ大きめの明朝フォントならいいから……。 え、Markdownのプレビューのフォントは"ui_font_*“なの……。……そっかあ。 別にそこまで困るわけではないので、この辺はこれからですかね。 拡張機能エコシステム そういえば、VS Codeの最大の強みの一つは膨大な拡張機能だ。Zedはこの点はまだまだなので、いくつかは大体手段を考えないとな、と思っている。自分でもなんか拡張機能作ってみたいなあ。 ...
oeight.meにて小説の先行公開をできるようにしました
Web小説を投稿サイト等へ投稿する前に、ブログにだけ先行して小説を公開できるようにしました。今後以下に掲載していきます。というか既に一つあります。 https://oeight.me/early-access-novels/ あくまで先行公開版という感じです。
ChatGPTとClaudeとGeminiの簡単な体験談
はじめに 最近、AIを毎日使っている。 現在の体制は、ChatGPT PlusとClaude ProとGithub Copilot ProにGemini(not Advanced)という感じだ。 各サービスのコスト コスト的にいえばChatGPT PlusとClaude Proがそれぞれ$20/月で、Github Copilot Proが$10/月(ただしまだ試用版)で、Geminiは無料版なので無料という感じ。 Geminiの評価 で、この中だとGeminiはあまり契約する気が起きない。 Google Oneが込みになっているので、Google Oneを契約している人にはいいんじゃなかろうかとは思う。 また、Gemini 2.0 Flashはレスポンスが非常によく(他のminiとかHaikuみたいな感じ)、やりとりしてて気持ちよさはあると思うのだが……。 正直言うと、あまり頭がいいとは思えないのだよなあ。 Gemini Advancedになると、より人間らしい音声での音声対話機能がほぼ無制限で使えるはずと記憶している。なので、それを目当てにするならありかなとは思えるのだが。 というか、GeminiはAPIアクセスが非常に安いので、ObsidianのSmart Composerとかの「自分が契約した任意のLLMのAPIを呼び出す」機能のあるアプリで使うのが向いてそう。 あとは、自分がアプリにちょっとAI機能を組み込みたいと思ったときはやっぱGeminiかなあ。とにかく安くて軽量、という感じだ(もっと安いLLMもあるけど、大手の中では)。 まあGeminiに関しては正直あんまり使えてないし、そんな感じでざっと流したい。 Github Copilotの評価 続いてGithub Copilot、$10/月でClaude 3.7 Sonnetやらが使えてお得な感じ。でも、本来はコーディングにのみ使うためのものだと思うし、ファインチューニングや制限も入っていそうな気はする。 でも、これなしでVisual Studio Code使うのはもう無理だなーって思う。まずは無料プランから試せるのはいいところだが、使ってしまうとClaude 3.7 Sonnet欲しいよなあってなっちゃう。うん。 Claude 3.7 Sonnetの評価 そうなんだよね、とにかく今はClaude 3.7 Sonnetが一推しなんだよね。 単純に一番優秀だから。 でも。融通が利くか……と言われると、意外とこの子は扱いづらい。チャットが長くなると「長くなったので次のチャット開いてくださいね」ってなったりするし。 修正依頼に基づいてartifact(添付ファイルみたいなやつ)を弄り始めたにも関わらず、なぜかこっち側では更新されてない……けど自信満々に完了宣言してくる……というバグも起きたりする。 それとWeb版は(少なくとも)macOSだと日本語入力しにくかった気がする。まあこれはChatGPTもちょっとアレなんだけど。変換操作がある言語のことを知らない開発者が多いのは仕方なし。 あとはWeb検索できなかったり(でも、最近英語版では出来るようになったらしい。今後色んな言語に展開される予定だとか)、音声対話機能がなかったり。 LLM本体の性能は一段上、素でも十分すぎるのに、Extended Thinkingを使えばさらに優秀になって、刺さるときはめちゃ刺さる。みたいな感じ。 でも基本機能だけで細かいところは優しくない。じっくり腰を据えて取り組みたいときのClaude 3.7 Sonnet(が通常より5倍ぐらい? 使えるClaude Pro)という感じである。 正直、問題解決に関してはClaudeに投げたい。 ChatGPT Plusの評価 で、最後が使い勝手は一応ナンバーワンのChatGPT-4o……をかなり使いたい放題できる、ChatGPT Plus。 より自然な音声対話機能も使えるし、DALL-Eで画像生成やSoraで動画生成ができて、タスクとして喋ってあげれば通知もしてくれる……とマルチなタレントだ。 なのだけど、頭はそこまでよくはない。議論というか対話する上ではそんな悪いとは感じないのだが、考える必要がある課題になるとかなりの浅さを露呈する感じ。 とはいえ、レスポンスも悪くないので、アイデア出しには非常に向いていると思う。ざっとChatGPT-4oと話してから、取っ掛かりまで準備してもらって、最後はClaude 3.7 Sonnetにキメて貰うのが一番いい感じ。 ChatGPT-4oのいいところは、チャットが長くなると適度にメモリに残して続けてくれるし、ファイルを作ってくれるパターンで柔軟にzipでくるんでくれたりして、目配りできて気が利くという印象。 でも文体(口調)のせいもあるかもしれないけど、どうしてもClaude 3.7 Sonnetみたいな「思慮」を感じるレベルには届いてないなあ、という感じだ。 ...
そうだ、Obsidianにしよう
長らく使い続けてきたノートアプリ群があるのだが、今や小説すらVisual Studio Codeで書くようになったのだから、レガシーな環境に囚われるのは辞めよう……ということで、メモや小説執筆に使用するアプリを見直すことにした。 これまで使っていたアプリ これまで使っていたのは以下のアプリだ。 Ulysses(小説の執筆用) Bear(メモ帳として) Apple Note(Bearの代替として試していた) Day One(日記用) Visual Studio Code(プログラム用だが現在は小説執筆用に、ただし小説の閲覧にはいまいち) 他にもSimplenoteとかLetterspaceとかAgendaとかScrivenerとかiA Writerとか……さらに4-5本はあると思うが書いていっても仕方ないので忘れよう。 Craftはなぜ採用しなかったか 最近しばらくCraftを使っていたのもこの一環だが、結論から言えば、Craftは採用しないことにした。 Craftが悪かったわけではない。iOSでの編集は非常に快適だった。しかし、ちゃんと使うには無料プランではなく$10/月(年間払いなら$8)というのが、結構重かった。それだけでUlysses + Bear + Day Oneぐらいにはなってしまう(私はUlysssesは初期ユーザーなので安いプランのままなので、そうなる)。 AI部分は元のテキスト編集環境にはないところなので、その部分を$5と見ればまあ……なのだが。 UIにグラフィカルな要素が強い点などは、スマートフォン版ではいいんだけれども、macOSでは別に必要ではないな……とか、文書のフォーマット(テキストファイルの形式)が独自系で、出力はMarkdownができるけども、将来の移行時に大変かもしれない、とか、そういうことがあった。 環境作り直しの要件 ちょっと話が逸れたが、今回の環境作り直しにあたって期待していた要件は次のとおり。 文書はMarkdownで書けること macOSとiOSでアプリがあり、同期が可能なこと タスク管理……というと大袈裟だが、やることリストが使えること 毎日の備忘録として今日の日記を簡単に作成したい 録音した音声が添付できるとよい(ぶっちゃけ使ったことはほぼないが、ボイスレコーダー機能への憧れがある) スマホで撮影した写真が貼れること(文章化しづらいもののメモのため) 添付ファイルが貼れること(サービス契約時のレシートや、買ったもののPDFのマニュアルなどをついでに保存したい) カラーテーマが設定できること(長時間見るので、意外と大事) 表示の細かなカスタマイズができること(書いた小説を読むときに小説らしく読めることが必要……まあ最悪Reactとかでざっと作る手もあるが……とは思った) 操作の細かなカスタマイズができるか、単に自分の好みにぴったりなこと(後者はなかなかありえないので、前者が望ましい、自分の要求はなんか細かい) AI機能(LLM)が組み込まれていること 最後の一行以外は当たり前のことだが(そんなことはない、どう考えても録音とかあってもなくても構わない)、最後の一行が大事なのは、小説をVisual Studio Codeで書いていて「テキスト編集にAIない環境はもうダメだな、過去の遺物だ」と思ったからである。 この辺、詳しく書ける機会があったらまた書きます。 最終的な構成 で、結果的にどうなったかというと。 Visual Studio Code Obsidian(Obsidian Syncは契約するかどうか悩み中) となる予定である。 Obsidianで何ができるようになったか まず、BearのノートはObsidianに移行してみたら、そのままタグの構造化機能(フォルダツリーみたいに階層化されるタグをつけられる機能)も移行できた。 Apple NoteやBearやDay Oneでやっていた添付ファイル・画像貼り付けはできるし、音声の録音もまだ試せてはいないが単体でできるらしい。 Obsidianにはプラグインという機構があって、公式の展開するコアとコミュニティに分かれているのだが、この辺は全てコア機能でできる。 で、Craftとかでできていた(Bearとかにもあるけど)タスク管理だが、デフォルトでやることリストがあるが、Tasksというコミュニティプラグインを入れると、「どっかに書かれているタスク」をかき集めてくれるので、デイリーノートという日記のようなものにタスクをバラバラに書いていても大丈夫。 また、Calendarというコミュニティプラグインも入れたので、前の日とかのデイリーノートも読みやすくなった。 そして、期待していたAI機能については、いくつか選択肢がある中、Smart Composerというプラグインを入れてみた。Obsidian Copilotというのもあったが、こっちは少し使いこむと有料って感じだったのと、Smart Composerの考え方がGitHub Copilotのチャットと同じだったので使いやすそうだなと思ったためである。 どちらも外部のAIのAPIを指定して起動する方式になっているから、AIには別途お金を払わないといけないのだが、正直自分がメモ帳から直接AIを使いたいケースはiPhoneで長文を書くのが面倒になったときとかだと思うので、全然APIでよさそうではある。 ただし、しばらくはGemini APIの無料の範囲内にしようと思っている。意外とフリーティアの条件が緩いから十分かも。(なお、この記事の見出し追加はGemini API……厳密にはGenerative Language API……とSmart Composerの組み合わせで行った。レスポンスが長かったのか反応ない感じになったときはちょっと困ったが、十分使えそう。その後iPhoneからもやってみたけどそっちも問題なく動いた) ...
ChatGPTのmacOS版アプリの連携機能について調べた
ChatGPTのmacOS版アプリにはアプリ連携機能がある。しかし、その挙動が分かりづらかったため、試してみた。 挙動について VS Codeでは、ChatGPTに読ませたいファイルを開き、アプリに戻るとメッセージ入力欄の上に「Codeとの連携」ボタンが表示される。これをクリックすると、開いていたファイル名(例: index.md)に変わり、文書を参照した状態になる。 連携できるアプリについて 同じ場所をもう一度クリックすると(隣に+ボタンも出る)、連携を解除したり、他のアプリと連携したりができる。+ボタンは追加用だ。 どのアプリが連携可能なのか基準が不明だ。VS CodeやTerminal、Warp、iTerm2といったターミナルエミュレーターは表示されるが、CraftやUlyssesは対応していなかった。どちらもテキストエディタに近いアプリだが、なぜ対応していないのかは分からない。すべてのアプリと連携できる必要はないだろうが、その基準が気になるところだ。 修正の適用について 「推敲して欲しい」などと頼むと推敲した文章を生成してくれる。チャットでだけ返してくることもあるのだが、Auto Applyにチェックが入っていると自動適用するらしい。 本来はソースコード向きなのだろうが、この手の記事でも問題はないようだ。 連携から除外したいアプリは? 設定で除外できるかは不明だ。ただ、追加しなければよいし、うっかり追加してしまっても削除できるので、それほど問題にはならないだろう。 そもそも利用ガイドはどこにあるのか? ガイドの所在が分からない。ニュースリリースでこの機能が追加されたことは見かけたが、詳細な説明がどこにあるのか不明だ。OpenAIのサイトを調べるしかなさそうだ。 結論 すべてのエディタと自由に連携できるわけではない。しかし、VS Codeで記事を編集しながらAIのサポートを受けられるなら、それだけでも十分便利だ。 ただし、文章の推敲にはClaudeのほうが向いていると感じる。