2009-03-14 54 views
22

Tôi làm việc như một nhà phát triển C# trong một cửa hàng hoàn toàn của Microsoft.Có lý do nào khiến nhà phát triển C# nên học Emacs/Vim không?

Gần đây tôi đã bắt đầu tự dạy bản thân bằng cách sử dụng gas và Linux trong thời gian rảnh rỗi của tôi. Tôi thích rối tung với Linux, tôi vẫn còn rất mới với nó.

Tôi tiếp tục nghe tôi nên học VIM hoặc Emac nhưng điều này hoàn toàn không có cách nào tôi cần để sử dụng chúng trong công việc, vì vậy tôi cảm thấy có chút thời gian rót vào làm chủ một trong số chúng. Tồi tệ hơn là tôi đang tự hỏi nếu học VIM hoặc Emacs có thể làm cho tôi chậm hơn với studio trực quan như tôi muốn khó hiểu các phím cắt ngắn.

Hiện tại tôi đang chỉnh sửa trong Linux bằng cách sử dụng SciTE (Tôi nghĩ điều này đã trở thành notepad ++ trên cửa sổ).

Đối với người làm việc trong môi trường sản phẩm thuần túy của MS, có lý do thực sự nào để tôi học Emacs/VIM không? Tôi thấy rằng có một thiết lập trong vs studio để sử dụng các phím tắt Emacs, có ai ở đây có năng suất cao hơn bằng cách làm chủ chúng trong vs, hoặc nói cách khác bạn có thể thấy nó có giá trị trong khi?

Cảm ơn trước!

liên quan:Is learning VIM worth the effort?
liên quan:Is it worth investing time in learning to use Emacs?
liên quan:Why should I use an IDE? (nhìn từ The Otherside)

+0

Tôi thường tự hỏi điều tương tự, nhưng tôi sẽ bị kích động bởi những thứ đơn giản như phím enter và mũi tên không hoạt động theo cách tôi mong đợi. Đó là bản năng mà tôi đã có quá nhiều rắc rối phá vỡ bản thân mình. – AaronLS

Trả lời

15

Tôi làm việc trong một cửa hàng Microsoft 90%, nhưng tôi vẫn sử dụng gvim mỗi ngày. Tôi có một plugin vi cho mỗi IDE tôi làm việc với. Tôi muốn khuyên bạn nên vim nếu bạn đang đi để tìm hiểu một hay khác, nhưng tôi biết người dùng emacs sẽ mạnh mẽ không đồng ý.

emacs và vi đã tồn tại trong một thời gian dài và cả hai đều rất mạnh mẽ. Việc học một trong những điều này có thể mở mắt bạn đến một thế giới mã hóa hiệu quả hơn.

24

Bắt đầu ngọn lửa chiến tranh :)

Tôi một người nghiện VIM và không xấu hổ khi thừa nhận điều đó. Tôi thấy rằng việc sử dụng VIM làm cho tôi có năng suất cao hơn đáng kể trong cuộc sống hàng ngày của mình. Mã hóa nhanh hơn rất nhiều khi bạn không phải rời tay khỏi bàn phím.

Theo mặc định, VS có hỗ trợ kém cho các ràng buộc VIM. Tuy nhiên, có sẵn một trình bổ sung giá rẻ (ViEmu) cung cấp các khóa chính VIM cho Visual Studio tuyệt vời. Tôi có giấy phép cá nhân và tôi tin rằng nó đáng giá mỗi xu.

Điều đó được cho biết có một đường cong học tập dốc được liên kết với VIM. Nó sẽ trong tất cả khả năng giết năng suất của bạn trong một hoặc hai tuần. Sau đó, mặc dù lợi ích sẽ bắt đầu đến và bạn sẽ nhận thấy một tăng trong quyền hạn sản xuất của bạn.

+2

Tôi sẽ chỉ ra tình trạng mất năng suất tạm thời trong khi bạn đang sử dụng Vim. Nếu bạn quay trở lại trình soạn thảo chuẩn, bạn không nên bị chậm lại, nhưng sẽ kết thúc thất vọng khi bạn không sử dụng Vim. –

