#macro
#registers
#formatting
Sử dụng thanh ghi q để ghi lại một loạt thao tác phức tạp và áp dụng cho nhiều dòng.
Hãy tưởng tượng bạn có một danh sách các tên tệp tin nhưng thiếu phần mở rộng .txt ở cuối mỗi dòng. Nhiệm vụ của bạn là ghi một macro vào thanh ghi 'a' để tự động thêm .txt vào cuối dòng hiện tại, sau đó di chuyển xuống dòng đầu tiên của dòng tiếp theo. Sau khi hoàn tất việc ghi, hãy chạy macro đó cho 10 dòng tiếp theo trong tệp tin. Hãy đảm bảo bạn sử dụng lệnh chuyển đổi mode chính xác và không dùng chuột.
#ex-mode
#regex
#global-command
Áp dụng lệnh Ex command cho tất cả các dòng khớp với một mẫu regex phức tạp.
Tệp tin của bạn chứa nhiều dòng có từ 'TODO' ở đầu dòng. Bạn cần thực hiện một tác vụ thao tác văn bản trên tất cả các dòng này mà không cần di chuyển con trỏ đến từng dòng. Hãy sử dụng lệnh :g (global) kết hợp với regular expression để tìm tất cả các dòng bắt đầu bằng 'TODO' và xóa toàn bộ nội dung của dòng đó (hoặc thay thế bằng chuỗi rỗng). Câu lệnh cần được viết gọn gàng trong một dòng lệnh duy nhất.
#visual-block
#column-editing
#insertion
Sử dụng chế độ Visual Block để chèn hoặc sửa đổi text ở cùng một vị trí trên nhiều dòng.
Bạn có một đoạn mã hoặc danh sách dữ liệu gồm 20 dòng. Nhiệm vụ là thêm một dấu gạch chéo xuôi (//) vào đầu tất cả 20 dòng này để comment chúng lại, nhưng chỉ dùng một thao tác duy nhất. Hãy kích hoạt chế độ Visual Block, chọn 20 dòng, di chuyển con trỏ đến vị trí cột đầu tiên, chuyển sang chế độ Insert, nhập dấu // và thoát ra để áp dụng thay đổi cho tất cả các dòng đã chọn.
#substitute
#regex
#refactoring
Sử dụng tìm kiếm thay thế với các nhóm bắt giữ (capture groups) để định dạng lại biến số.
Trong tệp tin hiện tại, có các biến số được viết theo kiểu camelCase (ví dụ: myVariableName). Hãy viết một lệnh thay thế (:) sử dụng magic regex để chuyển đổi tất cả chúng sang snake_case (ví dụ: my_variable_name). Bạn cần sử dụng các nhóm bắt giữ để xác định các chữ cái viết hoa và thêm dấu gạch dưới trước chúng, sau đó chuyển đổi chúng thành chữ thường. Lệnh này phải áp dụng cho toàn bộ tệp tin (%).
#splits
#windows
#buffers
Thao tác với nhiều cửa sổ (windows) và bộ đệm (buffers) hiệu quả mà không rời khỏi bàn phím.
Mở 3 tệp tin khác nhau cùng một lúc. Chia màn hình thành 3 cửa sổ ngang nhau. Di chuyển con trỏ sang cửa sổ ở giữa và thực hiện thay đổi kích thước (resize) cửa sổ này cao gấp đôi so với hai cửa sổ còn lại. Sau đó, mở một tệp tin thứ tư và hiển thị nó trong một cửa sổ chia dọc bên phải. Cuối cùng, hãy đóng cửa sổ bên trái mà không đóng các cửa sổ khác.
#vi
#linux
#co-ban
#luu-tiep
Hướng dẫn quy trình cơ bản để tạo tệp, nhập nội dung và lưu lại trong vi.
Bạn đang ở trong dòng lệnh terminal. Hãy sử dụng trình soạn thảo vi để tạo một tệp mới tên là 'ghichu.txt'. Sau khi vào trình soạn thảo, hãy nhập vào đoạn văn bản sau: 'Học vi ngày nay để làm việc hiệu quả hơn sau này.'. Sau khi hoàn tất, hãy lưu nội dung vào tệp và thoát khỏi chương trình. Mô tả từng bước và các phím tắt bạn đã sử dụng.
#vi
#di-chuyen
#phim-tat
Thực hành các lệnh di chuyển con trỏ không dùng các phím mũi tên.
Giả sử bạn đang ở chế độ Command trong vi và con trỏ đang nằm ở giữa tệp văn bản. Hãy liệt kê các phím tắt để thực hiện các thao tác di chuyển sau: (1) Di chuyển xuống dưới 5 dòng. (2) Nhảy đến đầu dòng hiện tại. (3) Nhảy đến cuối dòng hiện tại. (4) Nhảy đến từ tiếp theo về phía trước. (5) Quay lại đầu tệp tin.
#khoa học viễn tưởng
#thế giới giả tưởng
#mô tả
Hãy tưởng tượng và mô tả một thành phố nổi lơ lửng giữa bầu trời.
Viết một câu chuyện ngắn chi tiết về một thành phố cổ kính được xây dựng hoàn toàn trên những đám mây khổng lồ. Mô tả cách người dân di chuyển, nguồn nước và thức ăn của họ, và cảm giác khi nhìn xuống mặt đất ở độ cao nghìn dặm.
#navigation
#basic
#keyboard
Hướng dẫn sử dụng các phím mũi tên và phím tắt để di chuyển trong chế độ Normal.
Hãy viết hướng dẫn chi tiết về cách di chuyển con trỏ trong chế độ Normal của trình soạn thảo vi. Bao gồm các phím `h`, `j`, `k`, `l`, `w` (đi tới từ tiếp theo), `b` (quay lại từ trước), và `^` (về đầu dòng), `$` (về cuối dòng). Giải thích tại sao người dùng nên học các phím này thay vì dùng phím mũi tên.
#editing
#insert
#modification
Cách chuyển sang chế độ Insert và thay thế ký tự chính xác.
Giải thích sự khác biệt giữa các lệnh `i` (chèn tại vị trí con trỏ), `a` (chèn sau vị trí con trỏ), `o` (thêm dòng mới bên dưới), `O` (thêm dòng mới bên trên), và `r` (thay thế một ký tự duy nhất). Cung cấp ví dụ minh họa cho từng trường hợp sử dụng.
#deleting
#editing
#text-objects
Các lệnh xóa từ ký tự đơn đến cả đoạn văn bản.
Mô tả cách sử dụng lệnh `x` để xóa một ký tự, `dw` để xóa một từ, và `dd` để xóa cả dòng. Hãy giải thích thêm về cách xóa nhiều dòng bằng cách thêm số đằng trước lệnh (ví dụ: `3dd` xóa 3 dòng) và cách xóa từ con trỏ đến cuối dòng bằng lệnh `D`.
#copy
#paste
#yank
#put
Sử dụng các lệnh yank và put để quản lý đoạn văn bản.
Viết hướng dẫn về cách sao chép (yank) và dán (put) văn bản trong vi. Bao gồm các lệnh `yy` hoặc `Y` để sao chép dòng hiện tại, `yw` để sao chép một từ, và `p` (dán sau con trỏ), `P` (dán trước con trỏ). Hãy làm rõ cách dán nhiều lần cùng một đoạn văn bản vừa sao chép.
#undo
#redo
#history
Cách sử dụng undo và redo để khôi phục trạng thái văn bản.
Hãy giải thích cách sử dụng lệnh `u` để hoàn tác (undo) hành động vừa thực hiện và lệnh `Ctrl+r` để làm lại (redo) hành động đã hoàn tác. Cung cấp ví dụ cụ thể về việc xóa sai một đoạn văn bản và sử dụng các lệnh này để khôi phục lại.
#search
#replace
#regex
#substitution
Tìm từ khóa và thay thế nội dung trong toàn bộ file.
Hướng dẫn cách tìm kiếm một chuỗi ký tự trong vi sử dụng `/từ_khóa` (tìm xuôi) và `?từ_khóa` (tìm ngược). Sau đó, giải thích cú pháp để thay thế lần xuất hiện đầu tiên của từ 'old' bằng 'new': `:s/old/new/` và thay thế toàn bộ file: `:%s/old/new/g`.
#gioi-thieu
#ban-than
#co-ban
Viết đoạn văn ngắn giới thiệu về tên, tuổi và sở thích của bạn.
Hãy viết một đoạn văn ngắn khoảng 3 đến 5 câu để giới thiệu về bản thân. Trong đoạn văn, bạn cần bao gồm tên của bạn, tuổi, công việc hiện tại và một sở thích mà bạn yêu thích nhất.