micro - lựa chọn thay thế hiện đại cho nano
(micro-editor.github.io)- micro là trình soạn thảo văn bản dùng trong terminal; bắt đầu đơn giản như nano nhưng hướng tới thao tác hiện đại và trực quan hơn
- Được phân phối dưới dạng binary tĩnh không có dependency, giúp giảm gánh nặng cài đặt; đồng thời cung cấp tải xuống bản phát hành chính thức và hướng dẫn cài đặt chi tiết
- Các tùy chọn và key binding được thay đổi bằng định dạng JSON, còn khả năng mở rộng sâu hơn có thể xử lý bằng cấu hình Lua và plugin
- Hỗ trợ tô sáng cú pháp cho hơn 75 ngôn ngữ, 7 theme màu mặc định, theme 16/256/truecolor, đa con trỏ kiểu Sublime và thao tác bằng chuột
- Nhờ terminal emulator tích hợp, có thể chạy shell tương tác ngay trong trình soạn thảo và xem mã cùng bash cạnh nhau bằng màn hình chia đôi
micro với vai trò trình soạn thảo trên terminal
- micro là trình soạn thảo văn bản dựa trên terminal, nhấn mạnh tính hiện đại và dễ dùng trực quan
- Có thể tải bản phát hành mới nhất tại Download, đồng thời xem hướng dẫn cài đặt chi tiết
- Có script bên thứ ba dạng pipe to shell theo cách
curl https://getmic.ro | bash, nhưng script này không nằm dưới sự kiểm soát của micro - Để thuận tiện cho việc cài đặt, micro được phân phối dưới dạng binary tĩnh không có dependency
-
Cấu hình và mở rộng
- Thiết lập tùy chọn và gán lại phím dùng định dạng JSON đơn giản
- Nếu cần cấu hình mạnh hơn, có thể dùng Lua
- Plugin được viết bằng Lua, và trình quản lý plugin sẽ xử lý việc tự động tải xuống và cài đặt
-
Tính năng soạn thảo
- Hỗ trợ tô sáng cú pháp cho hơn 75 ngôn ngữ
- Cung cấp 7 theme màu mặc định
- Có thể dùng các theme 16 màu, 256 màu và truecolor
- Hỗ trợ đa con trỏ kiểu Sublime
- Có thể thay đổi key binding trong
bindings.json
-
Chuột và terminal tích hợp
- Có thể chọn văn bản bằng cách nhấp và kéo
- Nhấp đúp dùng để chọn theo từ, nhấp ba dùng để chọn theo dòng
- Có thể chạy shell tương tác thực sự bên trong micro
- Trong màn hình chia đôi, có thể mở mã ở một bên và bash ở bên còn lại
- Danh sách đầy đủ tính năng có thể xem tại danh sách tính năng trên GitHub và trợ giúp trực tuyến
Dự án và cộng đồng
- Có thể báo cáo lỗi qua trình theo dõi issue trên GitHub, cũng như đặt câu hỏi hoặc đề xuất tính năng mới
- Chấp nhận pull request
- Có thể thảo luận không chính thức về trình soạn thảo trên chat Gitter
- Liên kết liên quan:
- Phản hồi của người dùng bao gồm các đánh giá rằng đây là một trình soạn thảo hoạt động đơn giản, hỗ trợ chuột và có thể dùng thay cho nano hoặc Vim
1 bình luận
Ý kiến trên Hacker News
Khi dạy lập trình dòng lệnh trong một lớp mà ai cũng là người mới bắt đầu, tôi khuyên sinh viên dùng nano
Với những người dùng này, ưu điểm lớn nhất của nano là mọi lệnh đều hiển thị ở phía dưới màn hình, nên tôi ngạc nhiên khi micro không có điều đó
Ở phía dưới màn hình cũng có gợi ý rằng nhấn Alt+G để xem phím tắt và Ctrl+G để xem trợ giúp
Theo nghĩa đó, vẫn đúng khi khuyên sinh viên dùng nano, còn micro có vẻ phù hợp với những người sau khi học bằng nano muốn có nhiều tính năng hơn hoặc UI tốt hơn
Dường như cũng có một dạng chế độ bình luận
Tôi đã dùng Emacs hơn 10 năm, nhưng giờ dùng micro làm trình soạn thảo mã chính. Chỉ ngoại lệ là dùng vscode để viết Coq
Tôi xem micro là acme được thỏa hiệp theo hướng hiện đại, và nó có gần như mọi tính năng hỗ trợ các ý tưởng cốt lõi của acme. Tôi cũng đã viết plugin để tận dụng hướng này: https://github.com/xxuejie/micro-acme
Cho đến giờ nó hoàn toàn phù hợp với tôi
Tôi mong các trình soạn thảo khác cũng làm theo quy ước buộc thụt lề đúng bằng phím tab
https://github.com/zyedidia/micro/tags
Giờ tôi đã tùy biến Micro để có cảm giác giống Acme
Tôi không biết là có người dùng nano làm trình soạn thảo mã chính. Trên các máy chủ *nix tôi đang làm việc thì tôi luôn dùng nó, và có lẽ đã dùng hàng chục nghìn lần
Tôi đã làm kỹ sư Linux/BSD trong thời gian dài, nhưng có vài nơi từ chối cài nano lên máy chủ. Tôi không hiểu nổi những quản trị viên Linux kỳ cựu nhất quyết không cho dùng gì ngoài vi. Nó là gói 20MB và bề mặt tấn công cũng không lớn lắm
Tôi luôn thấy buồn cười khi hỏi thế hệ trước họ từng vận hành hệ thống nào, và họ khoe kiểu như mình phụ trách toàn bộ bộ phận IT của chính quyền địa phương, mà đó lại là một thị trấn khá lớn nên cũng có ít nhất khoảng 500 người dùng
Tôi chắc chắn 105% rằng hệ thống đó hẳn là an toàn nhất toàn quận, nhưng đồng thời chắc cũng là một hệ thống không thể sử dụng. Khi người đó nghỉ hưu hoặc ai đó trong văn phòng tuyệt vọng đến mức loại bỏ nó, tôi hy vọng họ được thay bằng một kỹ sư kiểu mới, có thể không biết vi nhưng ít nhất quan tâm đến người dùng một chút. Tất nhiên chúng ta cũng là kỹ sư nên chắc cũng chẳng quan tâm nhiều đâu
Nếu làm kỹ thuật viên *nix, bạn có thể phải xử lý các hệ thống như QNX, HP-UX, siêu máy tính SGI Altix, Sun Ultra 2. Linux thì dễ hơn vì có quản lý gói phần mềm tự do/mã nguồn mở, và trước khi nano phổ biến, cấu hình mặc định có Emacs cũng khá thường gặp
Đôi khi gặp vấn đề terminal khiến chỉ thấy được một dòng, lúc đó bạn phải thao tác vi trong tình trạng gần như không nhìn thấy gì, hoặc dùng sed/awk. Vì vậy có lẽ vẫn còn bản năng KISS muốn mọi người học vi. Tôi cũng đã học như vậy
Một trình soạn thảo đơn lẻ không tạo ra bề mặt tấn công lớn, nhưng tôi không loại trừ khả năng kẻ tấn công lạm dụng chức năng plugin làm phương tiện duy trì sự hiện diện. Khi chạy bằng root thì có thể hành xử khác, nhưng với tài khoản dịch vụ thì chưa chắc
https://packages.ubuntu.com/jammy/nano
Lúc đó tôi bực, nhưng giờ thì hài lòng vì đã đổi. Vim hoặc vi có ở khắp nơi, kể cả trên switch và router mà tôi làm việc. nano thì không có ở mọi nơi, và cũng không dễ đưa vào mọi nơi
Nếu tôi không thường xuyên SSH vào phần cứng cũ hoặc thiếu tài nguyên thì có lẽ tôi đã ít cảm nhận được lợi ích này hơn
Nhưng việc chọn trình soạn thảo văn bản là chuyện rất cá nhân. Việc ai đó ép người khác dùng hoặc không dùng một trình soạn thảo cụ thể là hoàn toàn vô lý. Cứ để họ dùng thứ họ thích là được
JOE khá ổn: https://joe-editor.sourceforge.io/
Nó là sự pha trộn giữa WordStar và Emacs, và khi chạy bằng
jstarthì mang lại trải nghiệm WordStar khá chân thực, đồng thời vẫn có cảm giác của Borland Turbo IDE thời kỳ đầuTôi cũng đã viết một bài về cách dùng các phím WordStar Diamond trên Linux hiện nay: https://benhoyt.com/writings/wordstar-diamond/
Về sau tôi cũng dùng QEdit, vốn có thể cấu hình để dùng phím WordStar
Khi chuyển từ DOS sang Unix vào đầu thập niên 90, tôi đã rất vui khi phát hiện ra JOE. Đây là chương trình đầu tiên tôi cài trên máy Linux hoặc *BSD mới, cũng như trên VM
JOE ngày nay có tô sáng cú pháp và nhiều tính năng hay, nên tôi chưa bao giờ cảm thấy cần phải thành thạo vi hay emacs
Nó không hợp lắm để sửa mã, vì gần với mô hình trình xử lý văn bản hơn, chẳng hạn thiếu tự động xuống dòng và tô sáng cú pháp
Nhưng để viết tài liệu văn bản thì đó là một trình soạn thảo nhỏ rất đáng yêu
Có lẽ tôi không tìm ra, nhưng thật sự là không thấy
jmacsđể dùng bộ phím tắt kiểu EmacsTôi thích micro và đang dùng hằng ngày
Tuy vậy, sau khi thử Helix, tôi lại muốn micro có sẵn treesitter, LSP, trợ giúp theo ngữ cảnh. Helix làm rất tốt gói tính năng đó, nhưng “một chế độ duy nhất + lệnh” cùng trí nhớ cơ bắp Ctrl-C/Ctrl-V quá tiện nên khó chuyển sang
Tôi không hiểu vì sao đến giờ vẫn có phần mềm bảo người dùng chạy sudo với thứ tải từ Internet về
Có lựa chọn dễ hơn, an toàn hơn, dung lượng cài đặt nhỏ hơn và có sẵn trong mọi bản phân phối, vậy tại sao lại bắt dùng kiểu script đó
Để so sánh, gói micro của Alpine sau khi cài chỉ 4MB, còn binary biên dịch tĩnh tải từ GitHub là 11MB. Tôi nghĩ dùng gói trong kho phần mềm mới đúng chất micro hơn
Nhìn vào https://github.com/zyedidia/micro#quick-install-script thì script cài nhanh là
curl https://getmic.ro | bash, và script đặt binary micro vào thư mục hiện tạiSau đó nếu muốn thì có thể chuyển nó vào một thư mục nằm trong PATH, và họ đưa ví dụ
sudo mv micro /usr/bin. Nếu chuyển vào/usr/binthì cần sudo, họ chỉ nói vậy thôi; tôi không rõ điều đó có vấn đề gì(ba)shlà hoàn toàn vô trách nhiệmTôi cũng chán cái cách biện minh nực cười kiểu “ai cũng làm vậy” rồi
Tôi muốn nhận ứng dụng trực tiếp từ nhà phát triển. Như vậy tôi có thể chắc rằng mình đang dùng phiên bản được hỗ trợ chính thức và mã không bị ai chỉnh sửa
Nếu không tin nhà phát triển ứng dụng thì tôi đơn giản là không cài
Tôi từng nghĩ Nano là lựa chọn hiện đại thay thế cho Pico
Tò mò vì sao mọi người lại quan tâm đến những trình soạn thảo nhỏ như thế này
Lý do duy nhất để dùng vi/vim là vì nó có ở khắp nơi. Nếu phải cài một trình soạn thảo, tôi sẽ cài Emacs
Nếu là hệ thống từ xa, tôi mở file qua SSH bằng tramp để vẫn giữ nguyên toàn bộ sức mạnh và tốc độ của Emacs cục bộ. Với các thao tác chỉnh sửa trong UI terminal như sudoedit, git commit, C-x C-e, tôi chạy Emacs dưới dạng daemon nên frame mới, frame terminal cũng hiện lên ngay lập tức, gần như giống hệt Emacs GUI, kể cả nerd font và màu sắc, và đúng nghĩa là Emacs
Không cần có nhiều trình soạn thảo cho từng mục đích
Emacs hấp dẫn hơn, còn khi ssh vào các thiết bị công suất thấp như router chạy OpenWRT, vì không có Emacs nên tôi dùng Nano, trông trực quan nhất trong số các trình soạn thảo có sẵn
Tôi biết cũng có thể dùng Emacs và TRAMP, nhưng ai rồi cũng có quy trình làm việc riêng. Tôi không có ý hạ thấp vi; việc một số hacker không thể thấy thoải mái với vi là hiện tượng khá nổi tiếng
Một số người chỉ muốn sửa nhanh một file
Có thể dùng bằng những kiến thức đã biết từ Windows Notepad hay Mac SimpleText, và vẫn hoạt động trong tình huống chỉ có console Unix trên một máy bị hỏng hoặc máy chủ
Nhưng tôi rất quan tâm đến các trình soạn thảo nhỏ như nano. Lý do nằm trong bình luận gốc này: https://news.ycombinator.com/item?id=37173126
Đoạn đầu ở đây cũng đáng tham khảo: https://linuxize.com/post/how-to-use-nano-text-editor/
Với các quản trị viên hệ thống ngày nay, những người không lớn lên cùng vi hay vim và cũng không chọn phe emacs, việc đưa nano vào các image triển khai hàng loạt là một lựa chọn lịch sự
Tôi cũng không thường xuyên chỉnh sửa gì đó từ xa, và thường chỉ là các file cấu hình đơn giản
Tôi đã thử micro và thích nó, nhưng nó không mở ngay trên Pi, và tôi không làm những việc đủ lớn trong trình soạn thảo dòng lệnh đến mức thật sự cần các tính năng đó
Thường thì tôi thích vim hơn, nhưng công sức để triển khai một cấu hình tử tế lên hệ thống đích là quá lớn
Vấn đề tôi gặp với micro là dán có định dạng
Khi dán một đoạn code, micro cố gắng thụt lề từng dòng, nhưng vì không biết toàn bộ ngữ cảnh nên phần thụt lề của văn bản được dán cứ ngày càng sâu vô hạn
Quá trình cũng chậm đến mức gần như đứng lại vì phải suy luận định dạng từng dòng. Thay vì dán xong rồi nhìn một cảnh kiểu Ma trận, tôi phải đi lấy cà phê
Hy vọng là nó đã được sửa, nhưng lúc đó tôi đã bỏ đi. Nếu đã sửa thì tôi có thể thử lại
set autoindent offhttps://github.com/zyedidia/micro/blob/master/runtime/help/o...
Dù vậy, ngay cả khi đang bật, khi dán cả một block thì nó vẫn nên thụt lề đúng
Nếu bạn chia sẻ thiết lập, môi trường và cấu hình, tôi có thể thử làm một bản vá
Nó phụ thuộc vào cách dán. Tôi không chắc 100% chính xác nó hoạt động thế nào, nhưng có vẻ micro tự triển khai lại việc dán trực tiếp bằng xclip, còn trên Windows thì tôi không biết nó làm gì
Nếu dán bằng Ctrl+V, nó chèn ngay nội dung clipboard dưới dạng một block và sao chép thụt lề gốc. Nếu dùng Ctrl+Shift+V, đôi khi terminal xử lý như thể clipboard đang chảy vào từng ký tự một; khi thấy ký tự xuống dòng mà chưa biết ký tự tiếp theo, nó sẽ thêm thụt lề, rồi ngây thơ chất thêm vài tab nữa
Trong 14 lần gửi khác, bài năm 2020 có 103 bình luận, bài năm 2021 có 162 bình luận
[0]: https://news.ycombinator.com/item?id=23334190
[1]: https://news.ycombinator.com/item?id=29128702