0

hãy xem JP Boodhoo và những gì anh ấy đang làm www.jpboodhoo.com. Ông và Kyle Bailey đã viết blog gần đây về việc sử dụng VIM như là một phần của kinh nghiệm phát triển của họ với VS2008.

3

Tôi từng sử dụng VIM gần như độc quyền, và sau khi chuyển đến một cửa hàng MS gần 100%, không thấy có vấn đề gì khi chuyển đổi qua lại.

VIM và EMACS rất tuyệt nếu bạn sẵn sàng tìm hiểu các phím tắt. Tôi thấy rằng tôi không thực sự có vấn đề khi tôi quay trở lại và chuyển tiếp - Tôi nghĩ rằng nó giúp họ là một môi trường hoàn toàn khác so với VS, thật dễ dàng để thực hiện chuyển đổi tinh thần.

Bạn luôn có thể bắt đầu chậm - sử dụng chúng và xem cách hoạt động. Bạn sẽ có một số đường cong học tập, nhưng nó rất nhiều vào bạn.

Nếu Scite làm việc cho bạn và bạn chỉ đang "chơi đùa" như một sở thích, nó có thể không đáng để thử. Đối với tôi, nỗ lực học hỏi những cách làm việc/suy nghĩ mới mẻ và khác biệt là một phần của niềm vui.

+1

Tôi thấy rằng khi tôi chuyển từ Vim sang một trình soạn thảo thấp hơn như VS, năng suất của tôi mất đi một cách thận trọng vì tất cả các công cụ tôi quen thuộc có trong Vim đột nhiên không có và gần như không thể phục hồi. – greyfade

+1

Đó là cách tôi đã từng cảm thấy trong VS - nhưng VS cũng có nhiều công cụ mà VIM không làm - đặc biệt nếu bạn có bất kỳ addins nào như resharper. Đó là tất cả về việc học tập các bộ công cụ khác nhau. Tuy nhiên, tôi vẫn yêu VIM cho nhiều nhiệm vụ. :) –

2

Nắm vững một trình soạn thảo tốt là luôn đáng, như một nhà phát triển bạn dành nhiều thời gian gõ văn bản đơn giản, viết chương trình, XML, HTML, bạn có thể tiết kiệm nhiều của thời điểm đó bằng cách sử dụng một trình soạn thảo tốt và sử dụng nó hiệu quả.

Tôi bắt đầu học Vi như chín năm trước và giờ tôi không thể sống thiếu nó.

Dù mà editor bạn chọn, tôi nghĩ rằng hầu hết bạn sẽ có thể tìm các plugin để có mô hình đầu vào của biên tập viên của bạn lựa chọn, trong tất cả các IDE lớn của, cho Visual Studio bạn có thể sử dụng ViEmu hoặc Emacs Keybindings

1

Học một sẽ được completley giá trị nó. Cá nhân tôi sẽ giới thiệu emacs nhưng tôi thiên vị. Im 99% chắc chắn rằng emacs có thể được thiết lập để phụ trợ devlopment .net (không thể nghĩ của các từ thích xin lỗi).

4

Tôi cũng làm việc cho một cửa hàng duy nhất của Microsoft, nhưng, ở nhà, tôi chỉ sử dụng Linux. Đủ để nói rằng tôi sử dụng Vim độc quyền để chỉnh sửa ở nhà. Tại nơi làm việc, tôi sử dụng Visual Studio cho tất cả phát triển, nhưng tôi sử dụng Vim cho nhiều tác vụ yêu cầu thao tác văn bản phức tạp. Ngay cả khi tôi không sử dụng Vim ở nhà, nó vẫn sẽ vô cùng hữu ích đối với tôi vì những gì tôi làm trong công việc. Anh chàng IT của chúng tôi nghĩ rằng tôi là một loại nhà ảo thuật khi anh ấy nhìn thấy tôi làm những nhào lộn Vim của tôi. Điều đó phải đáng giá, phải không? ;)

