Vim hoặc Emacs có thiết thực cho các ngôn ngữ như .Net hoặc Java không? [đóng cửa]


18

Vì vậy, tôi chủ yếu là một nhà phát triển .Net, người thỉnh thoảng thực hiện một số thứ trong Java, Python và một vài thứ khác. Tôi đã nghe rất nhiều người khen ngợi Vim và Emacs vì hiệu quả tăng lên rất nhiều khi những điều cơ bản được đóng đinh. Tôi chắc chắn có thể thấy có bao nhiêu tính năng có thể rất hữu ích với thực hành đầy đủ, và thậm chí tin rằng đường cong học tập có thể đáng để nỗ lực. Tuy nhiên ... có vẻ như bạn thực sự sẽ phải là một loại thuật sĩ macro và phím nóng để có hiệu quả trong Vim hoặc Emacs như nhà phát triển trung bình ở Visual Studio, Netbeans, Eclipse hoặc các nền tảng khác. Tôi đã bắt đầu học cách sử dụng Vim và nghĩ rằng một số tính năng của nó là tuyệt vời (ví dụ chỉnh sửa cột), nhưng có vẻ như nhiều công cụ được cung cấp bởi các IDE có trọng lượng nặng chỉ đơn giản là không thể thay thế mua ngay cả văn bản bị ngấm nước nhất biên tập viên.

  • tạo tệp dbml cho Linq-to-SQL
  • Kiểm tra tự động
  • thiết kế giao diện người dùng
  • Tạo / tổ chức dự án và giải pháp

Tôi biết Vim và Emacs có thể làm rất nhiều điều tương tự rất mạnh mẽ mà VS có thể (như intellisense, tái cấu trúc, v.v.) và nó có thể thực hiện một số hoặc tất cả các ví dụ mà tôi đã cung cấp, nhưng có thực tế không khi nói rằng ai đó làm việc trên các nền tảng này sẽ thực sự được hưởng lợi từ Vim hoặc Emacs?


2
Chúng tôi làm việc trong Eclipse tại cửa hàng của tôi, nhưng có một anh chàng ở đây sử dụng Vim làm trình soạn thảo pimary của anh ấy và Eclipse chỉ để biên dịch và các tác vụ loại quản lý mã.
Michael K

Câu trả lời:


14

Bạn đã có một loạt các khái niệm đang diễn ra ở đó, điều này có thể không đáng ngạc nhiên vì VS kết hợp rất nhiều tính năng khá khác biệt với nhau. Một trích dẫn (từ trang web này) cho thấy Emacs không phải là một IDE tốt, Unix là một IDE tốt. Ý tưởng là trong thế giới Linux / Unix, bạn dựa vào nhiều công cụ chuyên dụng kết hợp tốt với nhau chứ không phải là một công cụ nguyên khối làm tất cả.

Bây giờ, tôi chủ yếu lập trình trong C # và tôi sử dụng VS để làm điều đó. Tôi cũng thực sự yêu Emacs và sử dụng nó cho tất cả mọi thứ khác. Bây giờ, như bạn nói, những gì bạn có thể làm trong Emacs và những gì tốt hơn để làm trong Emacs là khác biệt. Nhưng trong nhiều trường hợp, đó không phải là ánh xạ 1-1 và có nhiều cách khác nhau để đạt được cùng một mục tiêu bằng trình chỉnh sửa văn bản và / hoặc các công cụ khác.

Ban đầu tôi sẽ giải quyết từng điểm của bạn, nhưng câu trả lời luôn được rút gọn thành "có, bạn có thể" dưới một hình thức nào đó. Thông thường, bạn sẽ dựa vào: 1) một công cụ bên ngoài (như nhà thiết kế giao diện người dùng) để tạo mã cho bạn, nhập nó; 2) hỗ trợ tự động hóa từ bên trong trình chỉnh sửa (như mã Elisp trong Emacs) để tự động hóa các tác vụ lặp đi lặp lại; hoặc 3) bạn sẽ điều chỉnh để sử dụng các công cụ dựa trên văn bản thay vì các công cụ trực quan (như sử dụng MSBuild và viết các tệp dự án của riêng bạn thay vì dựa vào thiết lập của VS).

Trong thế giới Emacs, bạn không có một công cụ làm tất cả, bạn có rất nhiều công cụ và khả năng phát triển nhiều công cụ hơn khi bạn cần chúng. Tôi chưa biết đủ để làm tất cả những điều đó, vì vậy tôi sử dụng VS và tôi hài lòng với các công cụ mà nó mang lại cho tôi. VS là một IDE thực sự mạnh mẽ, thực sự tốt. Bây giờ nếu tôi đang làm Java, tôi sẽ phải tranh luận về công cụ nào tôi sẽ sử dụng vì tôi không biết rõ về Eclipse hoặc IntelliJ. Đối với bất kỳ ngôn ngữ nào khác, Emacs thắng khá nhiều vì nó sẽ giúp tôi rất nhiều so với bất kỳ trình soạn thảo văn bản hoặc IDE nào đã hoàn thành mà các ngôn ngữ đó có thể sử dụng. (Ngoại trừ có thể là Smalltalk, nhưng đó là một trường hợp duy nhất.)


6

Nhưng có thực tế không khi nói rằng ai đó làm việc trên các nền tảng này sẽ thực sự được hưởng lợi từ Vim hoặc Emacs?

