Các công cụ lập trình mục đích chung tốt nhất để bổ sung cho Vim là gì? [đóng cửa]


22

Tôi đã sử dụng Vim làm trình soạn thảo văn bản của mình được một thời gian và tôi cảm thấy như mình đang đi một chặng đường dài để làm bất cứ điều gì. Tôi sử dụng ctags để gắn thẻ cơ sở mã của mình để điều hướng và tôi sử dụng grep (mặc dù không hiệu quả) để tìm nơi sử dụng các phương thức nhất định. Nhưng tôi có cảm giác có một số công cụ rất hữu ích mà tôi không biết về nó có thể giúp tôi làm việc hiệu quả hơn.

Ngăn xếp phần mềm tốt nhất tôi có thể sử dụng để lập trình chung sẽ bổ sung cho Vim là gì? Làm thế nào để bạn điều hướng một cơ sở mã, chạy make, đẩy các thay đổi vào hệ thống kiểm soát nguồn của bạn, v.v? Bạn có giao diện điều khiển thứ 2 mở bên cạnh Vim không?


2
Vim mình. Có thể bạn không sử dụng đúng plugin / script cho công việc. Nó phụ thuộc vào loại chương trình bạn đang làm, ngôn ngữ nào, công cụ nào khác bạn cần và vv.
cắn

Tôi không chỉ định bất kỳ ngôn ngữ nào để không ảnh hưởng đến câu trả lời tôi sẽ nhận được. Tôi không thực sự tìm kiếm các plugin Vim, mặc dù chúng rất hữu ích.
Louis Salin

Tôi thấy bài thuyết trình này rất hữu ích: zmievski.org/2010/06/vim-for-programmers-on-sl slideshoware
.

Tôi đã làm điều này một wiki cộng đồng. Tôi nhận ra không có câu trả lời tốt nhất cho câu hỏi của tôi. Cảm ơn tất cả các câu trả lời của bạn!
Louis Salin

Câu trả lời:


8

Một tính năng tuyệt vời của vim là dễ dàng tích hợp với các lệnh shell hiện có. Một số công cụ bên ngoài hữu ích nhất là những công cụ được bao gồm trong coreutils và các công cụ xử lý văn bản đơn giản khác. Ví dụ: chúng ta có thể lấy số lượng dòng trong một tệp với:

:! wc -l %

hoặc số lượng từ:

:! wc -w %

Bất kỳ lệnh nào hoạt động trên shell sẽ hoạt động ở đây. Điều này có thể được kết hợp mạnh mẽ với lệnh :read( :r) để đưa đầu ra của lệnh vào tệp. Ví dụ:

:r !wc -l %

Sẽ đặt dòng từ đếm vào tập tin bạn đang chỉnh sửa.

Một ưu điểm khác của việc này là thay thế văn bản bạn hiện đang chỉnh sửa bằng đầu ra của một trong các lệnh này. Ví dụ: bạn có thể định dạng toàn bộ tệp bằng parcách thực hiện lệnh:

:% !par

5

Tôi thấy NERDtree không thể thiếu để điều hướng qua cơ sở mã của tôi. Bên cạnh đó, đầu tư một chút thời gian để trở nên thành thạo trong việc di chuyển xung quanh bộ đệm / cửa sổ của bạn thực sự đáng giá.


+1 để tham khảo plugin tuyệt vời này. ( github.com/scrooloose/nerdtree )
kể từ

4

Dù ngôn ngữ của bạn là gì, bạn sẽ muốn sử dụng một tính năng gọi là ctags cho phép duyệt qua các định nghĩa nguồn. Điều này đòi hỏi một công cụ bên ngoài để tạo các tệp TAGS được VIM sử dụng để khám phá các vị trí của các định nghĩa mã khác nhau trong một dự án.

Nhận công cụ ctags exuberant , nó hoạt động với nhiều ngôn ngữ và v đơn giản để sử dụng.

từ VIM :help ctags

ctags sẽ tạo một chỉ mục của tất cả các định danh trong cây nguồn. Sau đó, bạn có thể sử dụng các lệnh thẻ để điều hướng xung quanh cây nguồn của mình. thấy :help tag-commands. Đơn giản nhất là đặt con trỏ lên một từ khóa và nhấn CTRL- ]. Để quay lại nơi bạn đến từ báo chí CTRL-T

