So sánh vim và emacs

Continuing the discussion from [Hỏi] Các chương trình viết code trên Ubuntu:

Thấy topic này hay, Đạt mở một topic mới chỉ nói về Vim và Emacs thôi.


Đạt thì dùng Vim và ghiền vim, chưa dùng thử emacs bao giờ. Theo Đạt vim nó hay vì nó được tích hợp ở hầu hết mọi nơi. Kể cả trong hệ thống nhúng cũng có vi, busybox-vi, để dùng tạm.

  • vim nhỏ nhẹ
  • vim có mặt mọi nơi
  • hệ thống keybinding giúp code nhanh
  • hệ thống plugin nhiều
  • dễ tùy chỉnh

Vim làm việc với nhiều file một lúc

Vim edit multi line

Vậy còn emacs?

7 Likes

Dạo này ko hiểu sao mình có duyên với dnh vậy , cứ cái gì thắc mắc là y rằng 1 lúc sau có bài trên đây
:blush: , thanks a Đạt nhé , e đang phân vân 2 thằng này hồi chiều , mấy cái IDE Codeblock hay linh tinh lại ko thích mấy :wink:

1 Like

Á à…thú vị đấy…tuy là fan của Vim và sử dụng Vim (chẳng qua là chưa nắm bắt được emacs đành yêu tạm Vim :cry:)…nhưng cũng xin tiếp chiêu bằng emacs…bác đợi em tổng hợp cái nha…bởi vì nhiều quá…! :stuck_out_tongue_closed_eyes:

2 Likes
  • Thuở ban đầu Vim chỉ thuần Lisp điều này khiến cho cộng đồng dần thấy nó không đáp ứng được nhu cầu ngày càng cao của các coder, sau đó Vim đã mở rộng sử dụng thêm các module Python, Ruby, Perl khiến cho Vim có một sức mạnh thực sự khi hỗ trợ rộng hơn các plugin có các chức năng phức tạp hơn. Nhưng ta thấy rằng việc thêm các module này không nằm trong sự tính toán khi Vim được tạo ra, khiến ta cảm tưởng rằng Vim và các module khá rời rạc, đôi lúc dùng ta thấy các plugin hoạt động không được ổn định. Cộng với việc chỉ là các module mở rộng của editor nên khả năng mở rộng hầu như chỉ dừng lại ở khả năng hỗ trợ trải nghiệm typing. Vim sử dụng hệ thống Vimscript khá dễ làm quen, chính vì vậy cộng với sự nhẹ nhàng và sẵn có trên nguồn mở Vim rất thích hợp với những công việc chỉnh sửa nhanh.
  • Trong khi đó, cũng rất nhẹ và nhanh (chỉ khởi động chậm hơn Vim tí ti), Emacs hoàn toàn sử dụng một ngôn ngữ riêng của nó ELisp (được phát triển từ Lisp nhưng được tăng cường sức mạnh rất nhiều), chính vì vậy Emacs rất ổn định, tất cả mọi thứ như một khối thống nhất vậy. Nhưng nó khiến cho Emacs khó làm quen hơn Vim. Emacs thích hợp với các dự án lớn (tất nhiên bình thường cũng sử dụng được). Và em xin khẳng định là về các tính năng editor/ide thì Vim có cái gì Emacs có cái đó. Nhưng xin nói về các tính năng này sau…trong phần này với phương châm vùi dập đối thủ em sẽ nói tới cái gì khiến cho một coder không muốn rời khỏi màn hình Emacs

(P/S: cuối tuần rảnh, em giới thiệu qua về Emacs bằng một câu truyện vui vẻ, trẻ trung giữa hai nhân vật, mong các bác bớt gạch đá! :grin: )

POWER OF EMACS: the Art of Guru

@Hỏi khôn - boy:

