
KDEやManjaro、openSUSE、FedoraなどのディストリビューションをPlasmaとともに使用している場合、遅かれ早かれ次のような問題に遭遇するでしょう。 アプリケーションメニューのKWriteとKate一見するとほとんど同じに見え、実際、なぜ両方インストールされているのか、同じアプリなのか、一方を削除してももう一方は削除できないのかと疑問に思う人も多いでしょう。
現実にはKWriteとケイト 彼らはとても仲の良い「兄弟」です。これらは内部エンジンをほぼ共通化していますが、それぞれ異なる用途向けに設計されています。1つは軽量でシンプルなエディタとして、もう1つはプログラミングや大規模プロジェクト向けの高度な編集環境としてです。では、それぞれの違い、共通点、開発元、そしてそれぞれの使い分けについて、詳しく見ていきましょう。
KWriteとKateの起源と関係
約20年間、 KWriteとKateはKDEエコシステムで常に連携してきました歴史的に見ると、KWrite が最初のものでした。これは、典型的な「パワード」メモ帳として KDE の初期バージョンに搭載されていたシングル ウィンドウ テキスト エディター (SDI) です。
時間が経つにつれ、KDEの主要開発者の一人が、 複数ドキュメントバリアント(MDI)としてのKate複数のタブ、より多くのパネル、プログラミング指向の機能で動作するように設計された Kate は、KWrite の最も強力なマルチドキュメント バージョンとして明確に作成されました。
長年、 両方のプロジェクトは、多少異なる開発経路をたどりました。KWrite はほとんど変化しませんでした。シンプルなエディタとして時折改良やバグ修正が行われましたが、巨大な「スイート」にはなっていませんでした。一方、Kate にはタブシステム、セッション管理、高度なプラグイン、統合ターミナル、プロジェクトサポートなどの機能が再実装されました。
ただし、両者が使用したコア編集システムは同じです。 KDEフレームワークのKTextEditorライブラリこのおかげで、KWrite は見た目は「基本的」に見えますが、KWrite と Kate はどちらも非常に強力な編集エクスペリエンスを提供し、一般的な単純なメモ帳よりもはるかに優れています。
単一のコードベース: KateがKWriteを「食べる」とき
近年、このプロジェクトに関して重要な決定が下されました。 重複コードを避け、KWrite で Kate のコードベースを直接再利用するより高度な機能を無効にすることで。このアイデアは、KWriteにタブを追加したいと思ったときに生まれました。
開発者(ワカール、プロジェクトに非常に積極的)が実装を開始した KWriteのまつげサポート問題は、Kate のリポジトリ内のタブがコアとプラグインの両方ですでに何度も書き換えられていたため、長期的なメンテナンスを必要とする実装をさらに追加するのは意味がなかったことです。
この重複を避けるために、チームは KWriteは独立したコードベースを持たないしかし、Kateと同じコアを「切り取り」モードで使用していました。KWriteは現在、 Kateはセッションやプラグインがなく、最もクリーンなインターフェースでシンプル化されています技術的には、2 つの間で変更されるのは主にメイン関数と、インターフェースの一部をアクティブ化または非表示にするための共有コード内のいくつかのチェックです。
この変更により、 約 1,000 行の KWrite 固有のコードが削除されました。 共通コードにはわずか数行のコードを追加するだけで済みました。その結果、両方のエディターは、最新のタブシステム、コマンドラインパラメータの解析、基本的な編集動作など、ほぼすべてのロジックを共有できるようになりました。
しかし、内部基盤を統一したとしても、 KWriteは独自の個性を持っているウィンドウ間でインスタンスを共有できず、セッション管理機能も備えておらず、高度なプラグインも読み込めず、統合ターミナルやサーバー言語(LSP)も提供されていません。これらの機能が必要な場合は、Kateを選ぶ必要があります。
KTextEditor: 共通編集エンジン
KWriteとKateの両方 これらは同じ編集ライブラリであるKTextEditorに依存しています。KDEフレームワークの一部です。このライブラリは、両方のプログラムで見られる強力な編集機能のほぼすべてを提供し、KDevelopやその他のKDE IDEなどの他のアプリケーションでも使用されています。
つまり、 テキストの作成、選択、強調表示、および操作という純粋なエクスペリエンスは、実質的に同じです。 KWriteとKateの違い。どちらかに慣れれば、もう一方、あるいはKDevelopでも問題なく使えるでしょう。テキストエリアの動作はKWriteとKateファミリー全体で一貫しているからです。
KTextEditorのおかげで、両方のエディタは 数え切れないほどの言語の構文強調表示特定のモードの分析(例えば、 マークダウンのサポートHTML、Python、C などの多言語対応のプログラミング言語 (C# など) には、自動インデント、行番号付け、ドキュメントのミニビューなどの編集ツールや、通常のエディターをはるかに超えるその他の機能が備わっています。
さまざまなシステムへのインストールと配布
一般的に、KDE Plasmaを使用する場合、 おそらく、KWrite はすでにデフォルトでインストールされています。一方、Kate の場合、レイアウトによっては手動でインストールする必要がある場合があります。
FedoraのようなRPMベースのシステムでは、次のように実行するだけです。 sudo dnf install kwrite kate他のディストリビューションでは、パッケージの名前は同じか非常に似ています。さらに、 どちらも独立して出版されているKWrite は apps.kde.org/kwrite から、Kate は apps.kde.org/kate から入手できます。
KDEエコシステムでは、 デスクトップ自体の Discover からインストールできます。KWriteは、このような自己完結型パッケージを好む環境向けにFlatpakとしても配布されています。例えばManjaroでは、ソースコードと依存関係の大部分を共有しているにもかかわらず、Pamacでは別々のプログラムとして表示されます。
重要な詳細はそれです パッケージとして相互に依存しないつまり、KWriteだけ、Kateだけ、あるいは両方を同時に使用しても、相互に干渉したり、設定が混乱したり、直接的な依存関係の衝突が起きたりすることはありません。まるで「行儀の良い双子」のように動作します。
KWrite: 軽量エディタですが、決して安くはありません。
KWriteを開いて次のようなものを見たとします 手帳 非常に限られているので、驚かれると思います。 軽量なエディターですが、高度な機能が多数備わっています。アプリケーション メニューから起動して、個々のテキスト、メモ、小さなスクリプトなどを保存しながら、そのまま書き始めることができます。
伝統的にそれに割り当てられている機能には次のものがあります: HTMLエクスポート、選択モードロック、コードトラッキング、ブックマークこれらすべてにより、メモを取るのにも、非公式なコード編集にも非常に便利です。また、単語の自動補完やその他のライティング支援機能も備えています。
持っている 複数の言語で設定可能な構文強調表示また、行末モード(Unix、Windows、Macintosh)の選択とテキストエンコーディングの選択オプションも備えています。ファイルのエンコーディングは必ずしも自動検出されるわけではなく、ファイルを開く際にシステムのデフォルトエンコーディングが使用されることが多いですが、必要に応じて手動で変更することもできます。
もうXNUMXつの優れた機能は FTP や fish などのプロトコルを介してリモート ファイルを操作できます。KDEネットワークインフラストラクチャとの統合。これにより、複雑な外部ソリューションを設定することなく、サーバー上のファイルを簡単に編集できます。
KWriteには以下のオプションも含まれています KPartsテクノロジーによりさまざまなコンポーネントを使用 (以前のバージョンでは、これは大きな革新でした。)これにより、例えばKonsoleコンソールやその他のコンポーネントをエディター内に埋め込むことが可能になりました。その後、Kateエンジンがデフォルトのテキストエディターとして採用され、この統合は確固たるものになりました。
KDEの歴史的背景では、 KWriteはkdebaseパッケージの一部でした さらに最近では、Kateと並んで配布され、リポジトリ内の専用サブディレクトリにコードが配置されています。こうしたことから、Kateは全く別のプロジェクトではなく、同じ基盤技術の異なる側面であるという考えが強固なものとなっています。
共通機能: ブックマーク、ハイライトなど
KWriteとKateはどちらもKTextEditorをベースにしているため、非常に基本的なエディタと比べて大きな違いをもたらすツールをいくつか共有しています。例えば、 一時的なブックマークを使用すると、ドキュメント内を素早く移動できます。.
簡単なキーボードショートカットで、 Ctrl+Bでブックマークを作成しますブックマークメニューからアクセスできます。ブックマークはファイル内には保存されません(実際のコンテンツは変更されません)が、作業中に重要なセクションをマークする便利な方法です。「foobar」のようなランダムな単語をテキストに残して後で探す手間が省け、結局削除し忘れてしまう可能性も少なくなります。
もう一つの重要な機能は 構文の強調表示とドキュメントモードツール メニューから、自動スペル チェックを有効にしてエラーを下線で強調表示したり、特定の形式 (Markdown、HTML、Python、C/C++ など) に固有のモードを選択したりできます。各モードでは、コンテンツを読んで理解しやすくするために、異なる強調表示スキームが適用されます。
もっと具体的に知りたい場合は モードに関係なくハイライトの種類を直接選択するこれは、特定のビジュアルスキームを強制的に適用したい場合に備えて用意されています。このような柔軟性により、同じエディタをプレーンテキストの作成とコードスニペットの迅速なデバッグの両方に使用できます。
さらに、多くのユーザーは特に ドキュメントの概要は右側にあります。テキスト全体の縦向きサムネイルのようなものです。小さく見えますが、セクション、タイトル、コードスニペットなど、特定の場所を見つけて、ワンクリックでその場所に移動するのに驚くほど便利です。
KWrite にはなくて Kate にしかないものは何ですか?
大きな疑問は、「純粋でシンプルな」テキスト編集がほぼ同じであるかどうかだ。 KWrite から Kate に切り替える理由は何ですか? 答えは、プログラマーとして、または複雑なプロジェクトで作業するときに、テキストを取り巻くすべてのもの、つまりパネル、プラグイン、セッション、ターミナルにあります。
ケイトは一つ付け加えた ファイルシステムまたはプロジェクトディレクトリを表示できるサイドバーさらに、「プロジェクト」の概念を扱うため、ファイル同士を関連付けることができ(たとえば、.cpp とその .h、または同じモジュールの複数の構成ファイル)、それらの間のよりスマートなナビゲーションを提供できます。
も含まれています キー(通常はF4)で展開される統合端末これにより、エディタを離れることなく、コマンドの実行、コンパイル、スクリプトの起動、コンソールツールの使用が可能になります。ドキュメントの内容をターミナルに直接送信することもできるため、開発やスクリプト作成にかかる時間を大幅に節約できます。
もう一つのプラスは セッション管理Kate では、ウィンドウ、タブ、開いているプロジェクト、設定のさまざまな構成を保存できるため、作業の種類ごとに異なるプロファイルを使用できます (たとえば、C++ 用に 1 つの環境、Web 編集用に別の環境、ドキュメント ノート用に別の環境など)。
また、ケイト 幅広いプラグインをサポート これらにより、高度な機能が追加されます。例えば、言語サーバー(LSP)との統合によるインテリジェントな自動補完、静的解析、拡張ターミナル、デバッグ、言語固有のツールなどです。こうした拡張機能のエコシステムこそが、Kateを多くの開発者にとって一種のミニIDEにしているのです。
これらの理由から、多くのユーザーはケイトを次のように表現しています。 プログラマーのための非常に完全なツールKWrite は、簡単なタスクや簡単なタスクのための「クリーン」なエディタとして認識されていますが、その内部には強力なオプションも備わっています。
インターフェースと動作の実際的な違い
2つのウィンドウを並べて比較すると、 KWrite のインターフェースと Kate のインターフェースはほぼ同じです。 共通する要素は、ツールバー、テキスト領域、サイドミニビュー、基本メニューなどです。主な違いは、追加のパネルとビューにあります。
KWriteで サイドツールビューは表示されません これらの機能は、Kateのプロジェクトエクスプローラー、ドッキングターミナル、その他のプラグイン由来のパネルに表示されます。ツールバーとURLバー(ファイルパス)のデフォルト設定も変更され、モードに応じて有効または無効にすることができます。
行動レベルでは、KWrite インスタンスやセッションを共有しない開くたびにスタンドアロンエディタのように動作し、高度なセッション管理には関与しません。また、複雑なプラグインも読み込まれないため、Kateが提供する「高度な」機能の一部は利用できません。
どちらでも使えます 非常に似た動作をするタブ複数のドキュメントを開く、クイックオープン、パネルへのビュー分割などは、20年前のKWriteのシングルウィンドウ版と比べて大幅に改善されています。Kateとのコード共有により、KWriteは他の機能に負担をかけずにタブをサポートできるようになりました。
実世界での使用: 軽い編集から専門的な開発まで
KDEユーザーの間では、 KWrite、Kate、あるいはKDevelopを使うのが合理的です一般的に、KWrite は最も軽量、KDevelop は大規模プロジェクト向けの最も重い、そして Kate はその中間に位置し、メガ IDE を必要としないプログラマーの日常業務に最適であると考えられています。
KDE を初めて使う人の多くは、どちらを選択すべきか尋ねますが、通常の答えは次のようになります。 単にテキストを編集したり、メモを取ったり、スクリプトや設定ファイルを再生したりしたいだけなら、KWrite で十分です。定期的にプログラミングを行い、多数のファイルを扱い、プロジェクト、統合ターミナル、セッションなどの機能を重視するなら、Kate の方がはるかに適しています。
KDEをメインのデスクトップ環境として使用していないユーザーもいますが、 彼らは、シンプルさとパワーのバランスが気に入っているため、KWrite を使い続けています。典型的な例としては、XFCE の誰かが、Krusader や KWrite などの一部の KDE アプリケーションを、自分達にとって不可欠であるがゆえにメンテナンスし、依存関係を調整して、自分たちが「肥大化」と考えるもの (活用していない場合は kactivities、knowstuff、kuserfeedback などのコンポーネント) を回避することが挙げられます。
人々が KWriteの非KDE代替品を探す (一部のスタンドアロンGTKやQtエディタなど)そして、それらをテストしてみると、ブロック編集モード(行の部分的な垂直選択)や複数行のコメント入力時の堅牢な動作など、重要な機能が欠けていることに気づきます。これらの機能をすべて満たす代替ツールが見つかるまで、結局KWriteをメインツールとして使い続けることになります。
KDE 環境の他のエディタ: KDevelop と KEdit
KDE エコシステム内では、すべてが KWrite と Kate というわけではありません。 テキスト編集と開発に関連する他のアプリケーションもありますKDevelop やベテランの KEdit など。
KDevelopは フルIDE、かなり重い大規模プロジェクト、複雑なリファクタリング、統合デバッグ、ウィザード、そして幅広いツールに対応するよう設計されており、編集エンジンにはKTextEditorを採用しています。そのため、KateやKWriteに慣れている方であれば、文章作成の感覚は馴染み深いものになるでしょう。しかし、インターフェースやリソース要件に関しては、全く異なるレベルにあります。
KEditは、 一部の環境では代替エディターとしてまだ存在しています。その歴史的な特徴の一つは、右から左に書く言語に関連する双方向テキストのサポートです。かつてはkdeaddonsパッケージの一部であり、テキストタイプに関して特定のニッチな用途に使用されていました。
いずれにせよ、今日の平均的なKDEユーザーは、主に 軽量エディタとしてのKWrite, 高度な編集環境としてのKate さらに必要な場合は、専用の IDE として KDevelop を使用します。
ライセンス、テクノロジー、メンテナンス
技術的なレベルでは、KWrite(そして拡張してKate) インターフェースには Qt を使用して C++ で書かれています。 LGPLライセンスの下で配布されています。これにより、フリーソフトウェアとなり、他のプロジェクトに統合可能となり、KDEコミュニティ内のかなり大規模な開発者チームによってメンテナンスされています。
彼らのコードリポジトリは KDEインフラストラクチャでホストされ、GitHubなどのプラットフォームにミラーリングされますこれはエディタ自体だけでなく、KTextEditorやKSyntaxHighlightingといった基盤となるフレームワークにも当てはまります。また、エラーを報告し、その解決状況を監視できるバグ追跡システムも存在します。
チームは常にそれを奨励しています 新しい協力者が開発に加わる機能の追加、詳細の調整、パフォーマンスの改善など、KWrite と Kate がほぼすべてのコードを共有しているという事実は、すべての修正や改善が自動的に両方のエディターに反映され、重複した作業が削減され、全体的な品質が向上することを意味します。
実際には、これは次のように解釈される。 リポジトリに入る小さな改善はすべて、KDEエディタエコシステム全体に利益をもたらします。Kate と KWrite だけでなく、それらのフレームワークを使用するアプリケーションにも適用され、Plasma デスクトップ内のリファレンスとしての役割が強化されます。
全体像を見ると、KDEのエンドユーザーにとって、今日ではこれ以上のバランスを見つけるのは難しい。 KWriteのような軽量だが強力なエディタ y Kateのような多用途開発ツール特に、両方が並行して実行され、同じ基盤を共有し、互いに競合せず、メモ帳の最も単純な使用から非常に要求の厳しいプログラミング ワークフローまですべてをカバーしていることがわかります。