2012-04-02 24 views
9

Câu hỏi in đậm dưới đây. Đây là một câu hỏi lập trình, do đó, không chuyển đến kết luận và bỏ phiếu để đóng.Bất kỳ công cụ tốt nào để nhanh chóng chuyển đến tài liệu lập trình

Tôi là lập trình viên C++. Tôi sử dụng OS X/quicksilver hoặc ubuntu/compiz/gnome do làm máy tính để bàn của mình. Tôi cố gắng không chạm vào chuột và tôi sử dụng nhiều máy tính để bàn và tôi sử dụng cả hai thứ này trong số các ổ đĩa này từ ổ đĩa. Đối với lập trình tôi sử dụng bash và vim.

Vì tôi là lập trình viên C++, tôi cần tham khảo tài liệu rải rác khắp nơi, ví dụ: STL/Boost/CMAKE/zeromq/bộ đệm giao thức/Mongodb/rapidJson/luajit và danh sách tiếp tục.

Nhảy tới các sách hướng dẫn tham khảo khác nhau là một trình ngắt quãng quá trình suy nghĩ tinh thần/thời gian thực. Có lẽ bạn không bị thuyết phục rằng đây thực sự là một vấn đề, nhưng nếu bạn sử dụng nhiều thư viện từ tăng cường, mà không hoàn thành mã, bạn sẽ đánh giá cao rằng đây thực sự là một vấn đề. Làm cách nào để mọi người quản lý liên kết thủ công tham chiếu của họ và cách nhanh nhất để chuyển đến sách hướng dẫn tham khảo là gì? Dấu trang của trình duyệt tiêu chuẩn không phải là câu trả lời, và bất cứ điều gì bạn đề nghị nên được thực hiện với số lần nhấn phím ít nhất có thể, hoặc độ trễ thấp nhất từ ​​thông tin cần tổng hợp đến thông tin cần được thỏa mãn.

Có lẽ trình duyệt tùy chỉnh hoặc plugin mạnh mẽ mà tôi không biết? Đối với chuyển hướng thư mục tôi sử dụng vim của NERDTree, có lẽ một cái gì đó dọc theo những dòng? Ví dụ, tôi có thể gõ hệ thống tập tin tăng cường và có thể nhảy trực tiếp đến trang tham chiếu mã của hệ thống tập tin tăng cường.

+0

Điều gì khiến bạn nghĩ rằng việc sử dụng VIM vẫn là lựa chọn tốt nhất? Đặc biệt là sau khi bạn đã chạy vào một vấn đề mà hiện đại ngày IDE sửa chữa cho bạn? –

Trả lời

1

Tôi nhập Shift + k để xem C trang người đàn ông.

+0

Có đó sẽ là điểm khởi đầu tốt = D. Tuy nhiên, hầu hết các thư viện C++ đều có hướng dẫn sử dụng trực tuyến trong những ngày này. Hơn nữa, chỉ có clang có thể phân tích cú pháp c + + cho các công cụ mã hóa để xác định rõ ràng các định danh với các ngữ nghĩa chính xác, do đó không có bất kỳ công cụ nào cho việc này. Vì vậy, đầu tiên tôi sẽ cần phải dây lên clang ++ với vim, sau đó tôi cần phải sử dụng hệ thống con người đàn ông để trampoline để hướng dẫn tham khảo dựa trên web: D –

+0

Tôi cũng phải bình thường hóa các định danh cho một hình thức authorotative (chẳng hạn như boost :: filesystem :: path to boost-fileysten) để các công cụ hướng tôi đến tài liệu cấp cao nhất. Nó sẽ nhanh hơn chỉ cần gõ "tăng hệ thống tập tin" trong một số công cụ và nó đi đến trang bên phải. –

2

Tôi sợ rằng những gì bạn muốn là một IDE, mà Vim, tuy nhiên tôi thích nó, thì không.

a plugin that gives access to the standard library documentation. Tuy nhiên, Vim không thể tự mình hiểu được mã của bạn và kỳ diệu thích nghi với bất kỳ thư viện nào bạn đưa vào dự án của mình. Wiki Vim cũng có twopages có thể được quan tâm.

+0

không có C++ ide, ngoài studio trực quan, phân tích cú pháp C++ hiện đại một cách chính xác hoặc đủ nhanh. đó là lý do tại sao tôi đã tránh xa C++ IDE. Đây chính xác là lý do tôi đang tìm kiếm một số dạng ứng dụng quản lý liên kết/worflow mà sẽ cho phép tôi chuyển sang URL nhanh chóng. Có nói rằng tôi không nhớ một công cụ như quicksilver hoặc gnome-do đó sẽ cho phép tôi nhảy vào liên kết nhanh. –

+0

Tôi không biết nhiều về Gnome Do nhưng thật dễ dàng để thêm các tìm kiếm web tùy chỉnh vào Quicksilver trong Tùy chọn> Danh mục> Tùy chỉnh. Nếu thư viện của bạn có tài liệu có thể tìm kiếm, thì ít nhất một phần, có thể giải quyết được vấn đề của bạn. – romainl

+0

+1 cho điều đó. Tôi không phát triển trên bản đồ tại thời điểm cụ thể này. Nhưng tôi cho rằng gnome-do sẽ có chức năng tương tự. Tôi sẽ nhìn vào nó. –

4

Nếu tài liệu tham khảo tài liệu của bạn có URI được xác định rõ, bạn có thể tạo một chương trình nhỏ tự động xây dựng URI đúng cho id tài liệu và một số định danh thực thể.

Ví dụ, tôi đã viết một Ubiquity lệnh nhỏ cho phép tôi để nhanh chóng mở tài liệu mới nhất của bất kỳ tổ chức Qt, chỉ đơn giản bằng cách trao đổi với Firefox, gõ ctrl + gian để popup Ubiquity console và sau đó gõ qt QSomeClass .

Đây là mã hoàn chỉnh cho lệnh Ubiquity (nếu bạn đã cài đặt Ubiquity, bạn có thể đăng ký vào thức ăn chăn nuôi lệnh trên this blank page):

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." 
}); 

Như bạn có thể thấy, nó rất đơn giản và có thể dễ dàng được điều chỉnh cho các tài liệu trực tuyến khác, miễn là URL được xây dựng tốt.

Sửa

Đây là một phiên bản tổng quát hơn mà bạn có thể thích ứng với nhu cầu của bạn (bạn chỉ cần điền vào bản đồ mẫu):

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)); 
    } 
}); 

mẫu sử dụng:

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

Tất nhiên, đây là một triển khai rất ngây thơ, điều đó sẽ thất bại trên hầu hết các trang web. Một cách tiếp cận phát triển hơn có thể thay thế các mẫu URL trong bản đồ theo chức năng, do đó cung cấp quyền kiểm soát nhiều hơn đối với việc xây dựng URL mục tiêu. Tôi sẽ để điều này như một bài tập cho người đọc :). Một giải pháp khác có thể là thực hiện tìm kiếm trên trang web (giả sử nó cung cấp một API REST thích hợp để tìm kiếm) và chuyển sang kết quả đầu tiên.

Các vấn đề liên quan