1

JaredPar đã đề cập ViEmu, điều mà tôi đã nghe những điều thực sự thú vị. Nhưng nếu bạn thực sự tự hỏi những lợi ích của việc chuyển đổi sẽ là gì, thì có một bài viết hay được lưu trữ trên trang web ViEmu: Why, oh WHY, do those #[email protected]! nutheads use vi?

Cá nhân tôi cảm thấy rằng việc sử dụng gvim là một động lực lớn cho năng suất của mình, và tôi chắc chắn thích nó hơn đến trình soạn thảo Visual Studio hoặc SlickEdit hoặc bất kỳ người nào khác mà tôi đã sử dụng. Nhưng như đã đề cập trong các câu trả lời trước đó, Vim có thể là một đường cong học tập dốc. Có những người đã sử dụng nó một cách chuyên nghiệp trong 5-10 năm và vẫn đang học hỏi về nó. Vim có thể rất giống với perl ... có rất nhiều cách để thực hiện bất kỳ chuỗi chỉnh sửa nào và có thể mất một lúc để tìm hiểu một cách tốt nhất.

2

Tôi đã là một lập trình C/C++ chuyên nghiệp trong 16 năm. 5 năm trước, tôi đã chọn một số Lisp thường, và cuối cùng cũng học được các elisp/emacs. Tôi cũng vọc trong Haskell. Tôi đã tìm thấy những kinh nghiệm này rất hữu ích trong lập trình C++. Nếu không có gì khác bạn có thể nhìn thấy tương lai, như C++ từ từ trở nên biểu cảm hơn bằng cách áp dụng những thứ mà CL đã có trong nhiều thập kỷ.

Quá trình học tập emacs là một quá trình dài chậm bắt đầu trả hết khi bạn hoàn toàn thông thạo các tính năng của nó, cách làm mọi thứ và dễ dàng. Tôi sử dụng Visual Studio cho rất nhiều sự phát triển của tôi, nhưng thường tôi chuyển sang emacs để tận dụng lợi thế của việc sử dụng nhanh các macro chính, hoặc để thực hiện một số xử lý phức tạp trên một bảng giá trị. Rất nhiều thứ mà bạn có thể gõ lên thật nhanh chóng trong những điều tuyệt vời mà sẽ mất một vài giờ rách tóc với các plugin của Visual Studios.

+0

Điều này là đúng, có nhiều công cụ hơn trong lệnh - ngôn ngữ hoặc biên tập viên - giúp bạn giải quyết vấn đề và hoàn thành công việc hiệu quả hơn. – ashawley

4

Tôi sử dụng emacs và Visual Studio cùng nhau và sẽ có một thời gian khó khăn mà không có emacs. VS là không thể thiếu tất nhiên, nhưng nó không cung cấp các chỉnh sửa văn bản mà emacs nào. Emacs là 98.4% khung chỉnh sửa cho tôi. Visual Studio có 12 bảng điều khiển khác nhau, mỗi bảng đều quan trọng, nhưng đôi khi tôi chỉ muốn xem mã. Emacs cho phép tôi làm điều đó. Và tôi có thể chia màn hình và xem 4 cửa sổ chỉnh sửa trên một màn hình, ngay cả trong cùng một tệp. Với màn hình kép, tôi có thể có các cửa sổ emacs trên mỗi màn hình. Điều này nghe kooky nhưng nó rất hữu ích cho tôi khi tôi làm việc trên các phần khác nhau của mã cùng một lúc (hãy nói một định nghĩa giao diện và thực hiện, cùng một lúc). Tìm kiếm và thay thế regex.

Tôi có chế độ tự động hoàn nguyên được bật trong biểu tượng cảm xúc, tương tự với tính năng VS cho biết "tệp đã thay đổi bên ngoài Visual Studio, bạn có muốn tải lại không?" Ngoại trừ trong emacs nó luôn luôn âm thầm tải lại, đó là cách tôi muốn nó. Vì vậy, tôi bị trả lại từ VS cho các emacs và ngược lại, và không bao giờ có vấn đề với những thay đổi đang chờ xử lý trong mã nguồn chưa được hiển thị trong trình soạn thảo khác. VS có khả năng "toàn màn hình", nhưng tôi không thấy rằng nó linh hoạt hoặc hữu ích như các emacs.