Để tôi cho bạn ví dụ của tôi: Tôi làm việc trên một hệ thống phần lớn (nhưng không phải 100%) được mã hóa bằng C #. Hệ thống không thể được xây dựng từ Visual Studio - nó quá phức tạp. Do đó, tôi không có tệp sln (một số người đã cố gắng duy trì một tệp mặc dù chúng tôi không xây dựng sản phẩm với nó, nhưng đó hóa ra là một nhiệm vụ bất khả thi) và không có lợi ích của việc truy cập mã, duyệt mã, sơ đồ lớp, vv Công cụ làm việc cho tôi là vim + ctags. Ngay cả điều đó không hoàn hảo (ctags rất dễ bị nhầm lẫn), nhưng cách tốt hơn là sử dụng trình chỉnh sửa mã kém hơn không có hỗ trợ duyệt mã.

Bây giờ, tôi hiểu rằng hầu hết các nhà phát triển .NET hoặc Java không ở cùng vị trí với tôi và họ có lẽ tốt hơn khi sử dụng IDE nếu nó có trình soạn thảo mã tốt hoặc ít nhất là một bổ trợ giúp cải thiện mặc định. Đối với Visual Studio có các tiện ích bổ sung như VsVim có thể giúp trải nghiệm mã hóa trở nên thú vị hơn. Tương tự đối với Eclipse AFAIK.


3

Tôi nghi ngờ có nhiều người sử dụng VIM hoặc Emacs độc quyền nữa. Nhưng tôi vẫn chưa tìm thấy một nhà phát triển nào không sử dụng trình soạn thảo văn bản (có thể là một trong số đó hoặc một cái gì đó khác) để nói về một IDE đầy đủ cho một số thứ, thường là nhiều thứ.

Hãy nhớ rằng công việc của bạn còn nhiều hơn là viết mã Java, C # hoặc C ++. Có tập lệnh ANT, tệp tạo tệp, tệp XML, tệp cấu hình thuộc nhiều loại. Và đối với nhiều nhiệm vụ nhỏ, thời gian khởi động của IDE đó có thể đơn giản là quá dài. Eclipse có thể mất vài phút để bắt đầu, VS tương tự. Để nhanh chóng thay đổi một cái gì đó trong một nguồn duy nhất hoặc chỉ kiểm tra một cái gì đó trong một tệp đã biết, quá lâu. Tải tệp trong VIM chỉ mất vài giây.


1
mặc dù notepad ++ là tốt.
Raffael

chưa bao giờ sử dụng cái đó, nhưng thực sự đã thấy người khác sử dụng nó (Tôi là một VIM lộn xộn :)).
jwenting

2

Tôi thấy rằng sử dụng IDE và vim (trình soạn thảo yêu thích cá nhân của tôi) không phải là khái niệm loại trừ lẫn nhau. Khi thực hiện phát triển .NET, tôi thường thiết lập một tổ hợp phím nóng sẽ mở tệp hiện tại tôi đang làm việc trong IDE trong vim và đặt con trỏ ở cùng một vị trí. Bằng cách này, nếu tôi muốn làm một thứ mà vim rất tuyệt, (như sử dụng macro, chỉnh sửa dọc, thụt lại, khuếch tán, v.v.), thì tôi nhấn tổ hợp phím và đập tôi có trình soạn thảo yêu thích của mình, làm các thay đổi của tôi, lưu tệp và thoát, sau đó tôi quay lại IDE một lần nữa (bạn có thể thiết lập nó để tệp tự động tải lại khi nó được chỉnh sửa bên ngoài IDE trong VS). Bằng cách này tôi có được điều tốt nhất của cả hai thế giới.

Tôi đã từng sử dụng các ngôn ngữ kịch bản để thao tác các tệp văn bản theo những cách phức tạp. Khi tôi phát hiện ra sức mạnh của việc sử dụng macro của vim (và một số tính năng khác), tôi phát hiện ra rằng tôi có thể thực hiện các loại chỉnh sửa / thao tác này nhanh hơn và hiệu quả hơn nhiều so với ngôn ngữ kịch bản.

Nó rất phổ biến đối với tôi để tạo một tập lệnh shell để thực hiện một số điều phức tạp bằng cách sử dụng vim, thực thi tập lệnh shell mà tôi đã xây dựng và sau đó ném nó đi.

2 xu của tôi :)


Vâng, tôi đã đùa giỡn với một vài plugin để VS đưa tôi vào emacs, sử dụng emacs làm "cửa sổ soạn thảo mã" hoặc chỉ sử dụng các phím bấm của emacs. Không yêu ai trong số đó. Một macro để mở emacs và nhảy đến cùng một điểm con trỏ nghe có vẻ là một ý tưởng khá tuyệt vời. Tôi có thể phải thử nó. Tôi chủ yếu chỉ sao chép-dán giữa hai khi tôi cần thực hiện một số thao tác văn bản nặng.
CodexArcanum

0

Hãy xem các dự án OpenIDEContinous Tests . Đầu tiên tập trung vào việc thêm hỗ trợ dự án .NET cho bất kỳ trình soạn thảo nào, bao gồm cả VIM và Emacs. Một cái khác là một người chạy thử nghiệm liên tục tương tự như AutoTest / pythons Sniffer / Autonose của ruby. Nó có thể chạy như một plugin VS hoặc độc lập.

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.