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?
Bài liên quan
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 (jk)
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.
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
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
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.
nhẹ nhàng êm ái hơn, thích hợp quick edit
vài năm, từ lúc chuyển qua xài mac os tới giờ
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 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
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.
Đầy, mình so vài cái với phpstorms nhé:
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 : )
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.
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 độngCó 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é!):
Nói chung chỉ có thế này thôi. Mình sống đơn giản lắm!
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!
Vì OS không có GUI
Tự config Vim cũng là cách học hiệu quả nhất cho những ai mới bắt đầu.
@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ả!
Khi bạn có dự án lớn sẽ có được trải nghiệm như mình, khoe tí
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.
@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
@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.
@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!