Tôi không thể tưởng tượng không có khả năng kết hợp các công cụ này. Visual Studio một mình chỉ không cung cấp này. Emacs một mình sẽ không đủ. Tôi vẫn sử dụng các emacs cho các đoạn trích cơ bản và các chương trình thử nghiệm nhỏ. Tôi sử dụng VS để quản lý dự án, TFS, kiểm tra và gỡ lỗi.

Việc sử dụng các emacs của tôi không phải là lựa chọn tại thời điểm này. Tôi đã nhặt nó từ lâu rồi, tại một công ty trước đây, nơi mà emacs là công cụ tiêu chuẩn, vì vậy nó ... không nói "dễ" nhưng nó là tự động. Tôi không thể tưởng tượng được việc học các emacs một mình. Tôi đã học được những điều về mặt thẩm thấu, chỉ từ cộng đồng những người dùng emacs khác xung quanh tôi. Từ những người ở hành lang, tôi đã mua và tùy chỉnh một loạt các mã elisp cho thiết lập của tôi. Làm nó với một cuốn sách ... Tôi không thể tưởng tượng được.

Để làm cho bạn kém hiệu quả hơn vì nhầm lẫn ngón tay ... Tôi chưa gặp sự cố.

0

Bạn nên tìm hiểu ít nhất cách lưu (:w) và chỉnh sửa tệp (ma thuật) trong VIM - thậm chí cài đặt HĐH tối thiểu đã bao gồm. Bằng cách đó nếu bạn bị mắc kẹt trên một hộp unix rỗng, bạn có thể ít nhất là chỉnh sửa các tập tin.

Nếu không, naw - Tôi không mua quảng cáo. Bạn đã có cá lớn hơn để chiên và nano là nhận được tốt hơn tất cả các thời gian. Heck, nano có một số màu cú pháp và tự động thụt đầu dòng và nó thậm chí hoạt động với con chuột trên PuTTY.

Điều tốt nhất để tìm hiểu là cách cấu hình Samba trên hộp unix của bạn và sau đó sử dụng trình soạn thảo văn bản thực trên hộp Windows của bạn như UltraEdit (cue flamewar). Tôi sử dụng cấu hình này để chỉnh sửa bất cứ điều gì lớn hơn một tập tin cấu hình trong/etc.

+1

Trước khi tôi học vim, tôi đã sử dụng nano. Nhưng sau khi sử dụng vim, và làm quen với tất cả các phím tắt, nano trở nên rất khó chịu. –

+0

rõ ràng bạn chưa bao giờ nghiêm túc thử vim/emacs – Sujoy

0

Tôi cũng là nhà phát triển C# thời gian dài. Khi phát triển C++ trong Linux, tôi sử dụng Eclipse CDT vì đó là điều gần nhất tôi đã tìm thấy cho Visual Studio.

Khá giàu kinh nghiệm với vim, tôi sử dụng nó để chỉnh sửa các tệp cấu hình Linux và như vậy, nhưng tôi không đặc biệt vẽ nó để phát triển khi tôi chỉ có thể sử dụng một IDE.

Nhân tiện, nếu bạn sử dụng vim, bạn có thể muốn bật số dòng và làm nổi bật cú pháp; Tôi luôn thêm những dòng này vào ~ /.vimrc file:

number on 
set syntax 
1

IMHO, không có. tôi đang sử dụng acme trên vim. gedit hoặc vs2008 tại nơi làm việc.

3

