+6

Dùng Vim như một Developer chuyên nghiệp

Mở đầu

Xin chào mọi người, cũng rất lâu rồi mình mới lại viết bài 😄 do đợt này đang có sự kiện Mayfest phần quà hấp dẫn quá nên không thể không tham gia được (hehe). Không dài dòng nữa hôm nay mình sẽ chia sẻ đến mọi người về Vim cũng như cách sử dụng nó sao cho hiệu quả nhé.

Tổng Quan

Vim là gì?

  • Vim là trình soạn thảo văn bản thông dụng trên Linux và các hệ thống Unix
  • Là phiên bản nâng cấp của vi editor phổ biến trước đó
  • Cho phép người dùng chỉnh sửa văn bản và code một cách nhanh chóng, hiệu

Đặc điểm nổi bật:

  • Giao diện dòng lệnh, không cần chuột
  • Hỗ trợ modal editing (nhiều chế độ làm việc)
  • Cung cấp hàng trăm lệnh và phím tắt thông minh
  • Có thể mở rộng thêm tính năng thông qua plugin
  • Hoạt động với hầu hết các loại file và ngôn ngữ lập trình
  • Nhẹ, nhanh, mạnh mẽ

Đối tượng sử dụng:

  • Lập trình viên
  • Quản trị hệ thống
  • Người dùng cần chỉnh sửa văn bản thường xuyên

Lịch sử ra đời

Được Xây Dựng trên Nền Tảng Vi và Phát Triển Theo Thời Gian

  • Vi được tạo ra đầu tiên vào năm 1976 bởi Bill Joy, là trình soạn thảo văn bản mặc định trong hệ điều hành Unix

Bram Moolenaar và Sự Xuất Hiện Của Vim:

  • Vim được phát triển bởi Bram Moolenaar và ra mắt lần đầu tiên vào năm 1991.
  • Là phiên bản cải tiến của vi với nhiều tính năng mở rộng thêm
  • Tên gốc là Vi IMitation
  • Sau đổi tên thành Vi IMproved (phiên bản cải tiến của vi)

Phiên bản đầu tiên

  • Ra mắt phiên bản đầu tiên vào tháng 11/1991
  • Chỉ hỗ trợ phần mềm chạy trên Amiga
  • Có khả năng hoạt động với file đa byte và màn hình đồ họa

Cài đặt

1. Linux/Unix:

  • Vim đã được tích hợp sẵn trong hầu hết các bản phân phối Linux/Unix.
  • Mở terminal và gõ lệnh:
  • Debian/Ubuntu: sudo apt install vim
  • Fedora/CentOS: sudo yum install vim
  • Arch Linux: sudo pacman -S vim

2. Windows

  • Tải file cài đặt exe từ trang chủ vim.org
  • Chạy file exe, làm theo hướng dẫn cài đặt

3. Mac:

  • Sử Dụng Homebrew:
    • brew install vim
  • Sử Dụng MacPorts:
    • sudo port install vim

Các chế độ cơ bản trong Vim

Vim có 3 chế độ cơ bản đó là Normal , Insert, Visual mỗi chế độ có chức năng riêng

Chế Độ Normal:

Là chế độ mặc định khi Mở Vim có chức năng để di chuyển, xóa, sao chép và thực hiện các thao tác chính.

Các Lệnh Phổ Biến:

  • h, j, k, l - Di chuyển lên, xuống, qua trái, qua phải.
  • x - Xóa ký tự, dd - Xóa dòng.

Chế Độ Insert:

Là chế độ cho phép bạn nhập và chỉnh sửa văn bản trong tệp đang mở. Để chuyển sang chế độ insert từ chế độ bình thường, bạn có thể sử dụng các phím lệnh sau:

  • i: Chuyển sang chế độ insert tại vị trí con trỏ hiện tại.
  • a: Chuyển sang chế độ insert ngay sau vị trí con trỏ hiện tại.
  • o: Chuyển sang chế độ insert trên một dòng mới phía dưới dòng hiện tại.
  • O: Chuyển sang chế độ insert trên một dòng mới phía trên dòng hiện tại.

