2 điểm bởi GN⁺ 2023-08-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

  • microtrì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 GitHubtrợ 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

 
GN⁺ 2023-08-19
Ý 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 đó

    • Điểm khác nhau giữa micro và nano là phím tắt bàn phím của nano khá riêng biệt, còn micro đi theo cách mà hầu hết ứng dụng đồ họa hiện nay dùng, như Ctrl+S để lưu, Ctrl+F để tìm, Ctrl+Z để hoàn tác, Ctrl+Q để thoát
      Ở 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
    • Ý định của micro có vẻ gần với một trình soạn thảo hiện đại và có thể mở rộng hơn là một trình soạn thảo thân thiện với người mới hoặc có mặt ở mọi nơi
      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
    • Có vẻ nhấn Alt+G sẽ hiện màn hình phím tắt, còn Ctrl+G mở trợ giúp
      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

    • Dạo này tôi chỉ dùng khoảng 1% tính năng của Emacs nên liên tục thử các trình soạn thảo terminal nhẹ hơn để thay Emacs, nhưng tôi rất nhớ các major mode của Emacs phổ biến như C/C++ và đặc biệt là cách thụt lề
      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
    • Vì không rành micro nên tôi muốn hỏi: có lý do nào khiến tốc độ phát triển chậm lại trong 1–2 năm gần đây không?
      https://github.com/zyedidia/micro/tags
    • Tôi cũng tương tự, chuyển từ Emacs sang Acme, và trong terminal thì dùng mg
      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

    • Người kỳ cựu thì rốt cuộc cũng hành xử kiểu kỳ cựu thôi
      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
    • Lý do chính một quản trị viên Unix phải biết vi thật tường tận là vì nó là mẫu số chung nhỏ nhất trên các hệ thống Unix và Linux
      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
    • Nói là 20MB thì không đúng lắm: file thực thi nano là 277KB, còn toàn bộ gói .deb cũng chỉ 860KB
      https://packages.ubuntu.com/jammy/nano
    • Ban đầu tôi là người dùng nano, nhưng bị các bậc kỳ cựu thúc ép nên chuyển sang dùng vim, và giờ tôi chỉ đụng đến nano khi cần dọn dẹp file vimrc
      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
    • Cá nhân tôi rất ghét nano, nên lúc nào tôi cũng chọn vi
      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 jstar thì 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ỳ đầu

    • Tôi từng rất thích JOE. Có lẽ là vì nó còn dấu vết của WordStar
      Tô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/
    • Trình xử lý văn bản đầu tiên tôi dùng là WordStar trên CP/M, và môi trường lập trình đầu tiên là Borland Turbo Pascal
      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
    • Tôi có những kỷ niệm đẹp khi trong thập niên 90 đã dùng joe cho hầu hết mọi việc ngoài chỉnh sửa mã
      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ó phải khác biệt giữa các chế độ và key binding không được ghi trong tài liệu hướng dẫn không?
      Có lẽ tôi không tìm ra, nhưng thật sự là không thấy
    • Tôi hay chạy bằng jmacs để dùng bộ phím tắt kiểu Emacs
  • Tô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 đã dùng Helix hằng ngày khoảng 6 tháng, và thật sự thích việc nó là một trình soạn thảo có đủ tính năng cơ bản ngay từ đầu. Một trình soạn thảo tuyệt vời
  • 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

    • Nó thật sự bắt chạy sudo à?
      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ại
      Sau đó 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/bin thì cần sudo, họ chỉ nói vậy thôi; tôi không rõ điều đó có vấn đề gì
    • Khuyến nghị pipe nguồn bất kỳ trên Internet vào sudo hoặc (ba)shhoàn toàn vô trách nhiệm
      Tô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
    • Cá nhân tôi không muốn có bên trung gian nào đứng giữa nhà phát triển ứng dụng và tô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

    • Tôi đã dùng Linux hơn 20 năm, nhưng rốt cuộc vẫn không thật sự hiểu vi và cảm thấy nó không trực quan
      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
    • Không phải ai cũng quan tâm đến một trình soạn thảo khổng lồ với đường cong học tập dốc
      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ủ
    • Tôi không quan tâm đến bản thân những trình soạn thảo nhỏ kiểu này
      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ự
    • Mọi hệ điều hành tôi gặp đều có Nano
      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 đó
    • Lý do tôi dùng micro là vì có thể phát triển plugin tùy chỉnh mà không tốn nhiều công sức, và có thể triển khai dễ dàng chỉ bằng cách sao chép sang cả những hệ thống không có trình soạn thảo terminal tử tế
      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

    • Có thể tắt được: Ctrl+E rồi set autoindent off
      https://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á
    • Tôi từng gặp chuyện đó một lần khi dùng Wezterm trên Windows
      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