@Stallman:


  • @Hỏi khôn - boy: em nghe loáng thoáng hàng của anh rất mạnh mẽ, nó khiến cho một số thanh niên không thèm cả bật các phần mềm khác khi sử dụng máy tính nữa?

  • @Stallman: Chuẩn rồi em mặt khôn như em nhìn là biết hàng họ của anh mạnh mẽ thế nào rồi. :sunglasses:

  • @Hỏi khôn - boy: Ừm, em thấy hư cấu quá :unamused: , ừm. Làm sao có thể giữ khư khư cái chế độ full screen cho được, anh biết đấy dạo này em đang ngâm cứu mấy cuốn tài liệu, trong khi đó em không có xiền :hushed: mua sách, nên toàn phải down lậu free eBook trên mạng. Vừa quẩy code vừa đọc tài liệu, ít ra cũng phải bật thêm cái cửa sổ eBook Reader chứ?

  • @Stallman: ấy thằng em ra đây anh cho xem cái này:


    Đã đúng ý thằng em chưa? hàng của anh quẩy được tất cả các định dạng ebook luôn pdf, epub là quá cơ bản…Thằng em có thể tùy chỉnh bật, tắt đễ dàng, nhanh chóng bằng keymap do chính mình config, mở tại newtab, buffer window hay split window tùy ý, kích thước thì thằng em tự điều chỉnh:

  • @Hỏi khôn - boy: Uầy đã vậy! không cần dùng đến chuột luôn cơ ạ :flushed: !!!

  • @Stallman: Tất nhiên, dùng hàng của anh thì em cất chuộtdisable touchpad đi cho đỡ bụihại điện. Mọi thứ có thể quẩy được từ bàn phím, thế coder mới mê chứ, mấy thằng coder là nó ghét dùng chuột lắm.


  • @Hỏi khôn - boy: Nói thế chứ có những cái bất khả kháng anh ạ, cứ nguyên tắc giữ khư khư cái màn hình mãi đâu có được! Em thấy là việc lập trình rất là stress thỉnh thoảng phải bật tí nhạc nó mí thư giãn, không thì có mà gục tại bàn, kiểu gì cũng phải bật trình player làm tí nhạc!!! :frowning:

  • @Stallman: Xòi oi, nghe thằng em nói tưởng cái gì nghiêm trọng cơ :sweat_smile: …Chứ em thích chơi nhạc thì anh chiều…nè:


    Đã chưa :sunglasses: ? thằng em thích điều chỉnh style thế nào cũng được luôn, thích gọn gàng ở một dòng status line cũng OK, vừa code vừa quẩy nhạc, cài đặt keymap bật tắt dễ dàng ngay từ bàn phím trong lúc đang code, nhanh-gọn-lẹ đỡ mất thời gian cầm chuột bật trình nhạc rồi search folder list nhạc chi cho mệt. :wink:

  • @Hỏi khôn - boy: Well, bắt đầu thấy hơi hư cấu rồi à nha! :kissing:


  • @Hỏi khôn - boy: Cơ mà anh ạ không liên quan, em hỏi chứ: anh có thấy, thằng Google Chrome dạo này nó quá anh ạ, nặng ghê gớm, nhà em thì nghèo có độc con RAM 2GB phải từ bỏ Windows sang Linux cho nhẹ, cơ mà vẫn không thoát được kiếp Cờ-rôm :cry: , nhiều lúc còn đơ cả máy, muốn nghiên cứu tí về server mà không dám build máy ảo. Mấy thằng Firefox, Opera nhẹ hơn tí nhưng vẫn lắm, haizzz. Mà em có dùng với mục đích cao sang như webgame…v…v… gì đâu cơ chứ, chỉ lên để đọc/search tài liệu, tin tức thôi, đã vậy mấy bố còn đặt quảng cáo lung tung, loạn xạ hết cả lên, vừa phân tán, lại vừa nặng cả máy :disappointed_relieved:!

  • @Stallman: Ủa vậy hả, lâu anh không dùng mấy thằng trình duyệt, không ngờ bây giờ nó tã vậy! :expressionless:

  • @Hỏi khôn - boy: Anh đùa em à! Chẳng lẽ có dân công nghệ thông tin nào sống mà không cần lướt web? :scream:

  • @Stallman: Ủa anh vẫn quẩy web bình thường mà! :expressionless:

  • @Hỏi khôn - boy: Lướt web mà lại không dùng trình duyệt? :rage: …Ây ây, đừng nói với em là anh dùng cái hàng họ chết tiệt của anh để lướt web nhá! Hư cấu thì hư cấu nó vừa vừa thôi! :unamused:

  • @Stallman: Chuẩn đét luôn em ạ, không phải là hư cấu đâu, chú không tin thì lại đây anh cho xem:

  • @Hỏi khôn - boy: thôi thôi anh ạ, đủ rồi, anh từ từ để em bình tĩnh :grimacing:…Ui xời ơi sao lại đúng ý em thế không biết :open_mouth: nữa! Nhẹ nhàng, đơn giản, không phân tán, không quảng cáo! Thế cái này cũng vừa code vừa lướt sờ-woét, rồi tùy chỉnh keymap, cửa sổ bật tắt dễ dàng lun không cần dùng chuột hả anh?

  • @Stallman: tất nhiên rồi, hàng của anh chú cứ mặc định là thế rồi, chú không phải hỏi thêm nữa cho nó đau mồm!!! :sunglasses:

  • @Hỏi khôn - boy: :thumbsup:

  • @Hỏi khôn - boy: À mà anh ơi, thế còn Google Map em cũng hay dùng Google Map lắm nhưng mà lag vô đối, không biết của anh…:tặc lưỡi:

  • @Stallman: Quẩy được hết em ạ, này thì map này:

  • @Hỏi khôn - boy: :scream_cat:


  • @Hỏi khôn - boy: Thế còn game… à ừ chơi game thì sao…thỉnh thoảng cũng phải làm tí, gọi là giải trí chứ anh…hề hề!!!

  • @Stallman: Ừm, học mí chả hành…nghiên cứu chưa đâu vào mí đâu đã hỏi game game, suốt ngày game :angry:

  • @Hỏi khôn - boy: Ứ, gấu không có, cờ hó cũng không, không game thì… :sob: !!! Ế ề, hay là…hàng của anh thiếu món này, chuẩn rồi, thôi không sao đâu, làm gì có cái gì là hoàn hảo! Ừm, cùng lắm là bật tạm cái cửa sổ ngoài chơi game thôi mà…nhề! :stuck_out_tongue_winking_eye:

  • @Stallman: Không có là không có thế nào…ừm :angry: .Dọa thằng em thế chứ anh cũng nghiện mấy game trí tuệ lắm, thỉnh thoảng làm tí cho nó khoái não. Đây nè, anh hay chơi mấy trò này:

Không những vậy, còn có mấy cái thi đấu online luôn, ùi…mấy cái trò đánh cờ, gặp toàn thanh niên não sạn đánh ghê vãi :sweat:

  • @Hỏi khôn - boy: Thì toàn thanh niên cứng dùng hàng của anh nên trả vậy thì sao. Cơ mà anh giỏi thật đấy, không thể mường tượng trong 1 lúc anh có thể làm được những gì? :pray:

  • @Stallman: Thì cũng tùy lúc thôi em ạ! Nhu cầu của anh cũng đơn giản í mà :yum: ! Về cơ bản thì ít nhất là như thế này:

  • @Hỏi khôn - boy: :crying_cat_face: (Cảm thấy mình yếu đuối)


  • @Hỏi khôn - boy: Đúng là gặp anh em mới ngỡ ra được mình còn quá kém cỏi so với kiến thức của những người như anh, từ nay phải quyết tâm hơn nữa, lập kế hoạch rõ ràng, lên coursera quẩy nhiệt tình. Nhân tiện cái này thì hàng của anh có cái nào kiểu Lập kế hoạch, thông báo lịch không?..mà còn Quản lý/notify email nữa, học trên coursera thì nó hay thông báo qua email lắm…À còn Feed Reader nữa chứ em cần phải follow mí trang Blog của những người pro như anh, có cái thông báo/quản lý tin nhanh thì tuyệt. :blush:

  • @Stallman: Có chứ em…mấy cái đấy là không thể thiếu đối với dân công nghệ rồi.

  • @Hỏi khôn - boy: Vãi cả thông báo “pha trà” ạ! :sweat_smile:

  • @Stallman: Không có trà sao sống qua đêm hả em? Thói quen của anh rồi, nên cũng lên lịch thông báo lun cho nó khoa học…ừm!!! :sunglasses:

  • @Hỏi khôn - boy: Oh…Serious man! Serious man! :ok_hand:


  • @Hỏi khôn - boy: Thật quá tuyệt vời đi mà…sắp tới em có buổi thuyết trình trên lớp, em phải giới thiệu Emacs tới mọi người mới được…à mà có thể làm luôn được slideshow trên Emacs cho nó đậm chất Emacs được không anh?

  • @Stallman: Có chứ…SlideShow bằng Emacs tuy nhìn đơn giản… nhưng vô cùng thú vị, em có thể tạo ra các Tilte tùy ý thể hiện phong cách, kiểu như:


  • @Hỏi khôn - boy: Wow, thú vị đấy! Cơ mà em muốn slide có thêm mấy cái Diagram cho nó chuyên nghiệp nữa!

  • @Stallman: Ùi…đơn giản…đây anh ví dụ cho mấy cái:



