Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» Tuyệt Kỹ Đong Giai Chân Kinh (tuyệt Kỹ cua trai)
Thu Aug 23, 2012 5:38 am by Admin

» Tuyệt kỹ cua giai
Thu Aug 23, 2012 5:36 am by Admin

» NETCAT.........
Mon Aug 13, 2012 6:35 am by Admin

» Bảo mật CSDL bằng phương pháp mã hóa.
Tue Apr 17, 2012 10:04 pm by Admin

» Hàm mã hóa MD5 bằng JavaScript
Tue Apr 17, 2012 10:03 pm by Admin

» Giá của món quà
Fri Apr 13, 2012 6:01 am by Admin

» Sẽ chỉ yêu ai?
Fri Apr 13, 2012 6:01 am by Admin

» Cách đọc bảng chữ cái!
Thu Apr 12, 2012 10:37 pm by Admin

» Gắn trojan, keylog, virus vào website, forum
Tue Apr 10, 2012 1:14 am by Admin

Shopmotion


Affiliates
free forum


Sử dụng trình soạn thảo đơn giản Vi (vim) trong linux

View previous topic View next topic Go down

Sử dụng trình soạn thảo đơn giản Vi (vim) trong linux

Post  Admin on Sun Apr 17, 2011 10:23 am

Linux là một hệ điều hành được điều khiển đa phần qua môi trường dòng lệnh ( console ), thêm vào đó, các file cấu hình dịch vụ trên Linux thường được chỉnh sửa bởi trình editor là vi ( hay vim, bản cải thiện của vi ). Nếu bạn là người thường xuyên quản trị server linux qua console, thì vi là trình tiện ích hay sử dụng nhất. Do vậy, học cách sử dụng vi là một yêu cầu tối thiểu và cần thiết cho một người sử dụng linux.

1. Cơ bản

- Sử dụng vi kèm theo tên file(s) muốn edit: vi one.txt two.txt etc.txt
- Có 2 mode: command mode và insert mode. Khi bắt đầu sử dụng lệnh vi, vi mặc định ở command mode. Hoặc ấn Esc để chuyển sang command mode khi người dùng đang ở insert mode.

2. Các lệnh edit cơ bản

- Ấn phím lệnh i hoặc a từ chế độ command mode để chuyển sang insert mode. i để thêm ký tự trước con trỏ, a để thêm ký tự sau con trỏ.
- Sử dụng lệnh h j k l hoặc các phím mũi tên tương ứng để di chuyển con trỏ sang trái, xuống, lên, sang phải.
- Sử dụng x xóa 1 ký tự, dw xóa 1 từ, dd xóa cả 1 dòng.
- Sử dụng số N đi trước phím lệnh để lặp lại N lần tác dụng của lệnh. Ví dụ, 3dw sẽ xóa 3 từ tính từ vị trí con trỏ.
- Sử dụng u ( = undo )để khôi phục lại những thay đổi trước đó.
- Sử dụng ZZ hay hay :wq lưu lại tất cả thay đổi và thoát.
- Sử dụng :q! thoát ra không lưu lại bất kỳ thay đổi nào.

3. Cắt và dán

- yy sao chép dòng hiện tại vào buffer, Nyy sao chép N dòng.
- p ( P ) dán nội dung từ buffer vào dưới ( trên ) dòng hiện tại

4. Nhảy đến hàng hay cột

- Gõ một số N trước ký tự G để đi đến dòng thứ N, vd 23G sẽ nhảy đến dòng 23.
- Gõ một số N trước ký tự | (pipe) để nhảy đến cột thứ N.

5. Sử dụng . để lặp lại action gần nhất. Ví dụ người dùng gõ i để insert dòng chữ “hello world”, sau đó chuyển sang chế độ command mode bằng phím Esc, nhảy xuống dòng và gõ . , dòng chữ “hello world” sẽ hiện ra.

6. Tìm kiếm

- Sử dụng / (?) đi theo sau là từ muốn tìm để tìm kiếm từ trong phần văn bản sau ( trước ) con trỏ. ví dụ /foobar hay ?foobar.
- Sau khi kết quả tìm kiếm đầu tiên hiện ra, sử dụng n để tìm kiếm tiếp trong phần văn bản còn lại sau con trỏ, N để tìm kiếm ngược trở lại đầu văn bản trước con trỏ.

7. Các lệnh colon ( đi sau dấu : )

- :%s/foo/bar/g tìm sự xuất hiện của “foo” trong toàn bộ file và thay thế bằng “bar”, /foo/bar/g chỉ thay thế ở dòng hiện tại.
- et nu hiển thị số dòng trước mỗi dòng, et nonu để bỏ hiển thị số dòng.
- :1,8d xóa từ dòng 1 cho đến dòng 8 trong file.
- Sử dụng ma để đánh dấu dòng hiện tại là a ( có thể là bất cứ ký tự nào từ a-z ). Sau đó dùng ‘a để nhảy đến dòng đã được dánh dấu là a từ bất cứ đâu. Có thể sử dụng với colon, :’a,’b d xóa tất cả các dòng bắt đầu từ dòng được đánh dấu là a cho đến dòng được đánh dấu là b, hoặc ngược lại.
- :w newfile.txt để save nội dung của file hiện tại vào một file mới là newfile.txt ( tựa “save as” bên Win Word ).
- :8,16 co 32 để copy dòng 8 đến 16 đến điểm sau dòng 32.
- :3,16 m 32 để chuyển rời dòng 8 đến 16 đến điểm sau dòng 32.
- Nếu dùng vi để mở nhiều file ( vi file1 file2 file3 ), có thể sử dụng :n để nhảy đến file tiếp theo và :rew để nhảy quay ngược lại đến file đầu tiên, :args để hiện thị tất cả các file đang được mở.

8. Vi for Smarties

- Sử dụng G để nhảy đến dòng cuối cùng của file.
- Khi xóa nhiều dòng, di chuyển con chuột đến dòng đầu tiên, gõ ma để đánh dấu, sau di đến dòng cuối cùng và gõ d’a để xóa những dòng đó.
- $ để nhảy xuống cuối dòng, :$ để nhảy đến dòng cuối của file.
- 0 để nhảy đến đầu dòng, :0 để nhảy tới dòng đầu tiên của file.
- d$ xóa từ vị trí con trỏ hiện tại đến cuối dòng.
- :10,$ d xóa từ dòng 10 cho đến dòng cuối cùng của file, hoặc ngược lại.
- :10,20 m 0 chuyển rời dòng 10 đến 20 lên trên dòng đầu tiên của file.

9. Shell

- Sử dụng :!command để thi hành lệnh command trong môi trường vi.

Trên đây là giới thiệu cách sử dụng vi một cách cơ bản và đủ dùng cho mọi đối tượng người sử dụng linux. Người dùng muốn tham khảo thêm có thể lên website của vim tại http://www.vim.org/.

Admin
Admin

Tổng số bài gửi : 782
Join date : 2009-08-15

View user profile http://hackis.forumotion.com

Back to top Go down

Re: Sử dụng trình soạn thảo đơn giản Vi (vim) trong linux

Post  Admin on Sun Apr 17, 2011 10:26 am

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 khách phải đăng kí mới xem được bài viết / link !!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


Admin
Admin

Tổng số bài gửi : 782
Join date : 2009-08-15

View user profile http://hackis.forumotion.com

Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum