Lệnh ctags trong linux với các ví dụ dễ hiểu

Lệnh ctags trong linux giúp tạo ra một file "tags" chứa thông tin về các đối tượng lập trình như hàm, biến, lớp. File này hỗ trợ các trình soạn thảo như Vim, Emacs nhảy nhanh đến định nghĩa của các đối tượng đó. Sử dụng ctags trong linux giúp tăng tốc độ đọc hiểu và chỉnh sửa code, đặc biệt hữu ích với các dự án lớn. Nó là công cụ không thể thiếu cho lập trình viên.

Lệnh ctags trong linux là gì?

Lệnh command ctags in linux là một công cụ mạnh mẽ giúp tạo ra một file chỉ mục (tags file) chứa thông tin về các đối tượng lập trình như hàm, biến, lớp trong mã nguồn. File tags này cho phép các trình soạn thảo văn bản, ví dụ như Vim, dễ dàng nhảy đến định nghĩa của một hàm hoặc biến cụ thể một cách nhanh chóng. Sử dụng command ctags in linux giúp tăng tốc độ duyệt code và hiểu cấu trúc dự án lớn, đặc biệt hữu ích khi làm việc với các dự án phức tạp. Nó hoạt động bằng cách phân tích cú pháp các file mã nguồn và tạo ra một danh sách các "tags" cùng với vị trí của chúng trong file. Nhờ đó, bạn có thể dễ dàng tìm kiếm và di chuyển giữa các phần khác nhau của code một cách hiệu quả.

Giới thiệu về ctags

Trong bước này, bạn sẽ làm quen với lệnh ctags, một công cụ tạo tag cho file mã nguồn.

Các tag này giúp bạn tìm kiếm và di chuyển nhanh chóng trong code, hiểu cấu trúc codebase dễ hơn.

Đầu tiên, hãy cài đặt gói ctags bằng lệnh sau:

sudo apt-get update
sudo apt-get install -y exuberant-ctags

Để tạo tag cho dự án C/C++, hãy di chuyển đến thư mục dự án và chạy lệnh sau:

ctags -R .

Lệnh này sẽ tạo tag đệ quy cho tất cả file nguồn trong thư mục hiện tại và thư mục con.

Bạn có thể xem file tag đã tạo bằng lệnh:

cat tags

Ví dụ về kết quả:

!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR	Universal Ctags Team	//
!_TAG_PROGRAM_NAME	Universal Ctags	/Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL	https://ctags.io/	/official site/
!_TAG_PROGRAM_VERSION	0.0.0	/a3c87ab/
main	main.c	/^int main() {$/;"	f

File tag chứa thông tin về các function, variable và symbol khác trong mã nguồn của bạn.

Bạn có thể dùng file này để di chuyển nhanh đến định nghĩa của một symbol trong code.

Tạo Tag cho Dự án C/C++

Trong bước này, bạn sẽ học cách tạo tag cho dự án C/C++ bằng lệnh ctags.

Đầu tiên, hãy tạo một dự án C đơn giản trong thư mục ~/project:

cd ~/project
mkdir myproject
cd myproject
touch main.c

Mở file main.c bằng trình soạn thảo nano và thêm đoạn code sau:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Lưu và đóng file này lại nhé.

Bây giờ, chúng ta hãy tạo tag cho dự án này:

ctags -R .

Lệnh này sẽ tạo file tags trong thư mục hiện tại, chứa thông tin về các symbol.

Bạn có thể xem nội dung của file tags:

cat tags

Ví dụ về kết quả:

!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR	Universal Ctags Team	//
!_TAG_PROGRAM_NAME	Universal Ctags	/Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL	https://ctags.io/	/official site/
!_TAG_PROGRAM_VERSION	0.0.0	/a3c87ab/
main	main.c	/^int main() {$/;"	f

File tags chứa thông tin về hàm main được định nghĩa trong file main.c.

Điều hướng Source Code với ctags

Trong bước này, bạn sẽ học cách sử dụng lệnh ctags để điều hướng source code của mình.

Đầu tiên, hãy chắc chắn bạn đã tạo file tags cho dự án C/C++ của mình, như ở bước trước.

Để điều hướng đến định nghĩa của một symbol (ví dụ như function hoặc variable), bạn có thể dùng vim hoặc emacs.

Mở file main.c trong trình soạn thảo vim:

vim ~/project/myproject/main.c

Bây giờ, đặt con trỏ vào function main và nhấn phím Ctrl+] để đến định nghĩa của function main trong file tags.

Để quay lại vị trí trước đó, bạn hãy nhấn tổ hợp phím Ctrl+t.

Bạn cũng có thể dùng lệnh ctags trực tiếp từ terminal để điều hướng đến định nghĩa của một symbol.

Ví dụ, để đến định nghĩa của function main, hãy chạy lệnh sau:

ctags -L main

Lệnh này sẽ mở file main.c và đặt con trỏ vào đầu function main.

Một tính năng hữu ích khác của ctags là khả năng liệt kê tất cả các symbol được định nghĩa trong một dự án.

Để thực hiện việc này, bạn hãy chạy lệnh sau:

ctags -L

Lệnh này sẽ hiển thị danh sách tất cả các symbol trong dự án, cùng với file và số dòng.

Kết luận cho linux ctags command

Vậy là chúng ta đã cùng nhau khám phá sức mạnh của lệnh ctags trong Linux. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về cách linux ctags command giúp bạn điều hướng code một cách nhanh chóng và hiệu quả. Việc tạo ra file tags giúp IDE và trình soạn thảo của bạn "hiểu" cấu trúc code, từ đó hỗ trợ bạn tìm kiếm và di chuyển giữa các hàm, biến một cách dễ dàng. Hãy thử áp dụng ctags vào dự án của bạn, bạn sẽ thấy năng suất làm việc tăng lên đáng kể đấy. Đừng ngại thử nghiệm các tùy chọn khác nhau của lệnh để tìm ra cách sử dụng phù hợp nhất với nhu cầu của bạn. Chúc bạn thành công trên con đường chinh phục thế giới lập trình Linux!

Last Updated : 17/10/2025