Tại sao anh em lại dùng vim / emacs?

Sau một thời gian sử dụng các GUI text editor, mình đang chuyển qua học xài spacemacs nhưng mà thấy nhiều phím tắt cứ lộn qua lộn lại mãi.

Nếu anh em nào đã xài Vim hoặc Emacs làm editor chính cho việc lập trình giải đáp giúp mình một vài thắc mắc.

  • Xài Vim/Emacs thì có gì hơn so với xài GUI text editor?
  • Anh em đã xài vim/emacs trong bao lâu?
  • Khoảng sau bao lâu thì có thể học và sử dụng thành thạo cho công việc?
  • Làm sao có thể nhớ được các phím tắt nhanh nhất?
  • Có thật là code trên Vim/Emacs sẽ nhanh hơn?
  • Có những tính năng gì GUI editor có mà Vim/Emacs không có?
  • Có thể chia sẻ file config của anh em để mình tham khảo được không?
1 Like

Theo mình thấy những người thường xuyên sử dụng vim thường là đã quen với workflow Unix-like/Linux (vì hầu hết mọi thứ được thực hiện qua shell), ít thấy ai sử dụng thuần Windows lại dùng vim, bởi vì toolset của Windows thường hầu hết là hướng GUI.

Tùy người, rule of thumb của mình là nếu bạn làm được việc hơn và có productivity khi xài GUI tools thì cứ xài, và ngược lại, thấy vim thoải mái hơn thì cứ dùng. Quan trọng là giải quyết được công việc. Nếu bạn thấy đã thoải mái sẵn với GUI thì không cần phải học thêm (trừ khi công việc/công cụ bắt buộc).

Ăn mem nhiều hơn :joy: (jk)

5 Likes

Khởi động nhanh.
Cài chỉ bằng một lệnh.
Highlight nhiều ngôn ngữ hơn. (Nhớ cài thêm package emacs-goodies)

2 năm.

1 tháng

Dán cheatsheet trước mặt. Và ĐỪNG CÓ THAY ĐỔi PHÍM TẮT.

Sẽ nhanh nếu bạn tuân thủ triết lý Unix. Vì

Thông minh hơn. (Văn hóa Unix quan niệm rằng Tools are stupid. People are smart.)

Nothing. Never change anything.

6 Likes

Cái này mình phản đối :weary:

Do lười gõ Esc(vim) nên mình map phím khác tiện hơn :joy:

Với việc map key này hễ giúp bản thân ok là đc rồi, không nên quá khắt khe

6 Likes

Mình cũng đồng ý, gõ phím ESC hơi xa nên mình map lại Ctrl + [

Vim tiện hơn trên linux.
Và chỉ có bọn này chạy được trên command line

1 Like

You mean vim in linux, i am usually use it to edit config file especially config host file and edit on remote host. I think people use it for simple text editor, can use it fastly and just edit some line code which don’t need init huge editor, easy to edit even in terminal and you know mostly developer code on unix system and do everything in terminal is most interesting experience. :yum:

1 Like

Xài Vim/Emacs thì có gì hơn so với xài GUI text editor?

nhẹ nhàng êm ái hơn, thích hợp quick edit

Anh em đã xài vim/emacs trong bao lâu?

vài năm, từ lúc chuyển qua xài mac os tới giờ

Khoảng sau bao lâu thì có thể học và sử dụng thành thạo cho công việc?

tuỳ bạn thành thạo ở mức nào, mình chỉ quick edit nên chỉ học và nhớ các chức năng cơ bản, ko đi sâu về tất cả các chức năng.

Làm sao có thể nhớ được các phím tắt nhanh nhất?

Làm nhiều nhớ nhiều, lúc đã xài thì cái gì cũng lôi vim ra xài, kể cả viết thư tình cho gái

Có thật là code trên Vim/Emacs sẽ nhanh hơn?

Ai xài gì quen nấy, riêng mình xài webstorms/phpstorms thì đã thuộc gần hết các phím tắt của nó nên xài sẽ nhanh hơn.

Có những tính năng gì GUI editor có mà Vim/Emacs không có?

Đầy, mình so vài cái với phpstorms nhé:

  • Mở file nhanh bằng cách search tên file (fuzzy search, không cần phải gõ chính xác, tự động list các file có chứa keyword)
  • Search và mở nhanh 1 hàm nào đó trong code bằng fuzzy search.

Có thể chia sẻ file config của anh em để mình tham khảo được không?

Mình chỉ xài Vim/Emacs trên server chứ ko xài thường xuyên nên ko config gì nhiều : )