Còn á nếu thằng em muốn cho thêm ít animation vào slide cho nó độc đáo hay là lập trình animation thì có thể code và demo được luôn:

  • @Stallman: Bonus cho thằng em cái Chat IRC lun, anh và mấy lão đồng niên hay lập mấy kênh hỏi đáp IRC lắm, có j em cứ lên đó hỏi:

  • Hỏi khôn - boy: wá đã!!! :stuck_out_tongue_closed_eyes:

  • @Stallman: Anh nói cho thằng em biết nhá, thằng em mà lấy hàng của anh lên phát biểu á…là có gấu ngay…ừm…Cứ phải gọi là trông em sẽ đẹp troai hơn trong mắt Cô giáocác bạn nữ…cơ mà nhớ thể hiện vừa vừa thôi em…chứ như anh đẹp troai quá cũng khổ, haizzz:

  • Hỏi khôn - boy:

  • @Stallman:


  • Hỏi khôn - boy: Còn một thứ cuối cùng nữa em cũng đang rất quan tâm. Gần đây vấn đề bảo mật ngày càng nóng bỏng. Thật sự thì em có mong ước sau khi trở thành một lập trình viên giỏi sẽ chuyển hướng nghiên cứu về ngành bảo mật, em rất tò mò về thế giới bí ẩn của Hacker, hàng của anh tuyệt như vậy không biết có chức năng nào mà Hacker dùng được không? :kissing_smiling_eyes:

  • @Stallman: Xồi ôi thằng em ơi…Hacker bọn nó dùng hàng của anh ở một đẳng cấp khác rồi, anh chỉ demo tạm cái cơ bản này thôi:

  • Hỏi khôn - boy: :scream: :astonished:


  • @Stallman: À thôi em ơi bây giờ anh có việc rồi!!! Chi tiết về mặt typing thì khi khác anh em mình nói chuyện sau nhé! :smiley:

  • Hỏi khôn - boy: Dạ vâng!!! À mà anh ơi sau cuộc nói chuyện em tự nhiên thấy anh đẹp trai vãi lun ý:


##THE END##

13 Likes

em bắt đầu tiếp cận vim và thích hơn là emacs :smiley: mọi người có biết chỗ học vim không?

cám ơn bác về cái conversation, rất thú vị :smiley: :smiley:

  • VN chẳng có chỗ nào học Vim đâu bác… kể cả mấy tutorial config thành một IDE cũng không có nữa…hầu như chỉ dừng lại ở việc syntax on cho hiện màu cú pháp là quẩy.

  • Đầu tiên bác cần làm quen với các thao tác cơ bản trên Vim qua tut nhanh và trực quan này:
    http://www.mediafire.com/download/a9j4jcy85s7zaxv/vim.txt

  • Sau đo bác search ở mấy trang nước ngoài cách cài plugin + config để nâng cao sức mạnh, có gì không hiểu thì bác có thể làm cái topic hỏi, mọi người sẽ hướng dẫn thôi. :grinning:

3 Likes

Thao tác key blind trên sublime text quen rồi :smiley: với sd IDE phpstorm nên cũng ko sd Vim nhiều

chỉ xài nano vs gedit :joy:

1 Like

Xài lâu rồi thì nên upgrade đi nhé. Mà Đạt không biết xài nano :frowning:

I invite you to read: http://unix.stackexchange.com/a/1010/38906

2 Likes

