Home / Lập Trình / Trình soạn thảo vi trong linux

Trình soạn thảo vi trong linux

Trình soạn thảo vi trong linux

Linux có nhiều chương trình cho phép soạn thảo văn bản như: vi, emacs, joe, pico, ed, nano, … Chương trình soạn thảo văn bảnvi, theo chuẩn POSIX, có mặt hầu hết trên các hệ điều hành Linux.

I. Khởi động vi – Các chế độ trong vi
Khởi động vi, thường với tên tập tin cần soạn thảo:
vi filename
filename là tập tin mới hoặc tập tin có sẵn.
Có thể mở nhiều tập tin cùng lúc: vi filename1 filename2 tập tin đầu tiên sẽ trong cửa sổ soạn thảo, chuyển sang tập tin sau bằng lệnh :nextvà chuyển sang tập tin trước bằng lệnh rev.
Khi bắt đầu vào vi, chương trình được đặt ở chế độ lệnh (command mode), nghĩa là vi sẽ xử lý mọi động tác gõ phím như các lệnhsoạn thảo, mà không xem là văn bản nhập vào tập tin. Để thêm văn bản vào tập tin, bạn phải chuyển vi sang chế độ chèn (insert mode) bằng một trong các lệnh sau:

Nối thêm vào sau con trỏ a

Nối thêm vào phần cuối dòng A

Bắt đầu thay đổi c

Xóa từ vị trí con trỏ đến cuối dòng hiện hành C

Chèn trước con trỏ i

Chèn ở đầu dòng I

Chèn một dòng dưới dòng hiện hành o

Chèn một dòng trên dòng hiện hành O
Không lệnh nào trong chế độ chèn này xuất hiện trên màn hình, nhưng bất cứ phím gì gõ kế tiếp đều là văn bản nhập.
Nói chung chỉ dùng chế độ chèn khi thêm văn bản vào tập tin, và chế độ lệnh cho mọi việc khác (di chuyển quanh tập tin, xóa văn bản, …). Cần xác định ta đang ở chế độ nào: chế độ chèn có — INSERT — ở đáy màn hình, nhấn phím Esc để vào chế độ lệnh khi cần.
Các lệnh trong chế độ lệnh không hiển thị khi nhập, ngoại trừ một số lệnh ở chế độ dòng lệnh, hiển thị lệnh nhập ở đáy màn hình.

II. Ghi tên tập tin rồi thoát khỏi vi
Mọi soạn thảo trong vi tuy hiển thị trên terminal nhưng chỉ nằm trên bộ đệm. Cần phải ghi văn bản từ bộ đệm vào tập tin để lưu trữ lại. Trở về chế độ lệnh bằng phím Esc rồi dùng các lệnh sau:

Ghi văn bản từ bộ đệm xuống tập tin chỉ định khi khởi động vi :w

Ghi đè không cần cảnh báo :w!

Ghi văn bản xuống tập tin filename :w filename

Thoát khỏi vi :q

Kết hợp ghi văn bản xuống tập tin và thoát khỏi vi :wq

Thoát khỏi vi mà không có bất kỳ sửa đổi nào :q!

III. Di chuyển con trỏ
Khi soạn thảo tập tin, thường phải dời con trỏ chạy quanh tập tin. Dùng các phím mũi tên để di chuyển, Cũng có thể dùng các phím sau để thực hiện trong chế độ lệnh.

Di chuyển theo hướng mũi tên (chế độ chèn)

Di chuyển lần lượt sang trái (h), xuống dưới (j) , lên trên (k), bên phải (l) h,j,k,l

Về trước về sau theo từng từ w,W,b,B:

Đầu câu hiện thời hay câu tiếp theo ),(

Đầu đoạn hiện thời hay đoạn tiếp theo },{

Về đầu hoặc cuối dòng, có thể dùng phím Home hoặc End 0, $

+ Di chuyển theo trang màn hình

Cuộn lên trước một trang màn hình Ctrl F

Cuộn về sau một trang màn hình Ctrl B

Cuộn lên trước 1/2 trang màn hình Ctrl D

Cuộn về sau 1/2 trang màn hình Ctrl U

Hiện thêm một dòng cuối màn hình Ctrl E

Hiện thêm một dòng đỉnh màn hình Ctrl Y

n dòng sau dòng đầu tiên nH

n dòng trước dòng cuối cùng nL

+ Nhảy khắp tập tin, thực hiện trong chế độ lệnh, không hiển thị ra màn hình

Đến (go) ngay dòng thứ n nG

Nhảy đến dòng thứ n, mặc định là dòng đầu tiên
n+
Nhảy tới n dòng
n-
Nhảy lui n dòng
nH
n dòng sau dòng đầu tiên
nL
n dòng trước dòng cuối cùng
Có thể đánh số hiệu dòng để dễ quan sát hơn, thực hiện trong chế độ lệnh:
:set nu
Hiển thị số hiệu dòng
:set nonu
Xóa số hiệu dòng

IV. Tìm kiếm trong văn bản
vi có thể định vị các từ hay nhóm ký tự cụ thể ở bất kỳ nơi nào trong tập tin, tính năng này tiện lợi khi sửa lỗi chính tả. Các lệnh này chỉ làm việc trong chế độ lệnh:
/word
Tìm word từ con trỏ đến cuối tập tin
?word
Tìm word từ con trỏ ngược đến đầu tập tin
Chuỗi được tìm kiếm trong lệnh / hay ? có thể là một biểu thức.

V. Sao chép và di chuyển văn bản
vi có nhiều bộ đệm (36):
– Bộ đệm vô danh (unmaed buffer): dùng lưu trữ thao tác cần cho lệnh Undo.
– Bộ đệm định danh (named buffer): “a đến “z
– Bộ đệm định số (numbered buffer): “1 đến “9
Để sao chép văn bản phải thực hiện thông qua bộ đệm bằng các lệnh sau:
“anyy
Bứng (yank) n dòng kể từ con trỏ vào bộ đệm “a
“ap
Đặt (put) bản sao nội dung bộ đệm “a vào bộ đệm làm việc

VI. Thay thế và xóa văn bản
cw
Thay đổi từ
cc
Thay đổi dòng
C
Thay đổi văn bản từ vị trí hiện thời tới cuối dòng
:%s/w1/w2/g
Thay thế (substitution) w1 toàn bộ (global) thành w2
Ai cũng mắc lỗi khi soạn thảo, vì vậy vi cung cấp các phương tiện hiệu chỉnh sai sót. Các lệnh này chỉ làm việc trong chế độ lệnh:
x
Xóa một ký tự
dd
Xóa dòng hiện thời
ndd
Xóa n dòng từ con trỏ trở xuống
D
Xóa phần còn lại của dòng
dw
Xóa một từ
d}
Xóa đến đoạn tiếp theo
d^
Xóa từ con trỏ đến đầu dòng
dL
Xóa tới dòng cuối cùng trên màn hình
dG
Xóa tới dòng cuối file
Rtext
Thay thế (overwrite) bắt đầu tại vị trí con trỏ với text
u
Undo, khôi phục lại sửa đổi vừa thực hiện trên dòng hiện hành
Ctrl R
Redo, ngược với một Undo
U
Khôi phục lại dòng hiện hành (nếu đã thực hiện nhiều sửa đổi và chưa rời khỏi dòng)

:q!
Thoát mà không lưu các thay đổi

Print Friendly

About dongpolice

Check Also

cài đặt ffmeg

Cài đặt FFmpeg + FFmpeg-PHP +Lame + Ruby + Mplayer + Mencoder + flv2tool

Cài đặt FFmpeg + FFmpeg-PHP +Lame + Ruby + Mplayer + Mencoder + flv2tool Để …