#navigation
#basics
#hjkl
Học cách di chuyển con trỏ trong tập tin mà không dùng chuột.
Hãy mô tả cách di chuyển con trỏ sang trái, phải, lên và xuống trong chế độ lệnh của vi sử dụng các phím tắt. Ngoài ra, hãy giải thích cách nhảy đến đầu và cuối của một dòng.
#editing
#insert
#modes
Cách thêm văn bản vào tập tin ở các vị trí khác nhau.
Giải thích sự khác biệt giữa các phím i, a, o và I, A, O trong vi khi chuyển từ chế độ lệnh sang chế độ chèn. Hãy cung cấp ví dụ về thời điểm nên sử dụng từng phím.
#deleting
#editing
#x
Các lệnh xóa dòng và ký tự hiệu quả.
Liệt kê các lệnh để xóa một ký tự, xóa một dòng, và xóa một từ trong vi. Cú pháp chung để kết hợp số lượng với lệnh xóa (ví dụ: xóa 5 dòng) là gì?
#file-management
#basics
#commands
Cách kết thúc phiên làm việc an toàn.
Cho biết chuỗi lệnh cần thiết để lưu tập tin và thoát, lưu tập tin mà không thoát, và thoát ra khỏi vi mà không lưu thay đổi. Giải thích vai trò của dấu hai chấm trong các lệnh này.
#macro
#automation
#formatting
Tạo macro để tự động hóa định dạng danh sách dữ liệu lộn xộn.
Bạn có một danh sách các dòng dữ liệu chứa họ tên và ngày sinh ngăn cách bởi dấu phẩy, nhưng định dạng không đều nhau. Hãy ghi một macro (ví dụ: vào thanh ghi q) để thực hiện các thao tác: xóa khoảng trắng thừa ở đầu dòng, chuyển đổi chữ cái đầu tiên của họ tên thành in hoa, và thay dấu phẩy thành dấu gạch ngang. Sau khi ghi, hãy chạy macro này cho tất cả các dòng còn lại trong tệp.
#regex
#search-replace
#substitution
Sử dụng biểu thức chính quy và nhóm bắt giữ để tái cấu trúc văn bản.
Trong đoạn mã code, có nhiều biến được gán giá trị theo định dạng 'variable_name = value'. Hãy sử dụng lệnh thay thế (substitute) với nhóm bắt giữ (capture groups) để đảo ngược thứ tự thành 'value = variable_name' cho tất cả các biến trong vùng chọn (visual selection).
#global-command
#pattern-matching
#deletion
Sử dụng lệnh :g để thao tác trên các dòng khớp mẫu phức tạp.
Tệp dữ liệu của bạn chứa nhiều dòng trống và các dòng chú thích bắt đầu bằng '//'. Hãy sử dụng lệnh global (:g) để xóa tất cả các dòng trống, sau đó tiếp tục sử dụng lệnh khác để di chuyển tất cả các dòng chú thích xuống cuối tệp mà không làm thay đổi thứ tự của các dòng code thực tế.
#triết lý
#giao diện
#chế độ
Phân tích sự phân tách giữa chế độ chèn và chế độ lệnh.
Giải thích lý thuyết đằng sau việc tách biệt giữa chế độ chèn (Insert mode) và chế độ lệnh (Command mode) trong Vi. Thảo luận về việc tại sao việc phân chia hành vi của phím bấm (nhập văn bản so với thao tác trên văn bản) lại được coi là một bước tiến trong thiết kế tương tác người-máy so với các trình soạn thảo mô-đun (modeless) truyền thống. Phân tích ưu điểm của việc giảm thiểu các tổ hợp phím phức tạp (như Ctrl hay Alt) thông qua việc sử dụng chế độ.
#lịch sử
#unix
#evolution
Từ dòng lệnh ex đến trình soạn thảo trực quan.
Vi sinh ra từ trình soạn thảo dòng lệnh 'ex'. Trình bày mối liên hệ lịch sử giữa các lệnh dòng lệnh của ex (như :s, :d, :m) và cách vận hành của Vi hiện tại. Tại sao khả năng chuyển đổi giữa chế độ dòng lệnh (Ex mode) và chế độ toàn màn hình lại quan trọng trong bối cảnh các hệ thống Unix thời kỳ đầu? Phân tích tầm quan trọng của việc duy trì khả năng chạy script qua dòng lệnh trong định nghĩa của một trình soạn thảo thực thụ.
#composability
#design
#efficiency
Nguyên lý xếp Lego trong các lệnh soạn thảo.
Một trong những điểm mạnh lý thuyết của Vi là tính 'kết hợp' (composability). Khảo sát cách các thành phần nhỏ (như các chuyển động/motions, các toán tử/operators) có thể được ghép lại với nhau để tạo ra hàng trăm hành động khác nhau mà không cần phải ghi nhớ hàng trăm phím tắt riêng biệt. So sánh mô hình này với mô hình 'đa năng hóa' các phím trong các trình soạn thảo hiện đại (như VS Code hoặc Sublime Text) và thảo luận về sự linh hoạt trong việc mở rộng chức năng.
#cognitive-load
#ux
#psychology
Gánh nặng nhận thức và lợi ích của phản xạ cơ bắp.
Nhiều người mới gặp khó khăn với việc phải nhớ mình đang ở chế độ nào. Phân tích khía cạnh tâm lý học của việc chuyển đổi ngữ cảnh (context switching) trong Vi. Tuy nhiên, khi đã quen, việc chuyển đổi chế độ giúp giảm tải nhận thức như thế nào? Thảo luận về việc người dùng không cần phải 'nhớ' các phím tắt phức tạp mà dựa vào 'phản xạ cơ bắp' dựa trên vị trí ngón tay và ngữ cảnh của văn bản.
#vi
#điều hướng
#cơ bản
Hướng dẫn các lệnh di chuyển con trỏ cơ bản để thao tác nhanh hơn.
Hãy cung cấp danh sách các phím tắt để di chuyển con trỏ trong trình soạn thảo vi. Cụ thể, làm thế nào để di chuyển lên, xuống, trái, phải, đi đến đầu dòng, cuối dòng, đầu file và cuối file. Giải thích ngắn gọn chức năng của từng phím.
#visual-block
#ascii-art
#drawing
Sử dụng chế độ Visual Block để vẽ một hình thoi hoàn chỉnh từ các ký tự văn bản.
Mở một tệp văn bản trống. Nhiệm vụ của bạn là vẽ một hình thoi kích thước 9x9 ô sử dụng các ký tự: dấu hoa thị (*) cho viền ngoài và dấu gạch chéo (/ hoặc \) nếu cần thiết. Hãy sử dụng khả năng sao chép và dán khối (Visual Block) của Vim để hoàn thành việc này nhanh nhất có thể thay vì gõ từng ký tự một cách thủ công.
#vi
#linux
#co-ban
#file
Hướng dẫn các bước khởi tạo, nhập liệu và lưu trữ tệp tin mới trong trình soạn thảo vi.
Hãy hướng dẫn tôi cách mở một tệp tin mới có tên 'baocao.txt' bằng trình soạn thảo vi. Sau đó, tôi muốn nhập vào dòng chữ 'Xin chào the gioi' và hướng dẫn chi tiết các lệnh để lưu nội dung này vào đĩa và thoát khỏi chương trình một cách an toàn.
#vi
#vim
#dieu-huong
#ban-phim
Tổng hợp các phím tắt để di chuyển nhanh trong văn bản mà không cần dùng chuột.
Tôi cần biết cách di chuyển con trỏ trong vi hiệu quả hơn. Hãy liệt kê các lệnh để nhảy đến đầu dòng, cuối dòng, đầu tệp tin và cuối tệp tin. Ngoài ra, hãy cho tôi biết cách di chuyển nhanh theo từng từ thay vì từng ký tự.