Mới thấy cái hình hài hài

4 Likes

Emacs có thể làm được nhiều thứ từ gửi thư đến lướt web hay đọc tin như bạn gì trên kia trình bày. Tuy nhiên đây không phải là tính năng đáng chú ý đối với một phần mềm cho các coder. Theo mình cái quan trọng nhất đối với coder là:

  • Hỗ trợ các chức năng cơ bản của một IDE: quản lý file, highlight syntax, autocomplete, compile, shell…
  • Gõ văn bản cực nhanh, các thao tác chọn, select, copy, paste, xóa thực hiện được với mọi đối tượng quan trọng trong code như word, line, paragraph, phần trong ngoặc. Các thao tác di chuyển con trỏ thực sự thuận lợi và rất nhanh.
  • Nâng cao hơn tí thì hỗ trợ quản lý dự án, ghi chú, sắp xếp công việc.

Với những yêu cầu đó thì:

  • Nếu dùng nguyên bản, cả VimEmacs đều khó đáp ứng.
  • Nếu thêm add-on thì Emacs kết hợp vớ xah-fly-key, thing-edit, org-mode là vô đối. Bạn nào tìm được thứ khác tương tự xin nói dùm.

Lý do:

  • Với xah-fly-key việc edit, di chuyển con trỏ trong Emacs tương tự như Vim nhưng hiệu quả hơn nhiều lần.
  • Với thing-edit bạn có thể copy mọi thứ mà không cần select.
  • Tổ chức công việc, viết báo cáo với org-mode thì không có gì so sánh được.

Thích thuận tiện hơn tí thì cài thêm AutoHotkey.

Bạn download cái Vim cheatshet khoảng 2 trang in ra dán vào tường trước chỗ ngồi đánh máy rồi lôi code mẫu ra đánh lại khoảng vài trăm trang code tự dưng trình nó lên, tìm chỗ học làm gì cho tốn thời gian.

;Đào mộ

@Quang_Duong:

Với tư cách là 1 Vimer chân chính, mình xin phép ném đá vào hội nghị :grin:

Emacs:

  • Có nhiều chức năng, nhưng như bạn nói, nó quá thừa thãi đối với 1 lập trình viện
  • Chức năng nhiều, tuy nhiên so với 1 editor trên command-line thì cài luôn GUI editor cho nhanh, lại đẹp
  • Tốc độ thua vim: 100%(con số này mình bịa ra thôi =)))
  • Chắc còn nhiều nhưng mình chưa dùng nên ko biết, hehe

Vim:

  • Không người Việt nào không biết (90% trẻ nhỏ tới người già :joy:)
  • Như bao editor khác, nó sẽ không bao giờ đầy đủ ngay từ lúc build, phải có plugin. Ai cần gì cài nấy.
  • Tốc độ có thể so với ánh sáng.
  • Kết hợp với Tmux thì không còn gì phải bàn nữa.
  • Giúp tăng chỉ số IQ (chém thôi :)))
3 Likes

Thực ra nếu chưa biết cái gì cả thì nên bắt đầu từ Vim, sau đó tìm hiểu thêm Emacs, khi khả năng sử dụng hai cái đã đạt mức trung bình rồi thì chọn 1 và gắn bó với nó. Việc so sánh chỉ là cho vui thôi!

Không biết Emacs có thể không sao chứ nếu không biết Vim thì sao dùng *nix được nhỉ?

1 Like

Biết thì tốt còn không biết cũng đâu có sao, giờ đa số là cài distro dùng luôn GUI, nếu ubuntu thì có sẵn nano, người mới chắc cứ nano thôi :smiley:

2 Likes

Bạn cũng rãnh phết, đã 2 năm rồi đấy chắc bạn không để ý thời gian nhĩ? Bây giờ mình đã thành thục VIM và phần lớn thời gian công việc của mình là làm việc với vim, khá là lâu rồi chắc không cần dán bảng đó nữa đâu :smiley:

4 Likes

Trong các forum mình vẫn hay trả lời câu hỏi từ xửa từ xưa, vì nhiều khi nó không dành cho người hỏi ban đầu mà dành cho người còn đang có câu hỏi tương tự! :slight_smile:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?