1===============================================================================
2=    Xin chào mừng bạn đến với Hướng dẫn dùng Vim    -    Phiên bản 1.5      =
3===============================================================================
4	Vim là một trình soạn thảo rất mạnh. Vim có rất nhiều câu lệnh,
5	chính vì thế không thể trình bày hết được trong cuốn hướng dẫn này.
6	Cuốn hướng dẫn chỉ đưa ra những câu lệnh để giúp bạn sử dụng Vim
7	được dễ dàng hơn. Đây cũng chính là mục đich của sách
8
9	Cần khoảng 25-30 phút để hoàn thành bài học, phụ thuộc vào thời
10	gian thực hành.
11
12	Các câu lệnh trong bài học sẽ thay đổi văn bản này. Vì thế hãy tạo
13	một bản sao của tập tin này để thực hành (nếu bạn dùng "vimtutor"
14	thì đây đã là bản sao).
15
16	Hãy nhớ rằng hướng dẫn này viết với nguyên tắc "học đi đôi với hành".
17	Có nghĩa là bạn cần chạy các câu lệnh để học chúng. Nếu chỉ đọc, bạn
18	sẽ quên các câu lệnh!
19
20	Bây giờ, cần chắc chắn là phím Shift KHÔNG bị nhấn và hãy nhấn phím
21	j đủ số lần cần thiết (di chuyển con trỏ) để Bài 1.1 hiện ra đầy đủ
22	trên màn hình.
23~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24			Bài 1.1:  DI CHUYỂN CON TRỎ
25
26
27   ** Để di chuyển con trỏ, nhấn các phím h,j,k,l như đã chỉ ra. **
28	     ^
29	     k		    Gợi ý:  phím h ở phía trái và di chuyển sang trái.
30	< h	l >		   phím l ở bên phải và di chuyển sang phải.
31	     j			   phím j trong như một mũi tên chỉ xuống
32	     v
33  1. Di chuyển con trỏ quanh màn hình cho đến khi bạn quen dùng.
34
35  2. Nhấn và giữ phím (j) cho đến khi nó lặp lại.
36---> Bây giờ bạn biết cách chuyển tới bài học thứ hai.
37
38  3. Sử dụng phím di chuyển xuống bài 1.2.
39
40Chú ý: Nếu bạn không chắc chắn về những gì đã gõ, hãy nhấn <ESC> để chuyển vào
41	 chế độ Câu lệnh, rồi gõ lại những câu lệnh mình muốn.
42
43Chú ý: Các phím mũi tên cũng làm việc. Nhưng một khi sử dụng thành thạo hjkl,
44	 bạn sẽ di chuyển con trỏ nhanh hơn so với các phím mũi tên.
45
46~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47		     Bài 1.2: VÀO VÀ THOÁT VIM
48
49
50  !! CHÚ Ý: Trước khi thực hiện bất kỳ lệnh nào, xin hãy đọc cả bài học này!!
51
52  1. Nhấn phím <ESC> (để chắc chắn là bạn đang ở chế độ Câu lệnh).
53
54  2. Gõ:			:q! <ENTER>.
55
56---> Lệnh này sẽ thoát trình soạn thảo mà KHÔNG ghi nhớ bất kỳ thay đổi nào mà bạn đã làm.
57     Nếu bạn muốn ghi nhớ những thay đổi đó và thoát thì hãy gõ:
58				:wq  <ENTER>
59
60  3. Khi thấy dấu nhắc shell, hãy gõ câu lệnh đã đưa bạn tới hướng dẫn này. Có
61	 thể là lệnh:	vimtutor vi <ENTER>
62     Thông thường bạn dùng:	vim tutor.vi<ENTER>
63
64---> 'vim' là trình soạn thảo vim, 'tutor.vi' là tập tin bạn muốn soạn thảo.
65
66  4. Nếu bạn đã nhớ và nắm chắc những câu lệnh trên, hãy thực hiện các bước từ
67	 1 tới 3 để thoát và quay vào trình soạn thảo. Sau đó di chuyển con trỏ
68	 tới Bài 1.3.
69~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70		     Bài 1.3: SOẠN THẢO VĂN BẢN - XÓA
71
72
73** Trong chế độ Câu lệnh nhấn	x  để xóa ký tự nằm dưới con trỏ. **
74
75  1. Di chuyển con trỏ tới dòng có dấu --->.
76
77  2. Để sửa lỗi, di chuyển con trỏ để nó nằm trên ký tự sẽ bị
78	 xóa.
79
80  3. Nhấn phím	x  để xóa ký tự không mong muốn.
81
82  4. Lặp lại các bước từ 2 tới 4 để sửa lại câu.
83
84---> Emm xiinh em đứnng chỗ nào cũnkg xinh.
85
86  5. Câu trên đã sửa xong, hãy chuyển tới Bài 1.4.
87
88Chú ý: Khi học theo cuốn hướng dẫn này đừng cố nhớ, mà học từ thực hành.
89
90
91
92~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93		     Bài 1.4: SOẠN THẢO VĂN BẢN - CHÈN
94
95
96	 ** Trong chế độ Câu lệnh nhấn  i  để chèn văn bản. **
97
98  1. Di chuyển con trỏ tới dòng có dấu ---> đầu tiên.
99
100  2. Để dòng thứ nhất giống hệt với dòng thứ hai, di chuyển con trỏ lên ký tự
101	 đầu tiên NGAY SAU chỗ muốn chèn văn bản.
102
103  3. Nhấn	i	và gõ văn bản cần thêm.
104
105  4. Sau mỗi lần chèn từ còn thiếu nhấn <ESC> để trở lại chế dộ Câu lệnh.
106     Lặp lại các bước từ 2 tới 4 để sửa câu này.
107
108---> Mot lam chang nen , ba cay chum lai hon cao.
109---> Mot cay lam chang nen non, ba cay chum lai nen hon nui cao.
110
111  5. Sau khi thấy quen với việc chèn văn bản hãy chuyển tới phần tổng kết
112	 ở dưới.
113
114
115~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116			       TỔNG KẾT BÀI 1
117
118
119  1. Con trỏ được di chuyển bởi các phím mũi tên hoặc các phím hjkl.
120	 h (trái)	j (xuống)       k (lên)	    l (phải)
121
122  2. Để vào Vim (từ dấu nhắc %) gõ:  vim TÊNTẬPTIN <ENTER>
123
124  3. Muốn thoát Vim gõ:	   <ESC>   :q!	 <ENTER>  để vứt bỏ mọi thay đổi.
125	     HOẶC gõ:	   <ESC>   :wq	 <ENTER>  để ghi nhớ thay đổi.
126
127  4. Để xóa bỏ ký tự nằm dưới con trỏ trong chế độ Câu lệnh gõ:  x
128
129  5. Để chèn văn bản tại vị trí con trỏ trong chế độ Câu lệnh gõ:
130	 i     văn bản sẽ nhập	<ESC>
131
132CHÚ Ý: Nhấn <ESC> sẽ đưa bạn vào chế độ Câu lệnh hoặc sẽ hủy bỏ một câu lệnh
133	 hay đoạn câu lệnh không mong muốn.
134
135Bây giờ chúng ta tiếp tục với Bài 2.
136
137
138~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139			Bài 2.1: CÁC LỆNH XÓA
140
141
142	    ** Gõ	dw	để xóa tới cuối một từ. **
143
144  1. Nhấn  <ESC>  để chắc chắn là bạn đang trong chế độ Câu lệnh.
145
146  2. Di chuyển con trỏ tới dòng có dấu --->.
147
148  3. Di chuyển con trỏ tới ký tự đầu của từ cần xóa.
149
150  4. Gõ   dw	 để làm từ đó biến mất.
151
152  CHÚ Ý: các ký tự dw sẽ xuất hiện trên dòng cuối cùng của màn hình khi bạn gõ
153	 chúng. Nếu bạn gõ nhầm, hãy nhấn <ESC> và làm lại từ đầu.
154
155---> Khi trái tỉm tìm tim ai như mùa đông giá lạnh lanh
156	 Anh đâu thành cánh én nhỏ trùng khơi.
157
158  5. Lặp lại các bước cho đến khi sửa xong câu thơ rồi chuyển tới Bài 2.2.
159
160
161~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162		      Bài 2.2: CÁC CÂU LỆNH XÓA KHÁC
163
164
165	   ** gõ  d$	để xóa tới cuối một dòng. **
166
167  1. Nhấn  <ESC>  để chắc chắn là bạn đang trong chế độ Câu lệnh.
168
169  2. Di chuyển con trỏ tới dòng có dấu --->.
170
171  3. Di chuyển con trỏ tới cuối câu đúng (SAU dấu . đầu tiên).
172
173  4. Gõ    d$    để xóa tới cuối dòng.
174
175---> Đã qua đi những tháng năm khờ dại. thừa thãi.
176
177
178  5. Chuyển tới Bài 2.3 để hiểu cái gì đang xảy ra.
179
180
181
182
183
184~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
185		     Bài 2.3: CÂU LỆNH VÀ ĐỐI TƯỢNG
186
187
188  Câu lệnh xóa	d	có dạng như sau:
189
190	 [số]   d	đối_tượng	    HOẶC	     d	 [số]   đối_tượng
191  Trong đó:
192    số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
193    d - là câu lệnh xóa.
194    đối_tượng - câu lệnh sẽ thực hiện trên chúng (liệt kê phía dưới).
195
196  Danh sách ngắn của đối tượng:
197    w - từ con trỏ tới cuối một từ, bao gồm cả khoảng trắng.
198    e - từ con trỏ tới cuối một từ, KHÔNG bao gồm khoảng trắng.
199    $ - từ con trỏ tới cuối một dòng.
200
201CHÚ Ý:  Dành cho những người ham tìm hiểu, chỉ nhấn đối tượng trong chế độ Câu
202	 lệnh mà không có câu lệnh sẽ di chuyển con trỏ như trong danh sách trên.
203
204
205
206
207~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
208		Bài 2.4: TRƯỜNG HỢP NGOẠI LỆ CỦA QUY LUẬT  'CÂU LỆNH-ĐỐI TƯỢNG'
209
210
211	       ** Gõ	 dd   để xóa cả một dòng. **
212
213  Người dùng thường xuyên xóa cả một dòng, vì thế các nhà phát triển Vi đã
214  quyết định dùng hai chữ d để đơn giản hóa thao tác này.
215
216  1. Di chuyển con trỏ tới dòng thứ hai trong cụm phía dưới.
217  2. Gõ dd để xóa dòng này.
218  3. Bây giờ di chuyển tới dòng thứ  tư.
219  4. Gõ   2dd   (hãy nhớ lại bộ ba  số-câu lệnh-đối tượng) để xóa hai dòng.
220
221	 1) Trong tim em khắc sâu bao kỉ niệm
222	 2) Tình yêu chân thành em dành cả cho anh
223	 3) Dẫu cuộc đời như bể dâu thay đổi
224	 4) Anh mãi là ngọn lửa ấm trong đêm
225	 5) Đã qua đi những tháng năm khờ dại
226	 7) Hãy để tự em lau nước mắt của mình
227	 8) Lặng lẽ sống những đêm dài bất tận
228	 9) Bao khổ đau chờ tia nắng bình minh
229
230~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231			 Bài 2.5: CÂU LỆNH "HỦY THAO TÁC"
232
233
234   ** Nhấn  u	để hủy bỏ những câu lệnh cuối cùng,   U	 để sửa cả một dòng. **
235
236  1. Di chuyển con trỏ tới dòng có dấu ---> và đặt con trỏ trên từ có lỗi
237	 đầu tiên
238  2. Gõ  x  để xóa chữ cái gây ra lỗi đầu tiên.
239  3. Bây giờ gõ  u  để hủy bỏ câu lệnh vừa thự hiện (xóa chữ cái).
240  4. Dùng câu lệnh	x	để sửa lỗi cả dòng này.
241  5. Bây giờ gõ chữ  U  hoa để phục hồi trạng thái ban đầu của dòng.
242  6. Bây giờ gõ  u  vài lần để hủy bỏ câu lệnh  U  và các câu lệnh trước.
243  7. Bây giờ gõ CTRL-R (giữ phím CTRL và gõ R) và lầu để thực hiện
244     lại các câu lệnh (hủy bỏ các câu lệnh hủy bỏ).
245
246---> Câyy ccó cộii, nuước csó nguuồn.
247
248  8. Đây là những câu lệnh rất hữu ích.  Bây giờ chuyển tới Tổng kết Bài 2.
249
250
251
252
253~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
254			       TỔNG KẾT BÀI 2
255
256
257  1. Để xóa từ con trỏ tới cuối một từ gõ:    dw
258
259  2. Để xóa từ con trỏ tới cuối một dòng gõ:    d$
260
261  3. Để xóa cả một dòng gõ:    dd
262
263  4. Một câu lệnh trong chế độ Câu lệnh có dạng:
264
265       [số]   câu_lệnh   đối_tượng     HOẶC     câu_lệnh	[số]   đối_tượng
266     trong đó:
267		số - là số lần thực hiện câu lệnh (không bắt buộc, mặc định=1).
268		câu_lệnh - là những gì thực hiện, ví dụ	d	dùng để xóa.
269		đối_tượng - câu lệnh sẽ thực hiện trên chúng, ví dụ	w (từ),
270       	$ (tới cuối một dòng), v.v...
271
272  5. Để hủy bỏ thao tác trước, gõ:	     u	 (chữ u thường)
273     Để hủy bỏ tất cả các thao tác trên một dòng, gõ: U	 (chữ U hoa)
274     Để hủy bỏ các câu lệnh hủy bỏ, gõ:		     CTRL-R
275
276~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
277			 Bài 3.1: CÂU LỆNH DÁN
278
279
280       ** Gõ	p  để dán những gì vừa xóa tới sau con trỏ. **
281
282  1. Di chuyển con trỏ tới dòng đầu tiên trong cụm ở dưới.
283
284  2. Gõ  dd  để xóa và ghi lại một dòng trong bộ nhớ đệm của Vim.
285
286  3. Di chuyển con trỏ tới dòng Ở TRÊN chỗ cần dán.
287
288  4. Trong chế độ Câu lệnh, gõ    p	 để thay thế dòng.
289
290  5. Lặp lại các bước từ 2 tới 4 để đặt các dòng theo đúng thứ tự của chúng.
291
292     d) Niềm vui như gió xưa bay nhè nhẹ
293     b) Em vẫn mong anh sẽ đến với em
294     c) Đừng để em mất đi niềm hy vọng đó
295     a) Ai sẽ giúp em vượt qua sóng gió
296	 e) Dễ ra đi khó giữ lại bên mình
297
298
299~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
300		       Bài 3.2: CÂU LỆNH THAY THẾ
301
302
303  ** Gõ  r  và một ký tự để thay thế ký tự nằm dưới con trỏ. **
304
305  1. Di chuyển con trỏ tới dòng có dấu --->.
306
307  2. Di chuyển con trỏ tới ký tự gõ sai đầu tiên.
308
309  3. Gõ   r	và ký tự đúng.
310
311  4. Lặp lại các bước từ 2 đến 4 để sửa cả dòng.
312
313--->  "Trên đời nài làm gì có đườmg, người to đi mãi rồi thànk đường là tHôi"
314--->  "Trên đời này làm gì có đường, người ta đi mãi rồi thành đường mà thôi"
315
316  5. Bây giờ chuyển sang Bài 3.3.
317
318CHÚ Ý: Hãy nhớ rằng bạn cần thực hành, không nên "học vẹt".
319
320
321
322~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
323			Bài 3.3: CÂU LỆNH THAY ĐỔI
324
325
326	   ** Để thay đổi một phần hay cả một từ, gõ  cw . **
327
328  1. Di chuyển con trỏ tới dòng có dấu --->.
329
330  2. Đặt con trỏ trên chữ trong.
331
332  3. Gõ  cw  và sửa lại từ (trong trường hợp này, gõ  'ine'.)
333
334  4. Gõ <ESC> và chuyển tới lỗi tiếp theo (chữ cái đầu tiên trong số cần thay.)
335
336  5. Lặp lại các bước 3 và 4 cho tới khi thu được dòng như dòng thứ hai.
337
338---> Trên dùgn này có một dầy từ cần tyays đổi, sử dunk câu lệnh thay đổi.
339---> Trên dong này có một vai từ cần thay đổi, sử dung câu lệnh thay đổi.
340
341Chú ý rằng  cw  không chỉ thay đổi từ, nhưng còn đưa bạn vào chế độ chèn.
342
343
344
345~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
346		       Bài 3.4: TIẾP TỤC THAY ĐỔI VỚI c
347
348
349     ** Câu lệnh thay đổi được sử dụng với cùng đối tượng như câu lệnh xóa. **
350
351  1. Câu lệnh thay đổi làm việc tương tự như câu lệnh xóa. Định dạng như sau:
352
353        [số]   c   đối_tượng     HOẶC     c	[số]   đối_tượng
354
355  2. Đối tượng cũng giống như ở trên, ví dụ   w (từ), $ (cuối dòng), v.v...
356
357  3. Di chuyển con trỏ tới dòng có dấu --->.
358
359  4. Di chuyển con trỏ tới dòng có lỗi đầu tiên.
360
361  5. Gõ  c$  để sửa cho giống với dòng thứ hai và gõ <ESC>.
362
363---> Doan cuoi dong nay can sua de cho giong voi dong thu hai.
364---> Doan cuoi dong nay can su dung cau lenh c$ de sua.
365
366
367
368~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
369			       TỔNG KẾT BÀI 3
370
371
372  1. Để dán đoạn văn bản vừa xóa, gõ p. Câu lệnh này sẽ đặt đoạn văn bản này
373	 PHÍA SAU con trỏ (nếu một dòng vừa bị xóa, dòng này sẽ được đặt vào dòng
374	 nằm dưới con trỏ).
375
376  2. Để thay thế ký tự dưới con trỏ, gõ   r   và sau đó gõ
377     ký tự muốn thay vào.
378
379  3. Câu lệnh thay đổi cho phép bạn thay đổi đối tượng chỉ ra từ con
380     trỏ tới cuối đối tượng.  vd. Gõ  cw  để thay đổi từ
381     con trỏ tới cuối một từ, c$	để thay đổi tới cuối một dòng.
382
383  4. Định dạng để thay đổi:
384
385	[số]   c   đối_tượng     HOẶC     c	[số]   đối_tượng
386
387Bây giờ chúng ta tiếp tục bài học mới.
388
389
390
391~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
392		     Bài 4.1: THÔNG TIN VỀ TẬP TIN VÀ VỊ TRÍ TRONG TẬP TIN
393
394
395  ** Gõ CTRL-g để hiển thị vị trí của bạn trong tập tin và thông tin về tập tin.
396     Gõ SHIFT-G để chuyển tới một dòng trong tập tin. **
397
398  Chú ý: Đọc toàn bộ bài học này trước khi thực hiện bất kỳ bước nào!!
399
400  1. Giữ phím Ctrl và nhấn  g .  Một dòng thông tin xuất hiện tại cuối trang
401     với tên tập tin và dòng mà bạn đang nằm trên.  Hãy nhớ số dòng này
402     Cho bước số 3.
403
404  2. Nhấn shift-G để chuyển tới cuối tập tin.
405
406  3. Gõ số dòng mà bạn đã nằm trên và sau đó shift-G.  Thao tác này sẽ đưa bạn
407     trở lại dòng mà con trỏ đã ở trước khi nhấn tổ hợp Ctrl-g.
408     (Khi bạn gõ số, chúng sẽ KHÔNG hiển thị trên màn hình.)
409
410  4. Nếu bạn cảm thấy đã hiểu rõ, hãy thực hiện các bước từ 1 tới 3.
411
412
413
414~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
415			Bài 4.2: CÂU LỆNH TÌM KIẾM
416
417
418     ** Gõ  /  và theo sau là cụm từ muốn tìm kiếm. **
419
420  1. Trong chế độ Câu lệnh gõ ký tự  /  .Chú ý rằng ký tự này  và con trỏ sẽ
421	 xuất hiện tại cuối màn hình giống như câu lệnh  :	.
422
423  2. Bây giờ gõ 'loiiiii' <ENTER>.  Đây là từ bạn muốn tìm.
424
425  3. Để tìm kiếm cụm từ đó lần nữa, đơn giản gõ  n .
426     Để tìm kiếm cụm từ theo hướng ngược lại, gõ  Shift-N .
427
428  4. Nếu bạn muối tìm kiếm cụm từ theo hướng ngược lại đầu tập tin, sử dụng
429     câu lệnh  ?  thay cho /.
430
431---> "loiiiii" là những gì không đúng lắm;  loiiiii thường xuyên xảy ra.
432
433Chú ý: Khi tìm kiếm đến cuối tập tin, việc tìm kiếm sẽ tiếp tục từ đầu
434      tập tin này.
435
436
437~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
438		   Bài 4.3: TÌM KIẾM CÁC DẤU NGOẶC SÁNH ĐÔI
439
440
441	      ** Gõ  %  để tìm kiếm ),], hay } . **
442
443  1. Đặt con trỏ trên bất kỳ một (, [, hay { nào trong dòng có dấu --->.
444
445  2. Bây giờ gõ ký tự  %  .
446
447  3. Con trỏ sẽ di chuyển đến dấu ngoặc tạo cặp (dấu đóng ngoặc).
448
449  4. Gõ  %  để chuyển con trỏ trở lại dấu ngoặc đầu tiên (dấu mở ngoặc).
450
451---> Đây là ( một dòng thử nghiệm với các dấu ngoặc (, [ ] và { } . ))
452
453Chú ý: Rất có ích khi sửa lỗi chương trình, khi có các lỗi thừa thiếu dấu ngoặc!
454
455
456
457
458
459
460~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
461		      Bài 4.4: MỘT CÁCH SỬA LỖI
462
463
464	** Gõ  :s/cũ/mới/g  để thay thế 'mới' vào 'cũ'. **
465
466  1. Di chuyển con trỏ tới dòng có dấu --->.
467
468  2. Gõ  :s/duou/ruou <ENTER> .  Chú ý rằng câu lệnh này chỉ thay đổi từ tìm
469     thấy đầu tiên trên dòng (từ 'duou' đầu dòng).
470
471  3. Bây giờ gõ	 :s/duou/ruou/g	   để thực hiện thay thế trên toàn bộ dòng.
472     Lệnh này sẽ thay thế tất cả những từ ('duou') tìm thấy trên dòng.
473
474---> duou ngon phai co ban hie. Khong duou cung khong hoa.
475
476  4. Để thay thế thực hiện trong đoạn văn bản giữa hai dòng,
477     gõ   :#,#s/cũ/mới/g    trong đó #,# là số thứ tự của hai dòng.
478     Gõ   :%s/cũ/mới/g    để thực hiện thay thế trong toàn bộ tập tin.
479
480
481
482
483~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
484			       TỔNG KẾT BÀI 4
485
486
487  1. Ctrl-g  vị trí của con trỏ trong tập tin và thông tin về tập tin.
488     Shift-G  di chuyển con trỏ tới cuối tập tin.  Số dòng và theo sau
489     là  Shift-G  di chuyển con trỏ tới dòng đó.
490
491  2. Gõ  /	và cụm từ theo sau để tìm kiếm cụm từ VỀ PHÍA TRƯỚC.
492     Gõ  ?	và cụm từ theo sau để tìm kiếm cụm từ NGƯỢC TRỞ LẠI.
493     Sau một lần tìm kiếm gõ  n  để tìm kiếm cụm từ lại một lần nữa theo hướng
494     đã tìm hoặc  Shift-N  để tìm kiếm theo hướng ngược lại.
495
496  3. Gõ  %	khi con trỏ nằm trên một  (,),[,],{, hay }  sẽ chỉ ra vị trí của
497     dấu ngoặc còn lại trong cặp.
498
499  4. Để thay thế 'mới' cho 'cũ' đầu tiên trên dòng, gõ    :s/cũ/mới
500     Để thay thế 'mới' cho tất cả 'cũ' trên dòng, gõ	   :s/cũ/mới/g
501     Để thay thế giữa hai dòng, gõ	   :#,#s/cũ/mới/g
502     Để thay thế trong toàn bộ tập tin, gõ	   :%s/cũ/mới/g
503     Để chương trình hỏi lại trước khi thay thế, thêm 'c'	:%s/cũ/mới/gc
504
505
506~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
507		Lesson 5.1: CÁCH THỰC HIỆN MỘT CÂU LỆNH NGOẠI TRÚ
508
509
510   ** Gõ  :!	theo sau là một câu lệnh ngoại trú để thực hiện câu lệnh đó. **
511
512  1. Gõ câu lệnh quen thuộc	:  để đặt con trỏ tại cuối màn hình.
513     Thao tác này cho phép bạn nhập một câu lệnh.
514
515  2. Bây giờ gõ ký tự  !  (chấm than).  Ký tự này cho phép bạn
516     thực hiện bất kỳ một câu lệnh shell nào.
517
518  3. Ví dụ gõ   ls   theo sau dấu ! và gõ <ENTER>.  Lệnh này
519	 sẽ hiển thị nội dung của thư mục hiện thời, hoặc sử dụng
520     lệnh   :!dir	nếu ls không làm việc.
521
522Chú ý:  Có thể thực hiện bất kỳ câu lệnh ngoại trú nào theo cách này.
523
524Chú ý:  Tất cả các câu lệnh  :  cần kết thúc bởi phím <ENTER>
525
526
527
528
529~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530		      Bài 5.2: GHI LẠI CÁC TẬP TIN
531
532
533     ** Để ghi lại các thay đổi, gõ  :w TÊNTỆPTIN. **
534
535  1. Gõ  :!dir  hoặc  :!ls  để lấy bảng liệt kê thư mục hiện thời.
536     Như bạn đã biết, bạn cần gõ <ENTER> để thực hiện.
537
538  2. Chọn một tên tập tin chưa có, ví dụ TEST.
539
540  3. Bây giờ gõ:	 :w TEST   (trong đó TEST là tên tập tin bạn đã chọn.)
541
542  4. Thao tác này ghi toàn bộ tập tin	(Hướng dẫn dùng Vim) dưới tên TEST.
543     Để kiểm tra lại, gõ    :!dir   một lần nữa để liệt kê thư mục.
544
545Chú ý: Nếu bạn thoát khỏi Vim và quay trở lại với tên tập tin TEST, thì tập
546      tin sẽ là bản sao của hướng dẫn tại thời điểm bạn ghi lại.
547
548  5. Bây giờ xóa bỏ tập tin (MS-DOS):    :!del TEST
549				hay (Unix):	:!rm TEST
550
551
552~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
553		    Bài 5.3: CÂU LỆNH GHI CHỌN LỌC
554
555
556	** Để ghi một phần của tập tin, gõ   :#,# w TÊNTẬPTIN **
557
558  1. Gõ lại một lần nữa  :!dir  hoặc  :!ls  để liệt kê nội dung thư mục
559     rồi chọn một tên tập tin thích hợp, ví dụ TEST.
560
561  2. Di chuyển con trỏ tới đầu trang này, rồi gõ  Ctrl-g  để tìm ra số thứ
562     tự của dòng đó.  HÃY NHỚ SỐ THỨ TỰ NÀY!
563
564  3. Bây giờ di chuyển con trỏ tới dòng cuối trang và gõ lại Ctrl-g lần nữa.
565	 HÃY NHỚ CẢ SỐ THỨ TỰ NÀY!
566
567  4. Để CHỈ ghi lại một phần vào một tập tin, gõ   :#,# w TEST   trong đó #,#
568     là hai số thứ tự bạn đã nhớ (đầu,cuối) và TEST là tên tập tin.
569
570  5. Nhắc lại, xem tập tin của bạn có ở đó không với  :!dir  nhưng ĐỪNG xóa.
571
572
573
574
575~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
576		   Bài 5.4: ĐỌC VÀ KẾT HỢP CÁC TẬP TIN
577
578
579       ** Để chèn nội dung của một tập tin, gõ   :r TÊNTẬPTIN **
580
581  1. Gõ   :!dir   để chắc chắn là có tệp tin TEST.
582
583  2. Đặt con trỏ tại đầu trang này.
584
585CHÚ Ý:  Sau khi thực hiện Bước 3 bạn sẽ thấy Bài 5.3. Sau đó cần di chuyển
586	 XUỐNG bài học này lần nữa.
587
588  3. Bây giờ dùng câu lệnh   :r TEST   để đọc tập tin TEST, trong đó TEST là
589     tên của tập tin.
590
591CHÚ Ý:  Tập tin được đọc sẽ đặt bắt đầu từ vị trí của con trỏ.
592
593  4. Để kiểm tra lại, di chuyển con trỏ ngược trở lại và thấy rằng bây giờ
594     có hai Bài 5.3, bản gốc và bản vừa chèn.
595
596
597
598~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
599			      TỔNG KẾT BÀI 5
600
601
602  1.  :!câulệnh  thực hiện một câu lệnh ngoại trú
603
604      Một vài ví dụ hữu ích:
605	 (MS-DOS)	  (Unix)
606	  :!dir		   :!ls		   -  liệt kê nội dung một thư mục.
607	  :!del TÊNTẬPTIN   :!rm TÊNTẬPTIN   -  xóa bỏ tập tin TÊNTẬPTIN.
608
609  2.  :w TÊNTẬPTIN  ghi tập tin hiện thời của Vim lên đĩa với tên TÊNTẬPTIN.
610
611  3.  :#,#w TÊNTẬPTIN  ghi các dòng từ # tới # vào tập tin TÊNTẬPTIN.
612
613  4.  :r TÊNTẬPTIN  đọc tập tin trên đĩa TÊNTẬPTIN và chèn nội dung của nó vào
614      tập tin hiện thời sau vị trí của con trỏ.
615
616
617
618
619
620
621~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
622			 Bài 6.1: CÂU LỆNH TẠO DÒNG
623
624
625 ** Gõ  o  để mở một dòng phía dưới con trỏ và chuyển vào chế độ Soạn thảo. **
626
627  1. Di chuyển con trỏ tới dòng có dấu --->.
628
629  2. Gõ  o (chữ thường) để mở một dòng BÊN DƯỚI con trỏ và chuyển vào chế độ
630     Soạn thảo.
631
632  3. Bây giờ sao chép dòng có dấu ---> và nhấn <ESC> để thoát khỏi chế độ Soạn
633	 thảo.
634
635---> Sau khi gõ  o  con trỏ sẽ đặt trên dòng vừa mở trong chế độ Soạn thảo.
636
637  4. Để mở một dòng Ở TRÊN con trỏ, đơn giản gõ một chữ	O hoa, thay cho
638     chữ  o thường.  Hãy thử thực hiện trên dòng dưới đây.
639Di chuyển con trỏ tới dòng này, rồi gõ Shift-O sẽ mở một dòng trên nó.
640
641
642
643
644~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
645			Bài 6.2: CÂU LỆNH THÊM VÀO
646
647
648	     ** Gõ  a  để chèn văn bản vào SAU con trỏ. **
649
650  1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->
651     bằng cách gõ  $	trong chế độ câu lệnh.
652
653  2. Gõ  a  (chữ thường) để thêm văn bản vào SAU ký tự dưới con trỏ.
654     (Chữ  A  hoa thêm văn bản vào cuối một dòng.)
655
656Chú ý: Lệnh này thay cho việc gõ  i , ký tự cuối cùng, văn bản muốn chèn,
657     <ESC>, mũi tên sang phải, và cuối cùng, x , chỉ để thêm vào cuối dòng!
658
659  3. Bây giờ thêm cho đủ dòng thứ nhất. Chú ý rằng việc thêm giống hệt với
660     việc chèn, trừ vị trí chèn văn bản.
661
662---> Dong nay cho phep ban thuc hanh
663---> Dong nay cho phep ban thuc hanh viec them van ban vao cuoi dong.
664
665
666
667~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
668		    Bài 6.3: MỘT CÁCH THAY THẾ KHÁC
669
670
671      ** Gõ chữ cái  R  hoa để thay thế nhiều ký tự. **
672
673  1. Di chuyển con trỏ tới cuối dòng đầu tiên có ký hiệu --->.
674
675  2. Đặt con trỏ tại chữ cái đầu của từ đầu tiên khác với dòng có dấu
676     ---> tiếp theo (từ 'tren').
677
678  3. Bây giờ gõ R và thay thế phần còn lại của dòng thứ nhất bằng cách gõ
679     đè lên văn bản cũ để cho hai dòng giống nhau.
680
681---> De cho dong thu nhat giong voi dong thu hai tren trang nay.
682---> De cho dong thu nhat giong voi dong thu hai, go R va van ban moi.
683
684  4. Chú ý rằng khi bạn nhấn <ESC> để thoát, đoạn văn bản không sửa đổi sẽ
685	 được giữ nguyên.
686
687
688
689
690~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
691			    Bài 6.4: THIẾT LẬP CÁC THAM SỐ
692
693	  ** Thiết lập một tùy chọn để việc tìm kiếm hay thay thế lờ đi kiểu chữ **
694
695  1. Tìm kiếm từ 'lodi' bằng cách gõ:
696     /lodi
697     Lặp lại vài lần bằng phím n.
698
699  2. Đặt tham số 'ic' (Lodi - ignore case) bằng cách gõ:
700     :set ic
701
702  3. Bây giờ thử lại tìm kiếm 'lodi' bằng cách gõ: n
703     Lặp lại vài lần bằng phím n.
704
705  4. Đặt các tham số 'hlsearch' và 'incsearch':
706     :set hls is
707
708  5. Bây giờ nhập lại câu lệnh tìm kiếm một lần nữa và xem cái gì xảy ra:
709     /lodi
710
711  6. Để xóa bỏ việc hiện sáng từ tìm thấy, gõ:
712     :nohlsearch
713~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
714			       TỔNG KẾT BÀI 6
715
716
717  1. Gõ  o	mở một dòng phía DƯỚI con trỏ và đặt con trỏ trên dòng vừa mở
718     trong chế độ Soạn thảo.
719     Gõ một chữ  O  hoa để mở dòng phía TRÊN dòng của con trỏ.
720
721  2. Gõ  a  để chèn văn bản vào SAU ký tự nằm dưới con trỏ.
722     Gõ một chữ  A  hoa tự động thêm văn bản vào cuối một dòng.
723
724  3. Gõ một chữ  R  hoa chuyển vào chế độ Thay thế cho đến khi nhấn  <ESC>.
725
726  4. Gõ ":set xxx" sẽ đặt tham số "xxx"
727
728
729
730
731
732
733
734
735
736~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
737		       Bài 7: CÂU LỆNH TRỢ GIÚP
738
739
740		      ** Sử dụng hệ thống trợ giúp có sẵn **
741
742  Vim có một hệ thống trợ giúp đầy đủ. Để bắt đầu, thử một trong ba
743  lệnh sau:
744	- nhấn phím <HELP> (nếu bàn phím có)
745	- nhấn phím <F1> (nếu bàn phím có)
746	- gõ   :help <ENTER>
747
748  Gõ   :q <ENTER>   để đóng cửa sổ trợ giúp.
749
750  Bạn có thể tìm thấy trợ giúp theo một đề tài, bằng cách đưa tham số tới
751  câu lệnh ":help".  Hãy thử (đừng quên gõ <ENTER>):
752
753	:help w
754	:help c_<T
755	:help insert-index
756	:help user-manual
757
758
759~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
760		       Bài 8: TẠO MỘT SCRIPT KHỞI ĐỘNG
761
762			  ** Bật các tính năng của Vim **
763
764  Vim có nhiều tính năng hơn Vi, nhưng hầu hết chúng bị tắt theo mặc định.
765  Để sử dụng các tính năng này bạn cần phải tạo một tập tin "vimrc".
766
767  1. Soạn thảo tệp tin "vimrc", phụ thuộc vào hệ thống của bạn:
768	:edit ~/.vimrc			đối với Unix
769	:edit $VIM/_vimrc		đối với MS-Windows
770
771  2. Bây giờ đọc tập tin "vimrc" ví dụ:
772
773	:read $VIMRUNTIME/vimrc_example.vim
774
775  3. Ghi lại tập tin:
776
777	:write
778
779  Trong lần khởi động tiếp theo, Vim sẽ sử dụng việc hiện sáng cú pháp.
780  Bạn có thể thêm các thiết lập ưa thích vào tập tin "vimrc" này.
781
782~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
783
784  Bài học hướng dẫn sử dụng Vim (Vim Tutor) kết thúc tại đây.  Bài học đưa ra
785  cái nhìn tổng quát về trình soạn thảo Vim, chỉ đủ để bạn có thể sử dụng
786  trình soạn thảo một cách dễ dàng. Bài học còn rất xa để có thể nói là đầy
787  đủ vì Vim có rất rất nhiều câu lệnh. Tiếp theo xin hãy đọc hướng dẫn người
788  dùng: ":help user-manual".
789
790  Cuốn sách sau được khuyên dùng cho việc nghiên cứu sâu hơn:
791	Vim - Vi Improved - Tác giả: Steve Oualline
792	Nhà xuất bản: New Riders
793  Cuốn sách đầu tiên dành hoàn toàn cho Vim. Đặc biệt có ích cho người mới.
794  Có rất nhiều ví dụ và tranh ảnh.
795  Hãy xem: http://iccf-holland.org/click5.html
796
797  Cuốn sách tiếp theo này xuất bản sớm hơn và nói nhiều về Vi hơn là Vim,
798  nhưng cũng rất nên đọc:
799	Learning the Vi Editor - Tác giả: Linda Lamb
800	Nhà xuất bản: O'Reilly & Associates Inc.
801  Đây là một cuốn sách hay và cho bạn biết tất cả cách thực hiện những gì muốn
802  làm với Vi. Lần xuất bản thứ sáu đã thêm thông tin về Vim.
803
804  Bài học hướng dẫn này viết bởi Michael C. Pierce và Robert K. Ware,
805  Colorado School of Mines sử dụng ý tưởng của Charles Smith,
806  Colorado State University.  E-mail: bware@mines.colorado.edu.
807
808  Sửa đổi cho Vim bởi Bram Moolenaar.
809
810  Dịch bởi: Phan Vĩnh Thịnh <teppi@vnlinux.org>, 2005
811  Translator: Phan Vinh Thịnh <teppi@vnlinux.org>, 2005
812~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
813