12/08/2018, 14:38

Learn Vim Progressively

Vim là một text editor khá nổi tiếng và cũng rất nhiều người sử dụng. Bên cạnh đó cũng không ít anti fan khi mới tiếp xúc với nó. Nhưng nếu đã thông thạo thì chắc không muốn chuyển sang một editor khác. Vim khác hẳn so với những trình soạn thảo thông thường. Để có thể thao tác mọi thứ từ bàn phím ...

Vim là một text editor khá nổi tiếng và cũng rất nhiều người sử dụng. Bên cạnh đó cũng không ít anti fan khi mới tiếp xúc với nó. Nhưng nếu đã thông thạo thì chắc không muốn chuyển sang một editor khác. Vim khác hẳn so với những trình soạn thảo thông thường. Để có thể thao tác mọi thứ từ bàn phím thì Vim có số lượng phím tắt rất đồ sộ. Nhìn vào thì chắc người kiên trì nhất chắc cũng phải nản. Tôi cũng không phải ngoại lệ khi bắt đầu sử dụng Vim. Hôm nay tôi xin giới thiệu với các bạn về những thứ cơ bản nhất để có thể thao tác với Vim. Chúng ta sẽ làm học theo 4 bước: 1. 1st Level – Survive 0. Install Vim

  1. Launch vim
  2. Không làm gì cả!. Đọc. Mở trình soạn thảo cơ bản của Vim lên, gõ một cái gì đó và ta có thể thấy chúng. Vim hiện tại đang là Normal mode. Giờ hãy chuyển sang Insert mode bằng cách ấn phím i. Dưới đây là những phím mà bạn cần phải biết để thoa tác trong chế độ Normal mode: - i -> Insert mode. Bấm ESC để quay trở về chế độ Normal mode - x --> xóa 1 kí tự ở con trỏ hiện tại đang trỏ. - :wq --> lưu lại và thoát ra (:w save, :q thoát) - dd --> xóa (và copy) dòng hiện tại - p --> dán - hjkl chúng ta nên dùng những phím này để thay cho việc dùng những phím move thông thường như "←↓↑→"

Chỉ với 5 lệnh ở trên là đủ để chúng ta bắt đầu học vim. Ah quên câu lệnh cơ bản để thoát khỏi một chương trình là :q<enter>.

2.2nd Level – Feel comfortable Chúng ta sẽ đi tìm hiểu nhiều hơn những câu lệnh được coi là cần thiết ở bước 1. Đây là những gợi ý của mình: 1. Biến thể của Insert mode: - a: chèn vào sau vị trí con trỏ đang trỏ vào. - o: chèn thêm dòng mới bên dưới dòng con trỏ đang trỏ. - O: chèn dòng mới phía trên dòng con trỏ đang trỏ. - cw: thay thế từ vị trí hiện tại con trỏ đang trỏ tới hết từ đó 2. Cú pháp di chuyển cơ bản: - 0: di chuyển tới cột đầu tiên trên dòng đó. - ^ : di chuyển tới vị trí kí tự đầu tiên không trống của dòng đó - $$ di chuyển tới vị trí cuối của dòng đó. - g_ : di chuyển tới vị trí kí tự cuối không trống dòng đó 3. Copy/paste - P: dán đằng trước kí tự mà con trỏ đang trỏ. - p: dán đằng sau kí tự mà con trỏ đang trỏ. - yy: sao chép dòng hiện tai, tương đương với ddP 4. Undo/ Redo - u: hủy bỏ - <C-r> làm lại 5. Load/Save/Quit/Change File - :e <path/to/file> --> mở file - :w --> lưu lại - :x, ZZ hoặc :wq --> lưu và thoát (:x chỉ save nếu cần thiết) - :q! --> thoát nhưng không lưu lại - Giờ hãy giành thời gian để luyện tập những dòng lệnh ở trên để có thể bắt đầu sang bước 3. Giờ chúng ta còn có thể cảm thấy rất cồng kềnh nhưng khi bạn đã chuẩn bị tốt ở bước này thì sang tới bước 3 thì bạn sẽ thấy Vim làm việc thế nào.

