2009-06-19 31 views
31

Mặc dù là một người sử dụng Vim, tôi quan tâm đến việc bắt đầu học Emacs. Tuy nhiên, bất cứ khi nào tôi bắt đầu theo hướng dẫn của Emacs, tôi đã vô tình đánh các lệnh Vim và cảm thấy thất vọng với nó.Cách tốt nhất để chuyển từ Vim sang Emacs là gì?

Có cách nào tốt hơn để thực hiện chuyển đổi không?

+59

chỉ cần đặt: bí danh emacs = 'vim' trong .bashrc của bạn;) – claf

+5

@claferri: Tôi thực sự đặt bí danh vim = emacs trong một thời gian, để khuyến khích tôi thực sự thực hiện chuyển đổi. :) – lindes

Trả lời

35

Tôi khuyên bạn nên chỉ sống sót sau tai nạn cho đến khi tần suất giảm. Tôi nghi ngờ rằng thêm một lớp để cố gắng "giúp đỡ" - giống như một trong đó sẽ cố gắng suy ra các lệnh vi ngẫu nhiên và thực hiện chúng - chỉ đơn giản là sẽ làm cho quá trình chuyển đổi chậm hơn.

Tôi cũng làm như vậy khi chuyển đổi giữa các hệ thống kiểm soát phiên bản. Thay vì tạo ra một trình bao bọc shell-script cho phép tôi tiếp tục sử dụng các câu lệnh con sai bằng cách dịch chúng thành các thành ngữ mới của VCS, tôi thực sự chỉ bị ép buộc phải nói "ngôn ngữ hệ thống mới" là gà tây lạnh.

Hãy nhớ rằng: bạn là con người; bạn được xây dựng thích ứng với các tình huống mới. Chỉ cần giữ trí thông minh của bạn về bạn, để cho những sai lầm là sai lầm, và bạn sẽ làm tốt.

6

Thời lượng và cường độ của cuộc tranh luận Vim so với Emac cho thấy khá mạnh mẽ rằng cả hai biên tập viên đều bình đẳng về tính hữu dụng của chúng. Nếu bạn đã biết vi, bạn có thể gắn bó với nó.

+6

Nếu anh ta xem xét việc chuyển đổi, anh ta không biết nó đủ tốt :-) Đúng vimmers không bao giờ chuyển đổi, ... tương tự cho maccers. – Rook

+0

@ldigas nếu bạn sử dụng máy Mac, sau đó hầu hết các lệnh emacs được tích hợp vào hộp văn bản (nghĩa là C-k, C-y, C-a, C-e, các từ nhảy với tùy chọn, v.v.). Đây là một lý do tốt để chuyển đổi ... bạn đã biết hầu hết mọi thứ! Điều đó, hoặc bạn viết trong Lisp (chất nhờn) hoặc sử dụng R (ESS). – Vince

11

Bạn đã thử sử dụng số điện thoại viper-mode của Emacs chưa?

+2