Ngoài ra, bạn có thể muốn xem xét một số mẹo và cải tiến VIM được thảo luận ở đây , đây là một cuộc thảo luận rất toàn diện về một số điều có thể được thực hiện để cải thiện trải nghiệm của vimmer.


Tôi đã đề cập trong câu hỏi của tôi, tôi đã sử dụng ctags, nhưng cảm ơn vì câu trả lời nào! :)
Louis Salin

4

Vim là một công cụ rất mạnh mẽ, tôi chắc chắn tất cả các bạn đã biết điều đó. Bạn sẽ bắt đầu tăng năng suất bằng cách sử dụng vim trong vòng một vài tuần. Nhưng bạn sẽ không bao giờ bão hòa kiến ​​thức của bạn về Vim. Vì vậy, tôi vì một người luôn luôn tìm kiếm những cách thức mới và hiệu quả trong Vim. Có một anh chàng tên là Derek Wyatt , người đã thực hiện một số screencasts tuyệt vời về việc sử dụng Vim, và cả trên các plugin anh ta sử dụng.

Một vài trong số các plugin mà tôi sử dụng

  1. lệnh-t Điều này làm cho các tập tin duyệt web dễ dàng và nó rất thông minh .

    Trình cắm Command-T cung cấp một cơ chế cực kỳ nhanh, trực quan để mở các tệp với số lần nhấn phím tối thiểu. Nó được đặt tên là "Command-T" bởi vì nó được lấy cảm hứng từ cửa sổ "Chuyển đến tệp" được liên kết với Command-T trong TextMate.

  2. fuzzyfinder Tôi sử dụng phần lớn này để đệm bộ đệm và thay đổi thư mục hiện tại.

    Fuzzy Downloader cung cấp các cách thuận tiện để nhanh chóng tiếp cận bộ đệm / tệp / lệnh / bookmark / thẻ bạn muốn. Fuzzy Downloader tìm kiếm với mẫu mờ / một phần mà nó đã chuyển đổi một mẫu đã nhập

  3. NERDTree Đây là plugin trình duyệt tệp tốt nhất cho vim.

    Cây NERD cho phép bạn khám phá hệ thống tệp của mình và để mở các tệp và thư mục. Nó trình bày hệ thống tập tin cho bạn dưới dạng cây mà bạn thao tác bằng bàn phím và / hoặc chuột. Nó cũng cho phép bạn thực hiện các hoạt động hệ thống tập tin đơn giản.

  4. XPTemplate Các plugin tạo khuôn mẫu tốt nhất trên thế giới.

    Mã công cụ đoạn mã cho Vim, với thư viện đoạn mã. XPTemplate cho phép bạn viết mã một cách trơn tru, nhanh chóng và thoải mái.

  5. rails.vim Nếu bạn làm rails dev thứ, điều này là không thể thiếu.

    TextMate có thể là cơn sốt mới nhất để phát triển ứng dụng Ruby on Rails, nhưng Vim là mãi mãi. Plugin này cung cấp các tính năng sau để phát triển ứng dụng Ruby on Rails.

  6. NerdVerer Làm cho bình luận trong bất kỳ loại mã nào dễ dàng.

Và đó chỉ là một vài trong số các plugin mà tôi sử dụng, Để tải xuống tất cả các plugin bằng vimrc của tôi, hãy kiểm tra các dotfiles của tôi


3

Có một plugin tuyệt vời cho VIM để kiểm tra cú pháp Syntastic . Có rất nhiều công cụ khác có sẵn để quản lý tập tin, xây dựng, v.v. Truy cập IRC #vim trên freenode.net, có rất nhiều người hữu ích ở đó.


3

yêu thích của tôi là cscope. Nếu bạn đã biên dịch vim với sự hỗ trợ của cscope, bạn có thể trực tiếp sử dụng các lệnh cscope từ VIM. ví dụ: tìm kiếm các tệp được bao gồm, các hàm được gọi bởi hàm xyz, v.v. Tôi đã thử nó với kho lưu trữ mã nguồn rất lớn. Nó giúp rất nhiều.

http://cscope.sourceforge.net/cscope_vim_tutorial.html


1

