9

以下の太字の質問。これはプログラミングに関する質問なので、結論に飛びついて投票で締めくくらないでください。

私は C++ プログラマーです。OS X / quicksilverまたは ubuntu / compiz / gnome doをデスクトップとして使用しています。私はマウスに触れないようにしており、複数のデスクトップを使用しており、これらの両方をキーボードから操作してタイリングしています。プログラミングには bash と vim を使用します。

私は C++ プログラマーなので、STL / Boost / CMAKE / zeromq / protocol buffers / Mongodb / rapidJson / luajit など、あちこちに散らばっているドキュメントを参照する必要があり、リストは続きます。

さまざまなリファレンス マニュアルにジャンプすることは、リアルタイム シンク/精神的思考プロセスの破壊者です。これが本当に問題であると確信していないかもしれませんが、boost の複数のライブラリをコード補完なしで使用している場合、これが本当に問題であることがわかるでしょう。 人々はリファレンス マニュアルのリンクをどのように管理していますか?また、リファレンス マニュアルにジャンプする最も速い方法は何ですか? 標準的なブラウザのブックマークは答えではありません。あなたが提案することは、可能な限り少ないキーストロークで実行するか、情報ニーズの合成から情報ニーズを満たすまでの待ち時間を最小限に抑える必要があります。

おそらくカスタムブラウザ、または私が知らない強力なプラグインですか?ディレクトリ ナビゲーションには、vim のNERDTreeを使用します。たとえば、boost-filesystem と入力すると、boost-filesystem のコード参照ページに直接ジャンプできるはずです。

4

3 に答える 3

4

ドキュメント参照の URI が明確に定義されている場合は、ドキュメント ID と何らかのエンティティ識別子を指定して、正しい URI を自動的に構築する小さなプログラムを作成できます。

たとえば、私は簡単なUbiquityctrlコマンドを作成しました。これにより、Firefox に切り替え、 +を入力spaceして Ubiquity コンソールをポップアップし、次にqt QSomeClass.

Ubiquity コマンドの完全なコードは次のとおりです (既に Ubiquity をインストールしている場合は、この空白のページでコマンド フィードを購読できます)。

CmdUtils.makeSearchCommand({
  names: ["qt"],
  author: {name: "Luc Touraille"},
  url: "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html",
  icon: "http://qt.nokia.com/favicon.ico",
  description: "Searches the Qt Documentation for your word."
});

ご覧のとおり、URL が適切に構成されていれば、非常に単純で、他のオンライン ドキュメントに簡単に適用できます。

編集

ニーズに合わせて調整できる、より一般的なバージョンを次に示します (テンプレート マップに入力するだけです)。

var urlTemplates = {
  "QT": "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html",
  "MPL": "www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/{QUERY}.html",
  ".NET": "http://msdn.microsoft.com/en-us/library/{QUERY}.aspx"
};

CmdUtils.CreateCommand({
    names: ["doc"],
    author: {name: "Luc Touraille"},

    arguments: [ {role: "object",
                  nountype: /^[0-9a-zA-Z_.-]*$/,
                  label: "entity"
                 },
                 {role: "source",
                  nountype: [source for (source in urlTemplates)],
                  label: "documentation"
                 } ],

    description: "Searches the documentation for some entity on a given documentation reference.",

    _getSearchResultUrl: function( arguments ) {
      var documentationSource = arguments.source.text;

      var urlTemplate = urlTemplates[documentationSource.toUpperCase()];

      return urlTemplate.replace("{QUERY}", arguments.object.text);
    },

    execute: function( arguments ) {
      Utils.openUrlInBrowser(this._getSearchResultUrl(arguments));
    }
});

サンプルの使用:

doc QMainWindow from qt
doc from mpl vector
doc system.idisposable from .net
doc this from .net // with some text selected

もちろん、これは非常に単純な実装であり、ほとんどのサイトで失敗します。より進化したアプローチとして、マップ内の URL テンプレートを関数に置き換えることで、ターゲット URL の構築をより細かく制御できます。これは読者の演習として残しておきます:)。もう 1 つの解決策は、Web サイトで検索を実行し (検索用の適切な REST API が提供されている場合)、最初の結果にジャンプすることです。

于 2012-04-02T15:14:37.663 に答える
2

残念ながら、あなたが必要としているのは IDE ですが、Vim は好きですが、そうではありません。

標準ライブラリ ドキュメントへのアクセスを提供するプラグインがあります。ただし、Vim はそれ自体でコードを理解することはできず、プロジェクトに含めるライブラリに魔法のように適応することはできません。Vim Wiki にも、興味深い2 つの ページがあります。

于 2012-04-02T13:52:26.473 に答える
1

Shift+と入力してman ページkを表示します。C

于 2012-04-02T13:19:10.327 に答える