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