01/10/2018, 14:21

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?
Florastamine viết 16:32 ngày 01/10/2018

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.

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

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).

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

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

Chế Tiệp Chân Khoa viết 16:37 ngày 01/10/2018

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

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)

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

2 năm.

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

1 tháng

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

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

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

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

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

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

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

Nothing. Never change anything.

Dark.Hades viết 16:23 ngày 01/10/2018

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

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

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

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

Coulson viết 16:35 ngày 01/10/2018

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

phamvandung viết 16:23 ngày 01/10/2018

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

Phan Ngoc viết 16:36 ngày 01/10/2018

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.

phannam1412 viết 16:28 ngày 01/10/2018

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 : )

Nguyen Ca viết 16:35 ngày 01/10/2018

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.

Coulson viết 16:24 ngày 01/10/2018
  • 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.

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.

Aragami1408 viết 16:27 ngày 01/10/2018

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

  • 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

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

  • 3 tháng(Gợi ý dùng bởi profile của @Dark.Hades)

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

Có vài ngày

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

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

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

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/

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

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

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

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!

Nguyễn Phạm Anh Quân viết 16:31 ngày 01/10/2018

Dĩ nhiên nếu xài Windows thì ưu tiên GUI editor rồi, cụ thể hơn là Visual Studio! 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!

Hung viết 16:22 ngày 01/10/2018

Vì OS không có GUI

anon10499953 viết 16:23 ngày 01/10/2018
  • 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.

Nguyễn Phạm Anh Quân viết 16:24 ngày 01/10/2018

@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ả!

Hung viết 16:36 ngày 01/10/2018

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

Tốc độ code mình hiện giờ còn nhanh hơn cả syntax highlight và autocomplete của XCode nữa.

Lý do vì XCode cùi chứ không phải mình siêu nhân

anon10499953 viết 16:33 ngày 01/10/2018

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
Còn làm game muốn kéo thả thì thôi đừng xài Vim.

Nguyễn Phạm Anh Quân viết 16:34 ngày 01/10/2018

@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!

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

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

anon10499953 viết 16:21 ngày 01/10/2018

@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?

anon10499953 viết 16:26 ngày 01/10/2018

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

Nguyễn Phạm Anh Quân viết 16:34 ngày 01/10/2018

@mad_programmer anh ko cần xài Vim cũng có thể kết luận là em nói chưa chuẩn rồi! Anh công nhận Vim mạnh và hữu dụng nhưng cũng ko thích GUI editor bị dìm quá đáng như vậy! Thêm nữa, tốc độ compile ko phải yếu tố quyết định trong 1 dự án lớn, mà nó đến từ sự hỗ trợ dev nhiều hơn! Trong mảng này thì MS làm rất tốt!

Bài liên quan
0