#editing
#insert-mode
#text
Luyện tập chuyển đổi chế độ và nhập liệu vào tệp tin.
Mở một tệp tin mới tên là 'ghi_chu.txt'. Chuyển sang chế độ chèn và nhập dòng chữ 'Học lệnh vi rất thú vị'. Sau đó, quay lại chế độ lệnh, di chuyển con trỏ đến từ 'thú vị' và sửa thành 'hữu ích'. Lưu tệp và thoát.
#saving
#quitting
#basics
Kiểm soát các cách thức lưu thay đổi và đóng trình soạn thảo vi.
Mở một tệp cấu hình hệ thống có quyền đọc-only (ví dụ /etc/hosts). Thử thực hiện lệnh để lưu tệp và nhận thông báo lỗi (read-only). Sau đó, mở một tệp tin thông thường, thêm một dòng trống mới và thực hiện lệnh lưu thay đổi rồi thoát ngay lập tức (ZZ).
#deleting
#editing
#shortcuts
Sử dụng các phím tắt để xóa văn bản nhanh chóng.
Trong tệp đang mở, hãy xóa 3 dòng tính từ dòng con trỏ đang đứng. Tiếp theo, di chuyển vào giữa một đoạn văn và xóa 5 từ bắt đầu từ vị trí con trỏ. Cuối cùng, xóa nội dung từ vị trí con trỏ đến cuối dòng.
#copy-paste
#yank
#put
Thực hiện thao tác yank (sao chép) và put (dán) để nhân bản nội dung.
Đánh dấu (yank) dòng thứ 2 của tệp tin. Di chuyển con trỏ đến dòng cuối cùng của tệp và dán nội dung đã sao chép xuống dưới 2 lần. Sau đó, sao chép một từ bất kỳ và dán nó vào cuối dòng hiện tại.
#search
#replace
#regex
Tìm một chuỗi ký tự và thay thế nó bằng chuỗi khác trong vi.
Tìm kiếm từ 'error' trong toàn bộ tệp tin. Sau khi tìm thấy, hãy thực hiện lệnh thay thế toàn cục để đổi tất cả các từ 'error' thành 'warning'. Cuối cùng, tìm kiếm ngược lại chuỗi 'warning' gần nhất.
#undo
#redo
#history
Quản lý lịch sử chỉnh sửa bằng undo và redo.
Thực hiện 3 thay đổi khác nhau (ví dụ: xóa một dòng, sửa một từ, thêm một dòng). Hãy sử dụng lệnh undo để hoàn tác 2 lần. Sau đó, sử dụng lệnh redo để khôi phục lại thao tác vừa hoàn tác gần nhất.
#visual-mode
#selection
#editing
Chọn khối văn bản để thực hiện thao tác chỉnh sửa phức tạp hơn.
Chuyển sang chế độ Visual Character. Bôi đen (chọn) một đoạn văn bản cụ thể gồm 3 dòng và 10 ký tự đầu dòng. Sau khi chọn, xóa toàn bộ khối văn bản này. Tiếp theo, vào chế độ Visual Line để chọn 5 dòng và chèn một ký tự '#' vào đầu mỗi dòng đã chọn.
#triết lý
#giao diện
#hiệu suất
Giải thích lý thuyết về việc tách biệt chế độ chuyển động và chế độ soạn thảo trong soạn thảo văn bản.
So sánh mô hình 'mode-less' của các trình soạn thảo hiện đại với mô hình 'modal' của Vi. Phân tích lý do tại sao việc không dùng chuột và các phím tắt độc lập theo ngữ cảnh lại giúp giảm thiểu sự mệt mỏi của cổ tay (RSI) và tăng tốc độ gõ phím cho người dùng chuyên nghiệp. Hãy thảo luận về khái niệm 'việc thao tác tùy thuộc vào ngữ cảnh'.
#lịch sử
#tiến hóa
#phần mềm
Tổng quan về lịch sử phát triển và sự phân nhánh của dòng họ trình soạn thảo Vi.
Mô tả nguồn gốc của Vi từ Bill Joy tại UC Berkeley và sự ra đời của Vim (Vi IMproved) bởi Bram Moolenaar. Phân tích các lý do kỹ thuật và cộng đồng dẫn đến sự phân tách thành dự án Neovim. Nhấn mạnh sự khác biệt trong quản lý mã nguồn và mục tiêu phát triển giữa các phiên bản kế thừa này.
#thuat-toan
#do-phuc-tap
#khoa-hoc-may-tinh
Yêu cầu giải thích chi tiết về ký hiệu Big O trong phân tích thuật toán và các mức độ phức tạp phổ biến.
Hãy giải thích khái niệm ký hiệu Big O trong khoa học máy tính. Cụ thể, hãy so sánh sự khác biệt giữa O(1), O(n), và O(log n), cung cấp ví dụ minh họa cho từng trường hợp và lý do tại sao việc phân tích độ phức tạp thời gian này lại quan trọng đối với việc tối ưu hóa mã nguồn.
#toan-hoc
#thuat-toan
#ly-thuyet-tinh-toan
Thảo luận về mối quan hệ giữa các bài toán loại P và NP và ý nghĩa của chúng.
Thảo luận về sự khác biệt cơ bản giữa các bài toán loại P (thời gian đa thức) và NP (thời gian đa thức phi xác định). Hãy giải thích tại sao câu hỏi liệu P có bằng NP lại được coi là một trong những vấn đề quan trọng nhất trong khoa học máy tính và toán học hiện nay.
#lap-trinh-huong-doi-tuong
#kien-truc-phan-mem
#oop
Yêu cầu mô tả năm nguyên lý SOLID trong thiết kế hướng đối tượng và vai trò của chúng.
Giải thích chi tiết năm nguyên lý thiết kế phần mềm hướng đối tượng (SOLID). Đối với từng nguyên lý, hãy cung cấp một ví dụ cụ thể về việc vi phạm nguyên lý đó dẫn đến mã nguồn khó bảo trì như thế nào, và cách refactor để tuân thủ đúng.
#navigation
#hjk
#di-chuyen
Hướng dẫn các phím tắt để di chuyển trong file văn bản.
Hãy giải thích cách di chuyển con trỏ trong trình soạn thảo vi mà không sử dụng chuột hoặc phím mũi tên. Cụ thể, hãy mô tả chức năng của các phím h, j, k, l, và cách di chuyển đến từ tiếp theo hoặc trước đó bằng phím w và b.
#deleting
#editing
#xoa
Các lệnh xóa ký tự, từ và dòng trong vi.
Hãy liệt kê và mô tả cách sử dụng các lệnh xóa trong vi. Giải thích cách xóa một ký tự tại vị trí con trỏ (x), xóa một dòng (dd), và xóa một từ (dw). Cách để xóa 5 dòng liên tiếp là gì?
#saving
#exiting
#luu
#thoat
Cách kết thúc phiên làm việc và lưu thay đổi.
Hãy cung cấp các lệnh dòng lệnh chế độ cuối (ex mode) để thực hiện các thao tác sau: lưu file và tiếp tục làm việc, thoát khỏi vi mà không lưu thay đổi, và lưu file rồi thoát ngay lập tức.