Emacs-as-OS: lỗi thời? [đóng cửa]


22

Trong một nỗ lực để đạt được ít nhất là người mới bắt đầu với một biên tập viên huyền thoại như vậy, tôi đã mã hóa trong Emacs trong hai tháng qua. Tôi cố gắng giữ một trái tim rộng mở, nhưng tôi thấy mình liên tục không đồng ý với một lựa chọn thiết kế cốt lõi: Emacs cho phép người dùng không bao giờ phải rời đi. Trong một thế giới năm 2010, tôi chỉ nghĩ rằng mọi tính năng phụ của Emacs đều vô vọng đứng sau phần mềm chuyên dụng:

  • Tôi sẽ không bao giờ sử dụng trình duyệt tích hợp của nó; Chrome là năm trước.
  • Tôi sẽ không bao giờ sử dụng tính năng chuyển hướng của nó; Trình tìm đường dẫn (Mac OS X) phù hợp với nhu cầu của tôi.
  • Tôi sẽ không bao giờ sử dụng email tích hợp của nó; giao diện web Gmail có nhiều tính năng phù hợp hơn như Hộp thư ưu tiên.
  • V.v.

Chắc chắn, đôi khi tôi có thể nhúng vào Emacs để sử dụng regexps, v.v. cho một trong những nhiệm vụ trên, nhưng ngoài regexps, tôi thực sự thấy không có lý do gì để chạm vào các tính năng phụ đó. Tôi là một người hoàn toàn mới, nhưng tôi có một cảm giác mạnh mẽ rằng Emacs-as-an-OS đã lỗi thời.

Các chuyên gia của Emacs, bạn có nghĩ rằng lựa chọn của Emacs là một môi trường toàn diện là lựa chọn đúng đắn cho năm 2010 và tương lai không? Có các tính năng ngoại vi cụ thể vẫn còn hoặc trước thời đại so với các lựa chọn thay thế không?


9
Đây thực sự là một câu hỏi? Có vẻ như bạn đã quyết định.
Larry Coleman

5
@Emacs thực sự tốt cho phát triển gcc + gdb trong môi trường Unix. Nó cũng tốt cho việc viết LaTeX.

20
Đây là lý do tại sao Emacs có một bác sĩ tâm thần được xây dựng.
Tim Post

3
@Tim, Mx tetris vui hơn nhiều.

2
Tôi hoàn toàn hiểu bạn ... Tôi đã sử dụng vi trong nhiều năm và dành một chút thời gian để tìm hiểu Emacs ... và tôi đã đi đến kết luận rằng cả hai không phù hợp với nhu cầu của tôi ... để lập trình, tôi thích một IDE hiện đại (Eclipse) và để chỉnh sửa / viết kịch bản đơn giản, nano vẫn ổn.
Oliver Weiler

Câu trả lời:


14

Tôi đã sử dụng emacs trong 10 năm qua (từ và đến) và tôi chỉ có thể nói rằng bạn hoàn toàn đúng . Trước đây, tôi đã sử dụng gnus và trình duyệt w3, nhưng rõ ràng chúng không còn phù hợp với nó khi so sánh với các chương trình chuyên dụng. Nhưng, rõ ràng, bạn không thể chạy Chrome ở chế độ văn bản, vì vậy đây là nơi emacs chiến thắng. Và thậm chí ở đó, tôi muốn sử dụng lynx / elinks hoặc mutt cho điều đó.

Emacs-the-lập trình viên-biên tập viên cũng đã mất liên lạc. Chỉnh sửa văn bản chỉ tốt, nhưng khi tôi viết , tôi thấy mình muốn các chức năng như: định nghĩa goto, hoàn thành tự động, tái cấu trúc, gợi ý cú pháp, tài liệu tham số, v.v. (nghĩ về Eclipse). Tôi đã thử một vài chế độ emacs nhưng không bao giờ làm cho nó hoạt động tốt. Và không, tôi không muốn học elisp, cảm ơn bạn.

Ngoài ra, emacs không thực sự hiểu ngữ nghĩa của mã. Điều này rất rõ ràng khi mã hóa trong một tệp chứa nhiều ngôn ngữ như html bằng javascript và php hoặc một cái gì đó. Nó chỉ bị phá vỡ. Vì thế, tôi thay vì sử dụng bất kỳ trình soạn thảo nào khác (notepad ++ hoặc bất cứ thứ gì) làm công việc tốt hơn nhiều.


