Trang chủTác giảLiên hệ

[Vim cơ bản] Bài 1. Giới thiệu về Vim

By Lê Hải Băng
Published in VIM
June 07, 2021
4 min read

[Vim cơ bản] Bài 1. Giới thiệu về Vim

1. Vim là gì

Trước khi giới thiệu về vim, mình sẽ nói qua về vi trước. Vi (viết tắt của visual editor) là trình soạn thảo cơ bản có trên hầu như tất cả các hệ thống UNIX. Chỉ cần mở terminal và gõ $ vi là bạn đã có thể bắt đầu sử dụng vi rồi. Tuy nhiên, để sử dụng thành thạo vi thì lại cần nhiều thời gian để luyện tập vì bạn phải nhớ khá nhiều câu lệnh. Đổi lại, khi bạn đã thành thục với vi thì nhiều khả năng bạn sẽ không muốn dùng editor khác đâu. :smile:

Thế còn vim? vim (viết tắt của ""vi improved”) là một phiên bản mở rộng của vi, được viết bởi Bram Moolenaar và liên tục được phát triên bởi cộng đồng những người sử dụng vim. Các bạn có thể tham khảo kĩ hơn quá trình phát triển của vim trên [wiki](https://en.wikipedia.org/wiki/Vim_(text_editor). Phiên bản mới nhất của vim hiện tại là 8.0.

Bản thân mình trước cũng dùng IDE để code là chính, sau thấy mấy pờ rồ dùng vim ảo diệu quá nên cũng thử xem sao :smile:. Thực sự lúc bắt đầu dùng vim thì tốc độ code rất chậm do chưa nhớ hết lệnh, cứ phải dừng lại để tra nên khá là nản (mình cũng từng bỏ dở 1 lần). Tuy nhiên nếu kiên nhẫn dành thời gian luyện tập thì chỉ cần thành thục các thao tác di chuyển cơ bản thôi bạn cũng thấy muốn dùng vim rồi. Điều mình thích khi code với vim là bạn hầu như không phải dùng tới chuột, mọi thao tác đều thực hiện bằng bàn phím nên code sẽ tập trung hơn và đỡ mất thời gian chuyển giữa chuột và bàn phím so với khi dùng các editor khác. Bên cạnh đó, rất nhiều plugin cho vim có thể giúp bạn bổ sung các tính năng tương tự như trên các IDE thông thường.

Nếu bạn cũng có hứng thú với vim nhưng vẫn chưa muốn chuyển hẳn sang dùng vim, bạn có thể tìm plugin hỗ trợ vim mode cho IDE bạn đang dùng. Hầu hết các IDE đều có plugin hỗ trợ vim mode như Sublime Text, Atom, PhpStorm, …

2. Cài đặt Vim

Các bạn có thể cài đặt vim bằng cách down source code rồi compile (tham khảo http://www.vim.org/download.php). Dưới đây mình liệt kê một số cách cài đặt đơn giản hơn cho một số HĐH thông dụng.

Ubuntu
MacOS
Windows

Download file cài đặt gvim cho Window tại http://www.vim.org/download.php và chạy file để cài đặt.

3. Các thao tác cơ bản

OK, tiếp theo là các thao tác cơ bản với vim.

3.1 Mở file

Để mở một file nào đó, các bạn dùng lệnh

Ví dụ, để mở file em_chua_18.md trong thư mục hiện tại:

Các bạn có thể dùng vim để mở file với bất kỳ định dạng nào. Khi mở file, vim sẽ copy file đó ra vùng đệm (buffer) ở bộ nhớ và mọi thao tác chỉnh sửa của bạn sẽ được thực hiện ở vùng buffer. Khi bạn save file, nội dung ở vùng buffer sẽ được copy trở lại file gốc thay thế nội dung cũ.

Ở câu lệnh trên, nếu file cần mở chưa tồn tại, vim sẽ tạo một file mới.

3.2 Command mode và insert mode

Khác với các trình soạn thảo (editor) khác, vim có 2 trạng thái (mode) là command mode và insert mode.

  • Command mode: Ở trạng thái này, mọi thứ bạn gõ sẽ được hiểu là câu lệnh; tùy vào câu lệnh mà nội dung file có thể bị thay đổi hoặc không. (Khi bạn mở một file thì vim mặc định ở trạng thái này).
  • Insert mode: Ở trạng thái này, bạn có thể soạn thảo như đối với các editor thông thường khác.

Khi vim ở trạng thái insert mode, để chuyển qua trạng thái command mode, chúng ta ấn phím ESC. Ngược lại để chuyển từ command mode sang insert mode, một cách đơn giản là dùng phím i (viết tắt của insert), khi đó chúng ta có thể soạn thảo tiếp tại vị trí con trỏ tại thời điểm ấn phím i.

3.3 Thoát và lưu file

Tùy từng trường hợp, chúng ta có thể sử dụng các lệnh sau để lưu nội dung file hoặc thoát khỏi vim. Lưu ý các lệnh phải được thực hiện khi vim ở trạng thái command mode.

Lưu file và thoát khỏi vim
  • ZZ
  • :wq sau đó ENTER (các lệnh có dấu : ở trước là ex command, sẽ được nói kĩ hơn bài khác. Các bạn lưu ý các ex command được viết sau đây cũng được ngầm hiểu là phải nhấn ENTER để thực hiện).
Lưu file nhưng không thoát vim

:w hoặc :w!. Để lưu ra một file mới, chúng ta thêm tên file sau câu lệnh, VD: :w em_chua_18_ja.md. Dấu ! có thể hiểu là “thực hiện mà không cần xác nhận”. Trường hợp câu lệnh :w, :w! sẽ thực hiện ghi đè nội dung nếu file đã tồn tại, trong khi :w sẽ hiển thị thông báo.

Thoát vim mà không lưu

:q hoặc :q!. Với :q, trường hợp các thay đổi chưa được lưu lại, vim sẽ hiển thị thông báo: (E37: No write since last change (add ! to override)). Câu lệnh :q! sẽ thoát vim và không lưu các thay đổi kể từ lần lưu gần nhất.

Bỏ hết các thay đổi từ lần lưu file gần nhất

:e!

Kết bài

Ở bài này mình đã giới thiệu qua với các bạn về vim và một số thao tác cơ bản. Mình sẽ tiếp tục bổ sung ở các bài tiếp theo. Hy vọng các bạn sẽ thấy hứng thú và nếu bài viết có gì sai sót các bạn cứ comment để mình bổ sung nhé.

Tài liệu tham khảo


Lê Hải Băng

Related Posts

VIM
[Vim cơ bản] Bài 2. Di chuyển con trỏ trong Vim
June 08, 2021
6 min
© 2021, All Rights Reserved.

Quick Links

Liên hệ quảng cáoThông tinLiên hệ

Social Media