Nếu bạn đang lập trình bằng bất kỳ ngôn ngữ nào được hỗ trợ bởi GCC (C, C ++, Java, Fortran) thì Clewn là một plugin tuyệt vời tích hợp trình gỡ lỗi GDB vào VIM. Tôi thực sự đã thấy nó là một trong những giao diện tốt nhất cho GDB.


0

Tôi thường thiết lập một screenphiên cho mỗi dự án. Vim ở cửa sổ 0 và tôi sử dụng cửa sổ 1 cho phiên shell. Nếu tôi đang viết mã bằng một ngôn ngữ có REPL tốt, tôi thường chạy nó trong cửa sổ 2. Tất nhiên, bạn không cần screenphải làm điều này; bạn có thể làm điều đó với các cửa sổ đầu cuối khác nhau hoặc với các tab trong thiết bị đầu cuối multitab. Tôi thấy screenổn định hơn các lựa chọn thay thế khác: nếu ứng dụng thiết bị đầu cuối của bạn gặp sự cố, bạn có thể bắt đầu một thiết bị đầu cuối khác và kết nối lại với screenphiên vẫn đang chạy . screencũng rất nhanh để điều hướng trong khi bạn học nó (giống như vim chính nó).

Tôi chủ yếu kết thúc bằng cách sử dụng phiên shell cho các hoạt động kiểm soát phiên bản phức tạp như khởi động lại hoặc hợp nhất: những điều đơn giản hơn có thể được thực hiện từ dòng lệnh của vim (ví dụ: :!git commit % -m 'Added info aboutmàn hình .') hoặc bằng cách sử dụng addon chạy trốn . Tôi thấy fugitive's :Gmove(đổi tên bộ đệm hiện tại cả trong vim và chỉ số git) và :Gdiff(gọi vimdiff trên bộ đệm hiện tại với một điểm trước đó trong lịch sử của nó) đặc biệt hữu ích. Bạn cũng có thể thực hiện những việc như xây dựng thông điệp cam kết trong bộ đệm đầu, sao chép văn bản từ nhiều phần khác nhau của mã và sau đó cam kết với:%!git commit -F /dev/stdin

Tôi cũng sẽ sử dụng phiên shell để kiểm tra chức năng / tích hợp nếu áp dụng cho bất cứ điều gì tôi đang làm việc, ví dụ nếu tôi đang viết một tiện ích dòng lệnh.

Chức năng quickfix của Vim rất hữu ích để gỡ lỗi, mặc dù dường như có một addon khác nhau cần thiết cho mỗi ngôn ngữ mà bạn có thể muốn làm việc. Chúng dường như cũng sử dụng nhiều kỹ thuật gọi khác nhau, ánh xạ tới các phím chức năng hoặc các chuỗi khóa bắt đầu bằng \hoặc ,, hoặc để các lệnh tùy chỉnh hoặc bằng cách tự động được gọi khi bộ đệm được lưu. Cho đến nay tôi vẫn chưa thực sự bận tâm đến việc này, và chỉ cần đọc thử nghiệm đơn vị hoặc kết quả lint vào bộ đệm đầu bằng cách sử dụng, ví dụ :r !python -m doctest whatever.py. Sửa đổi mã, chuyển trở lại bộ đệm đầu, uđể hoàn tác, sau đó nhấn :rvà mũi tên lên (hầu hết thời gian) để lấy lại lệnh đó. Nhưng nó có thể đáng để bạn tìm kiếm một addon cho việc này, tùy thuộc vào ngôn ngữ bạn làm việc.

Đối với các ngôn ngữ được biên dịch phổ biến như C, java, v.v., :makesẽ thực hiện xây dựng và hỗ trợ cho danh sách quickfix được thiết lập tốt. Vì vậy, sau đó bạn có thể làm :copenđể hiển thị bộ đệm quickfix. Nó sẽ hiển thị một danh sách các lỗi, mỗi lỗi một dòng; nhấn Entervào một dòng sẽ chuyển cửa sổ khác của bạn đến điểm đó trong tệp đó.

Nếu bạn đang làm việc với nhiều dự án cùng một lúc, bạn có thể thực hiện :lmakeđể sắp xếp danh sách các lỗi sẽ được lưu trong danh sách vị trí : đây giống như danh sách quickfix nhưng được liên kết với một cửa sổ thay vì là một đơn vị trong bạn vim dụ. :lopensẽ mở một danh sách vị trí cho cửa sổ hiện tại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.