5
Trong số những thứ bạn liệt kê, Emacs thực sự có "định nghĩa goto" (sử dụng etags), "hoàn thành tự động" ( autocomplete.el, tôi nghĩ), gợi ý cú pháp / tài liệu tham số (trên cơ sở ngôn ngữ). Điều duy nhất bạn đề cập đến nó không hỗ trợ AFAIK là tái cấu trúc tự động, điều này không cần thiết cũng không hữu ích cho tất cả các ngôn ngữ. Nhiều chế độ là tàn bạo mặc dù; nó tồn tại và hỗ trợ PHP và các ngôn ngữ hỗn hợp, nhưng nó rất tệ (vì quá chậm trừ khi tôi ở trên máy tính để bàn của mình). Tôi cũng sẽ cho bạn lời khuyên tương tự mà tôi đưa ra cho bất kỳ đồng nghiệp nào: nếu bạn không muốn học Lisp, đừng sử dụng Emacs, nó sẽ chẳng làm gì cho bạn.
Inaimathi

8
Đã đồng ý; Emacs không phải là một hệ điều hành. Phản đối của tôi là "Emacs-the-lập trình viên-biên tập viên cũng đã mất liên lạc". Đây là một lập luận đặc biệt vô lý khi bạn từ chối học Elisp, vì hầu hết lợi ích của Emacs-the-lập trình viên-biên tập viên đến từ việc áp dụng các tùy chỉnh. Tôi sẽ không phản đối "Tôi không sử dụng Emacs vì tôi không thích học Lisp", nhưng bạn làm cho nó có vẻ như sự thiếu hiểu biết về công cụ của bạn ảnh hưởng đến thể lực của nó. Điều này ngang với tôi khi nói rằng "Eclipse hút vì nó không có hỗ trợ PHP. Và tôi không cảm thấy muốn học cách cài đặt các plugin, cảm ơn bạn."
Inaimathi

1
@Inaimathi Bạn không cần phải học elisp (hoặc bất kỳ ngôn ngữ nào) để có thể sử dụng nhật thực đúng cách. Cài đặt trình cắm cũng không yêu cầu.
Martin Wickman

2
@Martin - Nó không được tích hợp hỗ trợ PHP (hoặc không sử dụng khi tôi sử dụng nó); bạn cần cài đặt một plugin cho điều đó. Tuyên bố được trích dẫn ở trên tương đương với "[Trình chỉnh sửa] tệ bởi vì nó không có [tính năng thực sự có, nhưng nó cần được bật], nhưng tôi không thực sự cảm thấy muốn học [điều mà bạn cần làm theo thứ tự để kích hoạt nó] ", và quan điểm của tôi là đây một lập luận không hợp lý.
Inaimathi

3
@Inaimathi: Theo như tái cấu trúc, tôi đã tìm kiếm một chương trình tái cấu trúc tự động C ++, và một trong số ít tôi tìm thấy là ở elisp. Nếu bạn nói "emacs không hỗ trợ X", rất có thể bạn đã sai.
David Thornley

19

Chọn công cụ phù hợp cho công việc.

Hãy thử chạy Chrome hoặc Path Finder thông qua kết nối ssh - tại đây bạn sẽ cần các công cụ thay thế và Emacs được thiết kế để chạy trong một thiết bị đầu cuối.


Điểm hay về ssh.
AlcubierreDrive

3
x11 chuyển tiếp?
TheLQ

7
Có bao nhiêu người thực sự sử dụng trình duyệt web thông qua kết nối ssh?
compman

1
@compman, vâng. Nó có thể cực kỳ hữu ích để tải tập tin từ các trang web.

1
OS X có VNC, chỉ cần kết nối kết nối VNC thông qua SSH và bạn không cần lo lắng rằng OS X không sử dụng X11.
Lie Ryan

8

Tôi thậm chí không sử dụng nhà trị liệu tích hợp nhiều như vậy, nhưng tôi sử dụng Emacs và tôi thích nó, không phải vì bản chất toàn diện của nó mà bởi vì nó có thể cấu hình vô tận và mạnh mẽ như một trình soạn thảo văn bản. Ngoài ra tôi biết rất nhiều tổ hợp phím cho nó. Chỉnh sửa văn bản thành công là tất cả về tổ hợp phím.

Nếu bạn muốn phát triển năng suất của mình với nó, Steve Yegge có một số mẹo hay.


Tôi hoàn toàn không đồng ý với cách tiếp cận của Steves trong việc sắp xếp lại hàng tấn chìa khóa để khiến Emacs hành xử. Tìm hiểu các ràng buộc khóa tiêu chuẩn và sử dụng .emacs của bạn để điều chỉnh hành vi của chúng.