Khi đã ở trong chế độ insert, bạn có thể gõ phím và nhập văn bản như bình thường. Để thoát khỏi chế độ insert và quay trở lại chế Normal, bạn nhấn phím Esc hoặc Ctrl+[.

Chế độ Visual

Là một chế độ khác trong Vim, cho phép bạn lựa chọn và thao tác trên một khối văn bản. Khi ở chế độ Visual, bạn có thể di chuyển con trỏ để chọn một phạm vi văn bản, sau đó có thể thực hiện các thao tác như cắt, copy, xóa, vv. trên phạm vi văn bản đã chọn đó.

Có 3 kiểu chế độ Visual trong Vim:

  • Chế độ Visual (v): Để vào chế độ này, nhấn phím v từ chế độ Normal. Khi ở chế độ Visual, bạn có thể di chuyển con trỏ để chọn theo hướng ngang.
  • Chế độ Visual dòng (V): Để vào chế độ này, nhấn phím V (viết hoa) từ chế độ Normal. Ở chế độ Visual dòng, bạn có thể chọn theo hướng dọc, chọn toàn bộ các dòng.
  • Chế độ Visual khối (Ctrl+v): Để vào chế độ này, nhấn tổ hợp phím Ctrl+v từ chế độ Normal. Ở chế độ Visual khối, bạn có thể chọn một khối văn bản đa chiều, có thể chọn nhiều dòng và nhiều cột.

Khi đã ở chế độ Visual, bạn có thể di chuyển con trỏ bằng các phím di chuyển để mở rộng hoặc thu hẹp phạm vi chọn. Sau khi chọn xong phạm vi mong muốn, bạn có thể thực hiện các thao tác như:

  • y để copy phạm vi chọn
  • d để xóa phạm vi chọn
  • c để xóa phạm vi chọn và chuyển sang chế độ Insert
  • > để thụt vào phạm vi chọn
  • < để thụt ra phạm vi chọn
  • : để nhập lệnh cho phạm vi chọn

Để thoát khỏi chế độ Visual và quay lại chế độ Normal, bấm phím Esc hoặc Ctrl+[. Chế độ Visual rất hữu ích để thao tác trên một khối văn bản đã chọn, giúp tiết kiệm thời gian và công sức trong các tác vụ như di chuyển, sao chép, xóa hay định dạng văn bản.

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

Di Chuyển Con Trỏ:

  • Di Chuyển Bằng Phím Hướng:
    • h, j, k, l - Di chuyển qua trái, xuống, lên, qua phải.
  • Di Chuyển Theo Dòng, Trang:
    • 0 - Đầu dòng, $ - Cuối dòng.
    • gg - Đầu file, G - Cuối file.

Xóa và Chèn:

  • Xóa Ký Tự, Dòng:
    • x - Xóa ký tự tại vị trí con trỏ.
    • dd - Xóa dòng hiện tại.
  • Chèn Nội Dung:
    • i - Chèn trước con trỏ, I - Chèn ở đầu dòng.
    • a - Chèn sau con trỏ, A - Chèn ở cuối dòng.

Lưu và Thoát:

  • Lưu và Thoát:
    • :w - Lưu (không thoát), :q - Thoát (không lưu).
    • :wq hoặc ZZ - Lưu và thoát.
  • Thoát Mà Không Lưu:
    • :q! hoặc ZQ - Thoát mà không lưu.

Tìm Kiếm và Thay Thế:

  • Tìm Kiếm:
    • /pattern - Tìm kiếm xuôi, ?pattern - Tìm kiếm ngược.
  • Thay Thế:
    • :s/old/new - Thay thế lần đầu trong dòng.
    • :s/old/new/g - Thay thế tất cả trong dòng.
    • :%s/old/new/g - Thay thế tất cả trong file.

Sao chép và dán văn bản:

  • y: sao chép đoạn đã chọn
  • p: dán nội dung đã sao chép

ví dụ: y3j -> p: sao chép 3 dòng và dán

Hoàn tác và làm lại

  • u: hoàn tác thao tác trước đó
  • Ctrl+r: làm lại thao tác đã hoàn tác

Set number và syntax

  • :set nu: bật hiển thị số dòng
  • :syntax on: bật tô sắc cú pháp

Kỹ Thuật Thao Tác Linh Hoạt:

  • Chia Màn Hình và Thao Tác Theo Cột:
    • :vsp - Chia màn hình dọc,
    • :sp - Chia màn hình ngang.

Sử dụng Ctrl + w để di chuyển giữa các cửa sổ.

Làm việc với file

Mở và Đóng File:

  • Mở File Hiện Tại: Sử dụng lệnh vim sau đó nhập tên file. Ví dụ: vim filename.txt.
  • Đóng File: Trong chế độ Normal, sử dụng :q để đóng file. Sử dụng :q! để bỏ qua các thay đổi chưa lưu.

Di Chuyển Trong File:

  • Thao Tác Di Chuyển Cơ Bản:
    • Sử dụng các phím mũi tên hoặc h, j, k, l để di chuyển con trỏ.
  • Chuyển Đến Đầu và Cuối File:
    • gg để di chuyển đến đầu file, G để di chuyển đến cuối file.

Lưu

  • Lưu (Save):
    • Trong chế độ Normal, sử dụng :w để lưu file.
  • Lưu và Đặt Tên Mới:
    • Sử dụng :w newfilename.txt để lưu file với tên mới.

Đọc file dưới dạng chỉ đọc (read-only)

  • -R là tùy chọn để mở file ở chế độ chỉ đọc.
  • Hoặc từ trong Vim, chuyển sang chế độ read-only: :set readonly

Kiểm tra xem file có bị thay đổi

  • dùng :checktime để kiểm tra xem file hiện tại đang mở có bị thay đổi từ bên ngoài hay không.

Tìm Kiếm Trong File:

  • Sử Dụng Lệnh /:
    • Nhấn / rồi nhập từ khóa cần tìm kiếm và nhấn Enter.
  • Dùng Lệnh :find:
    • Sử dụng :find filename.txt để tìm và mở file.

Các Register trong Vim

Khái Niệm Register:

  • Định Nghĩa: Trong Vim, register là nơi lưu trữ dữ liệu tạm thời như văn bản hoặc lệnh đã thực hiện.
  • Loại Register: Vim có nhiều loại register, từ các register chung dùng cho thao tác cơ bản đến các register đặc biệt và tự định nghĩa.

Các Register Phổ Biến:

  • Register Chính (""): Register mặc định sử dụng cho các thao tác sao chép, cắt, và dán.
  • Register Hệ Thống ("* và "+):
    • "* là register của hệ thống clipboard trên Linux/Unix.
    • "+ là register của hệ thống clipboard trên Windows.

Cách Sử Dụng Register:

  • Sao Chép vào Register:
    • Chọn vùng cần sao chép trong Visual Mode và sử dụng lệnh "+y để sao chép vào register của hệ thống clipboard.
  • Xem Nội Dung Register:
    • Sử dụng lệnh :registers để xem nội dung của tất cả các register.

Register Đặc Biệt ("1 đến "9):

  • Lịch Sử Sao Chép ("0 và "1 đến "9):
    • "0 lưu trữ nội dung của lần sao chép gần nhất.
    • "1 đến "9 lưu trữ lịch sử 9 lần sao chép trước đó.
  • Register Cho Thao Tác Di Chuyển (".):
    • ". lưu trữ kết quả của lệnh di chuyển cuối cùng.

Tùy Chỉnh Register ("a đến "z):

  • Tùy Chỉnh Với a đến z:
    • Bạn có thể sử dụng các register này để lưu trữ và gọi lại các giá trị tùy chọn của bạn.

Ví Dụ: "ayy sẽ sao chép một dòng vào register a. "ap sẽ dán nội dung từ register a.

Kết luận

Tại sao mình lại giới thiệu đến mọi người Vim? Vì mình tin rằng việc sử dụng Vim mang lại nhiều ưu điểm đáng giá như sau:

Vim tăng năng suất làm việc nhờ vào hệ thống lệnh và cú pháp giúp thao tác nhanh chóng. Khả năng tự động hóa công việc thông qua macro và plugin giúp giảm thiểu thời gian chờ đợi, từ đó tăng hiệu suất làm việc. Đặc biệt, Vim hoạt động nhẹ nhàng và ổn định, ít tốn tài nguyên hệ thống và có thể chạy mượt mà trên các cấu hình máy tính thấp. Điều này giúp Vim hoạt động tốt trên nhiều hệ điều hành và nền tảng khác nhau. Vim cũng dễ dàng mở rộng và tùy biến. Hệ thống plugin và theme phong phú cho phép người dùng mở rộng tính năng của Vim theo ý muốn. Ngoài ra, có thể tùy biến phím tắt, lệnh và macro để phù hợp với nhu cầu cá nhân. Cuối cùng, Vim là lựa chọn lý tưởng cho cả lập trình viên và người dùng dài hạn. Được tích hợp sâu với các ngôn ngữ lập trình phổ biến, Vim cung cấp khả năng mở rộng cú pháp để phù hợp với nhiều nhu cầu khác nhau.

**Cách để sử dụng Vim hiệu quả **

Học Phím Tắt Cơ Bản: Trước tiên, việc làm chủ các phím tắt cơ bản như di chuyển con trỏ, chèn văn bản, lưu tệp và thoát khỏi Vim là điều kiện tiên quyết để thực hiện các thao tác hàng ngày một cách nhuần nhuyễn.

Thực Hành Liên Tục: Thực hành liên tục là chìa khóa để nâng cao kỹ năng sử dụng Vim. Dành thời gian hàng ngày để luyện tập, không ngừng khám phá và vận dụng các tính năng mới sẽ giúp bạn dần trở nên thuần thục hơn.

Hiểu Về Các Khái Niệm Chính: Bên cạnh đó, nắm vững các khái niệm cốt lõi như buffer, cửa sổ, register và các khái niệm khác sẽ mở ra nhiều cách sử dụng Vim hiệu quả hơn.

Luôn Giữ Tinh Thần Lạc Quan: Những thách thức ban đầu là điều không thể tránh khỏi. Vì vậy, bạn cần luôn giữ một tinh thần lạc quan và kiên nhẫn trong quá trình học tập và thực hành. Với sự nỗ lực không ngừng, chắc chắn bạn sẽ đạt được thành công và trở thành những người dùng Vim thành thạo, khai thác triệt để tiềm năng của công cụ soạn thảo văn bản này.

Cuối cùng nếu thấy bài viết hữu ích thì hãy cho mình 1 upvote nhé, mọi ý kiến thắc mắc cũng như góp ý cho bài viết các bạn hãy comment xuống bên dưới để mình được biết nhé. Cảm ơn các bạn 😄


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.