Tài liệu thuyết trình "Bứt phá năng suất với Neovim"
(docs.google.com)Video ghi hình: https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
Phụ lục: https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/
Vào ngày 2023-06-03 tại ExcelCon lần thứ 2, tôi đã có một bài thuyết trình với chủ đề "Bứt phá năng suất với Neovim", nay xin chia sẻ lại tại đây dù hơi muộn.
Tóm tắt nội dung thuyết trình
Chỉ riêng việc dùng Neovim đã giúp năng suất tăng lên như thế nào?
- Trước đây tôi phải luân phiên dùng VSCode, Notion, RoamResearch, GitKraken..., nhưng sau khi hợp nhất vào Neovim thì gánh nặng nhận thức không cần thiết đã giảm đi.
- Dù luân phiên sử dụng macOS và archilinux, tôi vẫn có thể duy trì một môi trường phát triển nhất quán ở mọi nơi (dotfiles).
- Tôi không còn phải lo lắng về hiệu năng thiết bị nữa.
- Trước đây: do phải mở nhiều ứng dụng như AndroidStudio, VSCode, RoamResearch... để làm việc nên hiện tượng thrashing xảy ra thường xuyên. Ngay cả việc gõ mã nguồn cũng mất nhiều thời gian / Sau đó: hoàn toàn không còn nghe cả tiếng quạt gió như máy bay cất cánh. Mức sử dụng bộ nhớ cũng rất thấp.
3 bước để nâng cao năng suất
- Cải thiện năng suất nên bắt đầu từ siêu nhận thức để phân tích xem mình đang lãng phí thời gian không cần thiết ở hành vi nào.
- Trước hết hãy làm quen với những công cụ mình sử dụng.
- Hãy xem mình đang lặp đi lặp lại công việc nào, rồi tìm cách tận dụng để giảm thời gian cho các tác vụ lặp lại đó. (vd. template, plugin, macro, snippet, …)
- Trong quá trình ở bước 2, hãy chọn ra những gì phù hợp với bản thân và biến chúng thành kỹ năng của mình.
Những nội dung không thể giải thích hết do giới hạn dung lượng đã được tôi tổng hợp thành phụ lục trên blog.
- Starter kit cho người mới bắt đầu với Neovim như AstroNvim, LazyNvim
- Plugin tree-sitter dành riêng cho Neovim
nvim-cmpcung cấp tính năng tự động hoàn thành
Tôi cũng đang vận hành cộng đồng Discord (vim.kr) dành cho những ai muốn sử dụng Vim thật tốt, mong mọi người quan tâm :)
11 bình luận
https://github.com/github/copilot.vim
Tôi đang dùng VS Code Copilot rất hiệu quả nên đã tìm thử, thì thấy cũng có plugin Copilot cho Neovim nữa. Tôi đã phân vân có nên thử không, nhưng chắc phải dùng thử Neovim một lần mới được.
Ở công ty đầu tiên tôi chuyển việc tới, mọi người phát triển bằng cách remote vào máy chủ Linux với vim + tmux.
Tôi rất ấn tượng vì trong môi trường này có thể pair programming từ xa được. (chỉnh sửa mã được phản ánh ngay lập tức, và cả terminal cũng được chia sẻ)
Chính nhờ dotfiles (.vimrc, .bashrc) trên máy chủ từ xa mà tôi bắt đầu thực sự nhập môn vim.
Tôi nhớ khi đó đã có sẵn mẫu nên có thể bắt đầu rất thoải mái, vì vậy tôi rất đồng cảm với câu chuyện về dotfile trong bài cười nhẹ
Tôi cũng đã chuyển từ NVIm sang vscode, nhưng đọc bài này lại khiến tôi muốn quay lại. haha
Thật vui khi được nói về trình soạn thảo văn bản. Cuối cùng, nếu chấp nhận rằng mọi việc đều là xử lý văn bản thì việc quan tâm đến môi trường làm việc với văn bản của mình cũng không còn là gánh nặng. Tôi bắt đầu dùng Emacs từ năm ngoái, và đúng là rồi có thể làm mọi thứ chỉ bằng bàn phím. Như bạn đã nói ở mục số 0, tôi đã giảm được rất nhiều thời gian không cần thiết. Chúc vim.kr ngày càng phát triển!!
Xin phép hỏi vì tôi không chắc có phải mình đã bỏ lỡ trong video hay không. Việc anh nói đã thay thế Notion bằng neovim có nghĩa là anh xây dựng một hệ thống wiki trong neovim rồi dùng nó, hay là có thư viện cho phép thao tác Notion từ neovim? Ý của câu hỏi là tôi muốn biết liệu Notion mà công ty đang dùng có thể thao tác được từ neovim hay không.
Tất nhiên là tôi không thao tác Notion hay làm kiểu như vậy.
Nếu Notion hỗ trợ API thì về mặt lý thuyết có thể thao tác từ neovim, nhưng cho đến giờ tôi vẫn chưa thấy ai thử như vậy.
Còn việc Notion mà công ty đang dùng có thể thao tác từ neovim hay không thì có vẻ sẽ liên quan đến vấn đề chính sách, nên khó mà khẳng định chắc chắn.
Notion có cung cấp API, nhưng trên thực tế tôi nghĩ ra khá nhiều ràng buộc nên việc triển khai đã bị dừng lại; tôi đã tự hỏi liệu có giải pháp nào hay không. Cảm ơn vì câu trả lời :D
Có thể nói là tôi đã xây dựng gần như một hệ thống wiki. Plugin tên là
telekasten.nvimđáp ứng hơn 100% yêu cầu của tôi và có hầu hết mọi tính năng cần thiết.Tính năng template cũng khá ổn. Chức năng quản lý tài liệu nội bộ cũng tốt.
Một trong những tính năng tôi thích là trực quan hóa đồ thị, và tôi đã tự tay làm nó bằng thư viện
force-graph.Tôi nghĩ có thể sẽ hữu ích để tham khảo nên xin để lại link mã nguồn liên quan.
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- Tạo dữ liệu đỉnh (tài liệu)/cạnh (liên kết nội bộ) cần cho trực quan hóa đồ thị
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- Trực quan hóa dựa trên
force-graphTôi cũng dùng neovim và như bước vào một thế giới mới. Vì vậy tôi đã ra sức rủ các lập trình viên xung quanh thử xem, nhưng chẳng ai chịu chuyển sang cả. Khi dùng neovim, tôi cũng hiểu kỹ hơn về những thứ cần thiết để xây dựng môi trường phát triển. Tôi còn không biết là có cả cộng đồng Vim ở Hàn Quốc nữa, tôi sẽ tìm đến thử xem, vui quá!
Tùy công ty tùy đội thôi... nhưng cũng bất ngờ là có khá nhiều người không hứng thú với việc thiết lập môi trường phát triển..
Muốn dùng Vim cho tốt thì có vẻ cuối cùng cũng phải dùng kèm zsh và tmux.
Khác với Emacs là may mà không cần để râu.