Tôi là người dùng hardcore của VIM và cũng đã phát triển intellisense cho C# (http://insenvim.sourceforge.net/) .. nhưng với những thay đổi ngôn ngữ mới nhất tôi không thể tránh sử dụng Visual Studio. Nhưng nhiều lần nhìn lại bằng cách sử dụng VIM là vì lý do đơn giản. Visual Studio mất rất nhiều bộ nhớ và thời gian khởi động là rất lớn. Ngay cả để đọc một tập tin hoặc làm những việc đơn giản nó đòi hỏi khá một vài phút. Nhưng với nó rất dễ dàng để mở một tập tin và điều hướng. Tôi có thể port VIM intelliSense đến C# 3.0.

0

Tốc độ mã hóa phụ thuộc rất nhiều vào lựa chọn của trình chỉnh sửa, do đó, một trong những sự lừa dối quan trọng nhất mà bạn sẽ thực hiện.

1

Tôi sử dụng (và yêu) Emacs, nhưng tôi có thể hiểu được những người vi ở đó (tôi luôn bị giằng xé giữa chủ nghĩa tối giản và nhà bếp-chìm-ism). Điều gì giúp tôi sử dụng Emacs ngày này qua ngày khác, và điều khiến tôi cuối cùng rời khỏi mọi IDE mà tôi từng sử dụng, là tôi có thể viết các hàm . Và khi tôi nói các hàm Tôi có nghĩa là chức năng; Tôi thực sự có thể tự mình chương trình. Tôi thêm một hàm mới, đánh giá nó, và bam bây giờ nó đang ở trong trình soạn thảo của tôi. Nếu tôi sử dụng chức năng đó một bó, thì nó sẽ là một keybinding.

Tôi đã nhận thấy rằng với IDE, chúng tuyệt vời ở một ngôn ngữ cụ thể (Eclipse là tuyệt vời để thực hiện Java). Tôi không nghĩ Emacs là tốt ở bất kỳ ngôn ngữ nào (Ngoại trừ có thể là một IDE Lisp, nhưng tôi sẽ không cố gắng và mở rộng những đức tính ở đây ...) như một IDE chuyên dụng nhưng nó tốt hơn ở ngôn ngữ N, trong đó "N" thực tế là bất kỳ ngôn ngữ lập trình nào có hoặc sẽ là được phát minh. Nó là tốt đẹp, nếu tôi đang học một ngôn ngữ lập trình mới (hoặc thậm chí chỉ nhảy giữa bất kỳ C, PowerShell, Haskell, Lisp, Java ... vv) mà môi trường của tôi là thoải mái và khá khả thi. Câu trả lời của tôi sau đó, là "có" bởi vì Emacs (hoặc vi, tôi sẽ giả định) cung cấp cho bạn tính di động trong bộ công cụ của bạn. Bạn có thể làm C# ngày hôm nay, nhưng xuống dòng, những người hiểu biết có thể bạn sẽ được hack trên Monad # ++, và nếu bạn đang có, bạn có thể đặt cược sẽ có một chế độ Emacs cho nó.

0

Tôi đã sử dụng Vim và Emacs nhưng có thể chậm hơn 5%. Tôi đã từng đo số lượng nhà phát triển thời gian thực sự nhập mã và (tôi không nói về việc cuộn quanh) và có thể khoảng 5% trong ngày của bạn. Chúng tôi đang tranh luận khoảng 5% 5% ...

Những gì nó nhét xuống là người dùng Emacs và Vim đã sử dụng nó quá lâu đến nỗi họ không thể thay đổi được. Hầu hết trong số họ chỉ có thể lái xe VS thông qua một con chuột và không biết hầu hết các phím nóng.

1

Những người tiếp tục đề cập đến vim "các phím cắt ngắn" thực sự nên tìm hiểu nó sâu hơn một chút. Rất nhiều lệnh bàn phím của vim hoạt động trên một ngôn ngữ "cấu trúc" thực sự của điều hướng và thao tác văn bản (tức là phạm vi, số lượng, hành động, chuyển động, đối tượng văn bản, v.v.) không chỉ là "cắt ngắn" mà bạn phải ghi nhớ như trong hầu hết các trình chỉnh sửa văn bản. Đó là một trong những lý do chính cho sự khao khát của vim và sự gia tăng năng suất của nó.

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