Quan điểm của anh ấy chủ yếu là một công thái học - anh ấy không nói rằng có vấn đề với các ràng buộc tiêu chuẩn như các ràng buộc, anh ấy nói rằng có một vấn đề với các phím trên bàn phím và nếu bạn muốn làm cho chúng dễ sử dụng , bạn cần tìm các phím cho mục đích đó mà không cần bạn phải luồn ngón tay út vào các góc xa nhất của bàn phím. Tôi có thể hiểu ý nghĩa của nó, nhưng nó hạn chế bạn nếu bạn thường xuyên thay đổi máy khi bạn cần một bộ nhớ cơ khác hoặc dành nhiều năm để cấu hình lại mọi máy bạn sử dụng.
glenatron

5

Emacs không bao giờ được dành cho thị trường đại chúng. Nó được thiết kế để sử dụng hiệu quả bởi những người đã dành thời gian để tìm hiểu cách thức hoạt động của nó. Điều đó nói rằng, một kích thước không phù hợp với tất cả, vì vậy bạn có thể không thích emacs ngay cả sau khi bạn tìm hiểu thêm về nó.

EDIT: Hai tính năng yêu thích của emacs bên cạnh việc chỉnh sửa văn bản là chế độ shell và gnus. Sau khi thất vọng với Google Groups vì tất cả các thư rác, tôi đã đăng ký với Eternal tháng 9 và học cách sử dụng gnus. Việc điều hướng qua tin nhắn nhanh hơn nhiều và chỉ có bài đăng spam thường xuyên mới được thông qua và việc loại bỏ nó là vấn đề của một lần nhấn phím. Chế độ Shell đặc biệt hữu ích với tôi khi làm việc vì sao chép / dán hiệu quả hơn so với trong lời nhắc của DOS.


Tôi không loại bỏ trình soạn thảo văn bản là lỗi thời; Tôi đồng ý, nó rất hiệu quả khi bạn đã quen với nó. Câu hỏi của tôi là về giá trị của sự lựa chọn thiết kế mà bạn sẽ có thể làm bất cứ điều gì và mọi thứ mà không cần rời khỏi Emacs. Có các tính năng ngoại vi cụ thể vẫn còn tuyệt vời, hoặc bạn có cái nhìn sâu sắc về lịch sử của các tính năng ngoại vi tuyệt vời một thời đã bị vượt qua?
AlcubierreDrive

1
Tôi đã chỉnh sửa phần bác bỏ như là lỗi thời sau khi đọc ý kiến ​​của bạn. Tôi không sử dụng emacs cho mọi thứ, nhưng tôi thực sự thích chế độ shell và gnus.
Larry Coleman

Ngọt! Tôi đã thêm một nửa thứ hai mới vào câu hỏi của mình, để đáp lại phản hồi của bạn. Nhận xét của bạn trả lời như vậy +1
AlcubierreDrive

1
Ngoài ra, việc có thể làm mọi thứ trong emacs có ý nghĩa hơn rất nhiều vào năm 1994, khi máy tính chậm hơn nhiều so với hiện tại. Thỉnh thoảng tôi sử dụng dired, nếu tôi đã ở trong emacs và tôi sử dụng shell rất nhiều. Có thể làm rất nhiều thứ trong trình soạn thảo của tôi hoặc ít nhất là không phải di chuyển đến chuột là một chiến thắng đối với tôi. Bạn có thể có sở thích khác nhau (đây thực sự là vấn đề của hương vị ở một mức độ nào đó)
Zachary K

2

Tôi đã luôn tiếp cận Emacs như một nền tảng chứ không phải là một giải pháp vượt trội. Có nhiều gói trùng lặp chức năng hoặc mục đích và tùy bạn quyết định xem chúng có đáp ứng nhu cầu của bạn hay không.

Đó cũng là lý do tại sao nhiều thứ đã lỗi thời. Hầu hết mọi người (dù sao tôi cũng đã gặp) sử dụng Emacs không sử dụng nó để đọc email hoặc duyệt web. Tuy nhiên, tôi rất khó tìm được một trình soạn thảo khác có

  • như khả năng chỉnh sửa từ xa tinh vi
  • miễn phí tạo và chỉnh sửa macro nội tuyến
  • độ sâu và chiều rộng của các phần mở rộng / gói có sẵn

Nó đã được biên tập viên của tôi lựa chọn trong hơn một thập kỷ để phát triển phần mềm và xử lý văn bản.

Điều tuyệt nhất là tôi không phải chạm vào chuột khi sử dụng Emacs.


2

Emacs có thể là một hệ điều hành cho bạn nếu bạn sẵn sàng tìm hiểu Lisp và viết các tính năng của riêng bạn phù hợp với nhu cầu của bạn.