2 Likes

Toàn dùng vi để sửa config trên linux, còn lại sublime text cũng ổn, cài thêm module sftp để transfer source từ win lên linx server.

Những tính năng này thì emacs mình cũng thấy có sẵn.
Có cái multi cursor là chưa thấy, ko biết có support không.

  • Cực nhẹ
  • Mình không xài chuột nên là mọi thao tác dùng bàn phím thì tiện hơn
  • Free(Cái này không đúng lắm)
  • dùng unix-like OS thì toàn dùng terminal là chính nên xài vim thì tiện hơn. Gõ lệnh vim là vim chạy ngon trên terminal không cần phải tự tìm lấy phần mềm rồi khởi động
  • 3 tháng(Gợi ý dùng bởi profile của @Dark.Hades)

Có vài ngày

Dán ở đèn bàn. Cheatsheat thì phải học thuộc rồi tự kiểm tra

Nhanh vì nó nhẹ và dễ tương thích trên các máy cấu hình thấp và đỡ phải dùng chuột. Mình không thích dùng chuột vì có phần nó làm cho 1 số thao tác nó lâu la và cũng vì bài viết này: https://blog.codinghorror.com/going-commando-put-down-the-mouse/

Config được theme đẹp hơn rồi có 1 số extension tải nhanh hơn. Cái này thực sự không dám trả lời cho lắm nhưng có góp phần thôi

Mình thì nhiều thứ(Search từng cái trên github là ra nhé!):

  • Vim-Plug
  • Syntastic
  • Darcula
  • amix/vimrc
  • Nerd Tree

Nói chung chỉ có thế này thôi. Mình sống đơn giản lắm!

5 Likes

Dĩ nhiên nếu xài Windows thì ưu tiên GUI editor rồi, cụ thể hơn là Visual Studio! :smile: Còn trên các OS khác vì dùng lệnh nhiều hơn nên họ thích xài Vim!

Vì OS không có GUI :sweat:

4 Likes
  • Vim/Emacs tập trung vào touch type, cho phép bạn không cần phải dùng đến chuột và có thể gõ code ngang với tốc độ suy nghĩ, gọi là tay nhanh >= não.
  • Mình mới học hồi đầu năm thôi và tự hỏi sao đó giờ không chịu học sớm.
  • 1 đến 2 tháng là đủ để quên các gui editor khác.
  • Luyện tập.
  • Thật.
  • Gui editor tốn ram hơn, màu mè hơn và ngu hơn (vâng, ngu cũng là 1 tính năng).
  • https://github.com/huyvohcmc/dotfiles

Tự config Vim cũng là cách học hiệu quả nhất cho những ai mới bắt đầu.

1 Like

@mad_programmer chắc là em chưa đụng đến 1 dự án vài chục nghìn tới vài trăm nghìn dòng code đúng ko? Và đặc biệt là làm game nữa! Thành ra chưa thấy hết sức mạnh của GUI editor và kéo thả! :smile:

3 Likes

Khi bạn có dự án lớn sẽ có được trải nghiệm như mình, khoe tí :joy:

3 Likes

Dự án lớn vài trăm nghìn dòng code thì em đố anh tìm được cái editor nào nhanh hơn Vim đấy :wink:
Còn làm game muốn kéo thả thì thôi đừng xài Vim.

@mad_programmer anh muốn nói mỗi 1 product dc sinh ra để phục vụ các nhu cầu khác nhau! Nếu Vim ưu việt thế tại sao nó ko dc xài trong làm game, và ngược lại tại sao VS rất hữu dụng? VS nặng vì cái debugger của nó, nhưng lại rất hữu ích trong các dự án lớn!
Dĩ nhiên làm game là phải kéo thả! Làm game ko kéo thả đố em xong dc game lớn đấy! :smile:

PS : Tại anh thấy em chê GUI edtior dữ quá nên vào có chút ý kiến :smile:

Gui editor tốn ram hơn, màu mè hơn và ngu hơn

3 Likes

@hitman17528 Thì em có phủ nhận chuyện mỗi editor đều có thế mạnh riêng của nó đâu? Post này hỏi mọi người tại sao lại chọn Vim/Emacs mà, chứ đâu có hỏi tại sao lại chọn Vim/Emacs mà không chọn VS để làm game?

Câu đó hoàn toàn đúng, anh có thể xài Vim và sau đó tự so sánh.

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