3. 3rd Level – Better. Stronger. Faster. 3.1 Better 1. . --> dấu chấm mà chúng ta hay gõ ở các trình soạn thảo khác thì có tác dụng lặp lại câu lệnh gần nhất mà mình mới sử dụng 2. N<command> --> lặp lại N lần câu lệnh mà bạn vừa sử dụng .(N là số nguyên) 3.2 Stronger Làm thế nào để di chuyển một cách hợp lí trong vim là một điều rất quan trọng. Đừng bỏ qua bước này. 1. NG --> chuyển tới dòng thứ N (N là số nguyên) 2. gg --> di chuyển tới vị trí đầu tiên của dòng đầu tiên. tương đương với 1G 3. G --> di chuyển tới dòng cuối cùng. 4. Di chuyển trong từ: - w: di chuyển tới đầu của từ - e: di chuyển tới cuối của từ - %: di chuyển tới các dấu tương ứng (, {, [ 3.3 Faster Hầu hết các lệnh được sử dụng theo cú pháp: <start position><command><end position> ex: 0y có nghĩa : - 0: di chuyển tới vị trí đầu tiền của dòng - y: tính từ vị trí này - : đến cuối của dòng này 4. 4th Level – Vim Superpowers
Với những câu lệnh ở trên thì chúng ta có thể đã sử dụng vim thoải mái. Nhưng những lệnh sau đây chắc có lẽ đưa vim lên một tầm cao mới đối với tôi.

  • 0 → di chuyển tới cột 0
  • ^ → di chuyển tới vị trí đầu tiên trong dòng
  • $$→ di chuyển tới cột cuối cùng của dòng
  • g_ → di chuyển tới kí tự cuối cùng trong dòng
  • fa → tìm sự xuất hiện của chứ "a" đầu tiền sau từ mình đang trỏ vào.
  • t, → di chuyển tới kí tự trước dấu ,(tương tự với dấu .).
  • 3fa → tim chữ "a" thứ 3 xuất hiện trong dòng tính từ vị trí mình đang trỏ vào.
  • F and T → cũng như f và t nhưng tìm theo chiều ngược.

một mẹo hữu ích dành cho các bạn: dt": xóa tất cả kí tự tới trước dấu ". 4.1 Zone selection <action>a<object> or <action>i<object> Những lệnh này chỉ được dùng trong chế độ visual mode. Visual mode: dùng để lựa chọn một khối văn bản mà các ký tự nằm liên tiếp nhau và sau đó có thể copy hoặc xóa khối văn bản này. Để chọn mode này trước hết bạn phải quay trở lại mode Normal sau đó bấm phím v. Để thoát ra khỏi mode này bạn bấm tiếp v lần thứ 2. Cái này thật sự chúng ta dùng tới rất nhiều. Một số action mà chúng ta thường dùng tới d (delete), y (yank), v (select in visual mode). object có thể là : w một từ, s một câu văn, p một đoạn văn. nhưng cũng có thể là các kí tự ", ', ), }, ]. ví dụ: ta có 1 câu: (map (+) ("foo")) và con trỏ trỏ vào chứ o đầu tiên. vi" → sẽ chọn foo. va" → sẽ chọn "foo". vi) → sẽ chọn "foo". va) → sẽ chọn ("foo"). v2i) → sẽ chọn map (+) ("foo") v2a) → sẽ chọn (map (+) ("foo")) Kết Luận Mình nghĩ tới đây là đủ để cho chúng ta thực hành với một file text được rồi. Đây là những phần rất cả cơ bản và sẽ dùng rất nhiều nếu chúng ta dùng vim. Vì vậy hãy cố gắng kiên trì. Dù biết là sẽ rất khó khăn và chỉ muốn đập bàn phím. Nhưng hãy cố gắng. Chúc thành công !!! Bài viết tham khảo: http://www.vim.org/ http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

0