Nhưng ngày nay bạn có thể tìm thấy mọi thứ bạn cần trong các công cụ khác được tạo ra bởi những người tuyệt vời khác. Những người đó đã tạo ra những công cụ đó bởi vì họ cảm thấy họ cần chúng, giống như bạn sẽ sử dụng chúng. Vì nhiều trong số chúng là nguồn mở, có một cộng đồng sẽ làm cho chúng ngày càng tốt hơn, với tất cả các chức năng bạn cần.

Cố gắng tăng cường Emacs là khó vì bạn phải học Lisp. Ngay cả các plugin hiện có ngày càng cũ. Lấy các chế độ ngôn ngữ làm ví dụ, các ngôn ngữ phổ biến như JS và PHP hầu như không được hỗ trợ ngay cả để làm nổi bật cú pháp. Chế độ tốt nhất bạn có thể tìm thấy cho họ chỉ đơn giản là không đủ.

Emacs là một công cụ tuyệt vời trong tay phải, và cho các nhiệm vụ phù hợp. Nhưng có những công cụ tốt hơn cho các nhiệm vụ được chỉ định và bạn chắc chắn nên sử dụng những công cụ này thay thế.


1

Tôi thực sự không muốn bắt đầu một cuộc chiến thần thánh, thực sự, đã có lúc tôi sử dụng emacs mỗi ngày (một ngày vim, một ngày emacs). Không có gì sai với emacs, nó thực sự là công cụ tuyệt vời. Tuyệt vời, công cụ tuyệt vời.

Nhưng với tư cách là một vim'er thực thụ, tôi luôn cảm thấy hơi thất vọng với thực tế là nhiều emacacers đang cố gắng sử dụng emacs theo nghĩa đen ở mọi nơi, cho tất cả các nhiệm vụ.

Đọc thư, truy vấn cơ sở dữ liệu, đọc pdf - đó là những nhiệm vụ vô tội nhất mà tôi từng thấy là "không rõ ràng".

Vì vậy, đối với tôi, có những khu vực chính của cây sử dụng emacs:

  1. Chỉnh sửa văn bản. Và đó là siêu công cụ, siêu tâm trí. Tin tôi đi, sau khi sử dụng vim hoặc emacs trong một thời gian dài, bạn sẽ hoàn toàn bỏ lỡ các tính năng của nó trong hầu hết các IDE tiên tiến.

  2. IDE. Vâng, nó có thể được thực hiện. Hơn nữa, bằng cách nào đó nó có thể cạnh tranh với các chế độ IDE. Nhưng thực tế là để làm cho nó thực sự cạnh tranh, bạn nên đầu tư chăm chỉ. Bạn nên cố gắng lắp ráp nhiều kịch bản khác nhau. Bạn thậm chí nên viết đoạn mã của riêng bạn. Tôi sẽ không, thành thật mà nói.

  3. Các nhiệm vụ khác, hầu hết trong số họ kỳ lạ hoặc thậm chí bí truyền. Chơi tetris và như vậy. Tốt hơn không.


1
Là người sử dụng lâu dài cả emacs và vi (hơn 20 năm kinh nghiệm của cả hai, cũng khoảng 1 năm sử dụng ed làm biên tập viên chính của tôi), tôi thấy emacs gần như tối cao trong trường hợp thỉnh thoảng "Tôi có mã lặp đi lặp lại , hãy để trình soạn thảo tự động tạo ra nó "(chứ không phải là, viết một đoạn mã khác, sau đó biên dịch và chạy nó, để tạo mã).
Vatine

0

Ở đâu đó trong bộ sưu tập đồ đạc của tôi, tôi chắc chắn rằng vợ tôi muốn tôi vứt đi, tôi có một bản Emacs trên Băng QIC-40. Tôi đã trả $ 50 để có được nó.

Tôi không thể # @% # $ # $% @ ^ #% # chịu đựng sau đó, tôi không thể chịu đựng được ngay bây giờ. Tôi không nói rằng nó không phải là một trình soạn thảo tuyệt vời cho một số người, nhưng đối với tôi .. nó chỉ cản trở hơn bất cứ điều gì. Khởi đầu ban đầu của nó là làm việc xung quanh các phím chai coke , và nó đã làm điều đó rất tốt.

Nếu bạn chạy một chương trình, bất kỳ chương trình nào, bạn sẽ thực hiện nó với hy vọng rằng nó sẽ tăng (hoặc ít nhất, không cản trở) năng suất của bạn. Nếu nó không hiệu quả với bạn, đừng sử dụng nó.

Tin tôi đi, bạn không phải là vấn đề.


2
"Đây là một cổ vật quan trọng, và nó thuộc về một bảo tàng!"

1
Nếu nó không hiệu quả với bạn, đừng sử dụng nó, đó là một sự hấp dẫn đối với sự chủ quan, do đó, bạn không phải là vấn đề.
Jon Purdy
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.