Tôi sử dụng, [** Evil **] (http://www.emacswiki.org/emacs/Evil) người kế thừa vimpulse và viper, và nó gần như hoàn hảo. [Xem ở đây để so sánh ngắn gọn] (http://stackoverflow.com/questions/14291260/difference-between-viper-vimpulse-and-evil-for-emacs) –

3

Tôi không có bất kỳ kinh nghiệm nào với điều này (tôi sử dụng Vim) nhưng Vimpulse là tập lệnh Emacs để mô phỏng Vim (như được áp dụng cho Viper-mode mô phỏng vi). Điều đó có lẽ sẽ làm cho quá trình chuyển đổi dễ dàng hơn.

3

Tôi nghĩ điều đó phụ thuộc vào động lực của bạn để học Emacs.

Nếu bạn chỉ quan tâm đến việc học Emacs, viper-mode có lẽ là cách để đi vì nó có thể không đáng để giảm đau và thất vọng vì phải đào tạo lại bộ nhớ cơ của bạn. Bạn vẫn có thể truy cập vào tất cả các chức năng Emacs tuyệt vời, nhưng tùy chỉnh trải nghiệm của bạn dựa trên cấp độ viper bạn chọn.

Nếu bạn muốn tìm hiểu vì bạn muốn có một trình chỉnh sửa hoàn toàn có thể tùy chỉnh, thì tôi sẽ chọn một tác vụ bạn nghĩ có thể thú vị để làm việc và sử dụng để thúc đẩy việc sử dụng Emac. Loại kinh nghiệm này sẽ hoàn toàn độc đáo đối với bạn. Trong trường hợp đó, tôi khuyên bạn nên đi lạnh-gà tây và chỉ mong đợi một vài ngày đau đớn và thất vọng.

24

Thực hành thực hành thực hành. Như bạn có thể biết từ việc học Vim, Vim và Emacs trôi chảy chỉ đến với tấn thực hành cho đến khi các lệnh trở thành bản chất thứ hai. Tôi là một VAC thời gian dài và học Emacs là cực kỳ đau đớn và mất vài tháng, nhưng ngày nay tôi nhận được bằng cả hai đều tốt. Đó là giá trị học cả bởi vì Emacs là tốt hơn so với Vim tại chỉnh sửa một số ngôn ngữ và làm nhiệm vụ nhất định, và ngược lại; nó là tốt để có tùy chọn sử dụng một trong hai. Sau một thời gian, bạn bắt đầu phân chia hai cách tinh thần và có thể bạn sẽ không gặp nhiều khó khăn (mặc dù tôi vẫn thỉnh thoảng :wq Emacs và C-/ Vim, nó không xảy ra thường xuyên đủ để trở thành một vấn đề).

  • Đọc kỹ tài liệu Emacs. Rất nhiều thuật ngữ và chức năng của Vim và Emacs là tương tự nhưng chỉ khác nhau đủ để làm cho nó tất cả khó hiểu. Hướng dẫn này là một khởi đầu tốt nhưng Emacs manual là một kho tàng các phương pháp hay nhất và mẹo cấu hình.

  • Emacs wiki là bạn của bạn. Khi bạn bắt gặp một tính năng Emacs mà bạn hoàn toàn không thể chấp nhận, thường có một cách để cấu hình vấn đề.

  • C-h a cũng là bạn của bạn. Giống như :h là không thể thiếu trong Vim, hệ thống trợ giúp Emacs là một lợi ích lớn trong việc điều hướng các tập lệnh dựng sẵn khổng lồ của Emacs. Có rất nhiều cách để tìm kiếm tài liệu để tìm những gì bạn muốn; this page có một bản tóm tắt tốt.

  • Không sử dụng viper hoặc vimpulse, ít nhất không phải lúc đầu. Emacs sẽ không bao giờ tốt bằng Vim như Vim. Đắm chìm trong Emacs cho đến khi bạn quen với nó. Cách làm của Emacs rất khác biệt nhưng nó có điểm mạnh (và điểm yếu) của riêng nó so với tập hợp khóa của Vim. Tìm hiểu cả hai để bạn có thể thấy những điểm mạnh và điểm yếu đó và đưa ra quyết định sáng suốt. Ngày nay tôi đã mượn một loạt các phím tắt Emacs và lập bản đồ chúng trong Vim, và ngược lại.

  • Làm chậm. Khi (nếu không) Emacs bắt đầu làm cho bạn bọt ở miệng trong cơn thịnh nộ, nghỉ ngơi, nhảy vào Vim và quay lại sau. Nó sẽ mất một lúc.

Hãy nhớ rằng bạn không cần phải "chuyển đổi". Bạn sẽ không quên Vim và thay thế nó trong bộ não của bạn với Emacs. Nếu bạn biết Vim và bạn học Emacs, thì bạn sẽ biết cả hai. Đây là một điều tốt.

3

Là một công cụ chuyển đổi đồng nghiệp và người dùng vim cũ, tôi khuyên bạn nên sử dụng chế độ viper. Nó không hoàn hảo, nhưng nó sẽ cung cấp cho bạn hầu hết các keybindings vi/vim. Bạn sẽ học được một vài câu lệnh mà bạn quen với vim (IME, phần lớn là các câu lệnh bắt đầu bằng 'g') mà không gặp quá nhiều khó khăn.

Nói chung, tôi thực sự cảm thấy rằng đây là cách tốt nhất để sử dụng Emacs. Các keybindings vi thực sự, thực sự hiệu quả, và tôi nghĩ rằng rất nhiều thứ tôi làm trong một trình soạn thảo văn bản (các lệnh chuyển động đơn giản, các lệnh đơn giản liên quan đến việc di chuyển, xóa, thay đổi, tìm kiếm, v.v.) hợp lý hơn và hiệu quả hơn so với Emacs. Tôi hoàn toàn có thể hiểu tại sao một người không quen thuộc với Emacs sẽ không muốn sử dụng chế độ viper, nhưng khi ai đó đến từ vim, bạn thực sự có cơ hội để có được tốt nhất của cả hai thế giới.

Nói chung: làm quen với thực tế là chế độ viper không hoàn hảo, hãy tìm hiểu cách thực hiện những điều bạn đang bỏ lỡ theo cách Emacs và đảm bảo bạn khám phá các tính năng thú vị mà Emacs có không có sẵn trong vim.

Đối với việc sử dụng vimpulse, tôi đã thử nó khi tôi lần đầu tiên chuyển sang, và tôi sẽ không thực sự khuyên bạn nên nó. Vì đó là một chế độ chính bạn sẽ bỏ lỡ rất nhiều (phần lớn?) Của các phần hay về Emacs; và nó vẫn không trung thành với 100%. Nó thực sự tốt hơn nhiều để có chế độ viper cho nó là gì, và di chuyển trên.

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