Vim - Hướng dẫn nhanh

Vim editor là một trong những trình soạn thảo văn bản phổ biến hơn mà chúng ta sử dụng ngày nay. Nó là một bản sao của trình soạn thảo Vi và được viết bởi Bram Moolenaar. Nó là trình soạn thảo đa nền tảng và có sẵn trên hầu hết các nền tảng phổ biến như Windows, Linux, Mac và các biến thể UNIX khác. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Introduction
  • Các tính năng của Vim
  • Tại sao Vim được tạo ra?

Giới thiệu

Vim là từ viết tắt của Vi IMđã chứng minh. Nó là trình soạn thảo văn bản mã nguồn mở và miễn phí được viết bởi Bram Moolenaar. Nó được phát hành lần đầu tiên vào năm 1991 cho các biến thể UNIX và mục tiêu chính của nó là cung cấp sự cải tiến cho trình chỉnh sửa Vi, được phát hành vào năm 1976.

Vim được coi là bản sao Vi biên tập viên. Giống như Vi, nó cũng là trình soạn thảo tập trung lệnh. Một trong những lợi thế của việc học Vim là - nó có sẵn ở mọi nơi. Lấy bất kỳ biến thể UNIX nào như Linux, Mac, HP-UX, AIX và nhiều hơn nữa, Vim ở đó theo mặc định. Vim theo truyền thống không có GUI nhưng giờ đây đã có trình cài đặt riêng gọi là gVim cung cấp GUI.

Các tính năng của Vim

Phần này thảo luận về một số tính năng quan trọng của Vim -

  • Dấu chân bộ nhớ của nó rất thấp

  • Nó là trung tâm chỉ huy. Bạn có thể thực hiện tác vụ phức tạp liên quan đến văn bản với một vài lệnh

  • Nó có thể cấu hình cao và sử dụng tệp văn bản đơn giản để lưu trữ cấu hình của nó

  • Có rất nhiều plug-in có sẵn cho Vim. Chức năng của nó có thể được mở rộng theo cách tuyệt vời bằng cách sử dụng các trình cắm thêm này

  • Nó hỗ trợ nhiều cửa sổ. Sử dụng tính năng này màn hình có thể được chia thành nhiều cửa sổ

  • Tương tự như nhiều cửa sổ, nó cũng hỗ trợ nhiều bộ đệm

  • Nó hỗ trợ nhiều tab cho phép làm việc trên nhiều tệp

  • Nó hỗ trợ các tính năng ghi âm cho phép ghi và phát các lệnh Vim theo cách lặp lại

Tại sao Vim được tạo ra

Vim dựa trên trình soạn thảo Vi nguyên bản, được tạo ra bởi Bill Joy vào năm 1976. Trong những năm 90, Vi đã bị thiếu đằng sau cái gọi là cuộc chiến biên tập viên tồn tại giữa biên tập viên Vi và Emacs. Vì vậy, Bram đã triển khai rất nhiều tính năng còn thiếu mà cộng đồng Emacs sử dụng làm lý lẽ cho việc tại sao Emacs tốt hơn Vi / Vim.

Vim là gói nhẹ và cài đặt của nó thực sự đơn giản. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Cài đặt trên nền tảng Windows
  • Cài đặt trên Linux dựa trên Debian
  • Cài đặt trên Linux dựa trên RPM

Cài đặt trên nền tảng Windows

Vim không có bất kỳ yêu cầu cụ thể nào. Nó là gói phần mềm đơn giản cung cấp tất cả các phụ thuộc.

Cài đặt

  • Để tải xuống Vim, hãy truy cập vim.org

  • Nhấp vào tùy chọn Tải xuống từ khung bên trái

  • Nhấp vào tùy chọn PC - MS-DOS và MS-Windows

  • Tải xuống trình cài đặt .exe từ trang này. Tại thời điểm viết bài hướng dẫn này, tên trình cài đặt là gvim80.exe

  • Nhấp đúp vào trình cài đặt và làm theo hướng dẫn trên màn hình để hoàn tất cài đặt

Cấu hình

Vim lưu trữ cấu hình của nó trong một tệp văn bản đơn giản là _vimrc và nó nằm trong thư mục chính của người dùng.

  • Để tìm thư mục chính của người dùng hiện tại, hãy thực hiện lệnh dưới đây trong terminal -

$ echo %userprofile%
  • Điều hướng đến thư mục chính và tạo một tệp mới có tên là _vimrc. Đảm bảo rằng tệp này không có bất kỳ phần mở rộng nào.

  • Mở tệp này trong trình soạn thảo văn bản, nhập văn bản sau và lưu nó -

set nu
  • Bây giờ Vim sẽ hiển thị số dòng khi tệp được mở. Chúng tôi sẽ thêm nhiều tùy chọn hơn vào tệp này sau này.

Cài đặt trên Linux dựa trên Debian

Cài đặt trên nền tảng Linux khá đơn giản so với Windows. Phần này mô tả cài đặt và cấu hình trên Linux dựa trên Debian.

Cài đặt

  • Thực hiện lệnh dưới đây trong terminal -

$ sudo apt-get update 
$ sudo apt-get install vim
  • Để đảm bảo Vim được cài đặt chính xác, hãy thực hiện lệnh dưới đây:

$ which vim
  • Nó sẽ in vị trí của Vim nhị phân. Trong trường hợp của tôi, đó là -

/usr/bin/vim

Cấu hình

Vim lưu trữ cấu hình của nó trong một tệp văn bản đơn giản là .vimrc và nó nằm trong thư mục chính của người dùng.

  • Để tìm thư mục chính của người dùng hiện tại, hãy thực hiện lệnh dưới đây trong terminal -

$ echo $HOME
  • Điều hướng đến thư mục chính và tạo một tệp mới là .vimrc. Đảm bảo rằng tệp này không có bất kỳ phần mở rộng nào.

  • Mở tệp này trong trình soạn thảo văn bản, nhập văn bản sau và lưu nó -

set nu
  • Bây giờ Vim sẽ hiển thị số dòng khi tệp được mở. Chúng tôi sẽ thêm nhiều tùy chọn hơn vào tệp này sau này.

Cài đặt trên Linux dựa trên RPM

Phần này mô tả cài đặt và cấu hình trên Linux dựa trên RPM.

Cài đặt

  • Thực hiện lệnh dưới đây trong terminal -

$ su - $ yum install vim
  • Để đảm bảo Vim được cài đặt chính xác, hãy thực hiện lệnh dưới đây:

$ which vim
  • Nó sẽ in vị trí của Vim nhị phân. Trong trường hợp của tôi, đó là -

/usr/bin/vim

Cấu hình

Vim lưu trữ cấu hình của nó trong một tệp văn bản đơn giản là .vimrc và nó nằm trong thư mục chính của người dùng.

  • Để tìm thư mục chính của người dùng hiện tại, hãy thực hiện lệnh dưới đây trong terminal -

$ echo $HOME
  • Điều hướng đến thư mục chính và tạo một tệp mới là .vimrc. Đảm bảo rằng tệp này không có bất kỳ phần mở rộng nào.

  • Mở tệp này trong trình soạn thảo văn bản, nhập văn bản sau và lưu nó -

set nu
  • Bây giờ Vim sẽ hiển thị số dòng khi tệp được mở. Chúng tôi sẽ thêm nhiều tùy chọn hơn vào tệp này sau này.

Vim là bản sao của biên tập viên Vi gốc. Trong chương này, chúng ta sẽ thảo luận về các dòng Vi khác. Mục đích chính của chương này để biết các bản sao khác và khả năng tương thích của nó với trình soạn thảo gốc Vi.

Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Vi
  • Stevie
  • Elvis
  • nvi
  • vile
  • Khả năng tương thích với Vi gốc

Vi

Vi là từ viết tắt của Visual. Nó là trình soạn thảo văn bản hướng màn hình ban đầu được tạo cho UNIX. Mã gốc của Vi được viết bởi Bill Joy vào năm 1976 và được phát hành lần đầu tiên trên nền tảng BSD. Vi là phần mở rộng của biên tập viên phổ biến nhất vào thời điểm đó.

Vim là trình soạn thảo đầu tiên giới thiệu nhiều chế độ. Có một chế độ riêng để soạn thảo văn bản, chọn văn bản và thực hiện lệnh. Vim editor hỗ trợ tất cả các chế độ này. Các phần sau của hướng dẫn này mô tả các chế độ này.

Stevie

Trình soạn thảo Stevie được phát triển cho nền tảng Atari ST. Nó được phát hành vào năm 1987, nó là viết tắt của ST Editor cho VI nhiệt tình.

Nó rất đơn giản và chỉ cung cấp một tập con rất nhỏ của trình soạn thảo Vi gốc. Tuy nhiên, nó cung cấp môi trường quen thuộc cho người dùng di chuyển trên nền tảng Atari ST.

Elvis

Ý định chính của Elvis là loại bỏ giới hạn của trình biên tập Stevie. Stevie từng tải toàn bộ tệp trong RAM, Elvis đã loại bỏ hạn chế này bằng cách giới thiệu bộ đệm. Ngoài ra, nó đã thêm một số chức năng vào nó như đánh dấu cú pháp, hỗ trợ nhiều cửa sổ, hỗ trợ mạng và GUI đơn giản.

nvi

nvi là viết tắt của Vi mới. Đó là kết quả của tranh chấp giấy phép giữa phòng thí nghiệm AT&T và Nhóm Nghiên cứu Khoa học Máy tính (CSRC) tại trường đại học California, Berkeley. Vi dựa trên biên tập viên ed và theo giấy phép của AT&T, điều này đã hạn chế họ phân phối Vi với BDS. Do đó, họ đã viết lại Vi và phát hành nó theo giấy phép BSD.

Vim

Vim là phiên bản cải tiến của Vi và nó được bổ sung nhiều tính năng mà Vi đã bị tụt hậu. Nó đã thêm nhiều tính năng hữu ích như -

  • Nhiều cửa sổ / tab / bộ đệm
  • Giới thiệu ngôn ngữ kịch bản Vim
  • Đánh dấu cú pháp cho hơn 200 ngôn ngữ
  • Tích hợp với trình biên dịch, trình thông dịch và trình gỡ lỗi

Hèn hạ

Vile là một từ viết tắt của Vi như Emacs và đó là một nỗ lực để mang các tính năng phổ biến từ cả hai trình soạn thảo và kết hợp nó thành một. Một số tính năng phổ biến của Vile là -

  • Một chế độ chỉnh sửa cho mỗi loại tệp
  • Giới thiệu ngôn ngữ thủ tục Vile
  • Các chức năng được đặt tên cho các phím liên kết theo sự lựa chọn của người dùng

Khả năng tương thích với Vioriginal Vi

Mặc dù các trình biên tập đã thảo luận ở trên được coi là bản sao Vi, chúng không tương thích 100% với Vi gốc. Bảng dưới đây hiển thị thêm chi tiết về khả năng tương thích của chúng -

Nhân bản Vi tương thích Ghi chú
STEVIE 10% Các tính năng hạn chế là phổ biến
Hèn hạ 10% Các tính năng hạn chế và chế độ Vi là phổ biến
Elvis 80% Các tính năng lớn hơn là phổ biến
nvi 95% Các tính năng lớn hơn là phổ biến
Vim 99% Gần giống với Vi với một số tính năng bổ sung

Bắt đầu với phần này, chúng ta sẽ làm bẩn tay với Vim. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Bắt đầu Vim

  • Chế độ Vim

  • Tạo tệp mới

  • Xem tệp ở chế độ chỉ đọc

  • Chỉnh sửa tệp hiện có

Bắt đầu Vim

Vim hơi khác một chút so với trình soạn thảo dựa trên GUI ngày nay. Nó có thể được khởi động và sử dụng từ GUI cũng như thiết bị đầu cuối.

Sử dụng trình khởi chạy đồ họa

  • Để bắt đầu Vim từ trình khởi chạy đồ họa, chỉ cần nhấp đúp vào biểu tượng gVim. Nó sẽ mở cửa sổ soạn thảo như sau:

Sử dụng thiết bị đầu cuối

Việc sử dụng Vim từ terminal sẽ giống hệt nhau trên nền tảng Windows cũng như Linux. Thực hiện các bước sau để bắt đầu và thoát Vim khỏi thiết bị đầu cuối -

  • Mở terminal và nhập lệnh vim như sau:

$ vim
  • Nó sẽ mở Vim trong thiết bị đầu cuối như sau:

  • Để đóng điều này, hãy nhấn phím Esc trước dấu hai chấm (:) và q. Trong Vim q lệnh là viết tắt của từ bỏ. Lệnh này sẽ được hiển thị ở góc dưới cùng bên trái của chính trình soạn thảo -

Chế độ Vim

Vim hỗ trợ nhiều chế độ. Phần này thảo luận về một số chế độ quan trọng sẽ được sử dụng hàng ngày.

Chế độ lệnh

Đây là chế độ mặc định mà Vim khởi động. Chúng ta có thể nhập các lệnh của trình soạn thảo trong chế độ này. Chúng ta có thể sử dụng nhiều lệnh trong chế độ này như sao chép, dán, xóa, thay thế và nhiều lệnh khác. Chúng ta sẽ thảo luận về các lệnh này trong các phần sau.

NOTE − Here onwards, any Vim command without colon indicates that we are executing that command in command mode.

Chèn chế độ

Bạn có thể sử dụng chế độ này để nhập / chỉnh sửa văn bản. Để chuyển từ lệnh mặc định sang chế độ chèn, hãy nhấn phím i. Nó sẽ hiển thị chế độ hiện tại ở góc dưới cùng bên trái của trình chỉnh sửa.

Chúng tôi có thể nhập bất kỳ văn bản nào khi chúng tôi ở chế độ chèn. Hình ảnh dưới đây cho thấy điều này -

Sử dụng phím Escape để chuyển về chế độ lệnh từ chế độ này.

Chế độ dòng lệnh

Chế độ này cũng được sử dụng để nhập lệnh. Các lệnh trong chế độ này bắt đầu bằng dấu hai chấm (:). Ví dụ, trong phần trước lệnh thoát đã được nhập trong chế độ này. Chúng ta có thể chuyển đến chế độ này từ lệnh hoặc chế độ chèn.

  • Để chuyển từ chế độ lệnh sang chế độ này, chỉ cần gõ dấu hai chấm

  • Để chuyển từ chế độ chèn sang chế độ này, nhấn Escape và gõ dấu hai chấm

Trong hình ảnh bên dưới dấu hai chấm ở dưới cùng bên trái cho biết chế độ dòng.

NOTE − Here onwards, any Vim command starting with colon indicates that we are executing that command in command line mode.

Chế độ trực quan

Trong chế độ này, chúng ta có thể chọn văn bản và chạy lệnh trên các phần đã chọn một cách trực quan.

  • Để chuyển từ chế độ lệnh sang chế độ trực quan, hãy nhập v

  • Để chuyển từ bất kỳ chế độ nào khác sang chế độ trực quan, trước tiên hãy chuyển về chế độ lệnh bằng cách nhấn Escape, sau đó gõ v để chuyển sang chế độ trực quan

Ở góc dưới cùng bên trái của hình ảnh hiển thị chế độ trực quan.

Tạo tệp mới

Thực hiện các bước dưới đây để tạo và lưu tệp mới -

  • Thực hiện lệnh sau để mở Vim

$ vim
  • Gõ lệnh sau trong Vim

:edit message.txt

    Nó sẽ tải lại tệp nếu, nó đã tồn tại

  • Chuyển sang chế độ chèn

i
  • Nhập một số văn bản

  • Chuyển về chế độ lệnh

Esc
  • Lưu các thay đổi vào tệp

:w

Bây giờ tệp tin message.txt sẽ được tạo.

  • Thoát Vim

:q

Mở tệp ở chế độ chỉ đọc

Sử dụng tùy chọn –R để mở tệp ở chế độ chỉ đọc

$ vim -R message.txt

Ở góc dưới cùng bên trái của hình ảnh hiển thị chế độ chỉ đọc -

Ngoài ra, bạn có thể sử dụng lệnh view để đạt được kết quả tương tự.

$ view message.txt

Chỉnh sửa tệp hiện có

Thực hiện các bước dưới đây để chỉnh sửa tệp hiện có -

  • Mở tệp bằng Vim

$ vim message.txt
  • Chuyển sang chế độ chèn và nhập một số văn bản vào đó.

i
  • Thoát trình chỉnh sửa mà không lưu thay đổi

:q!

    HOẶC LÀ

  • Lưu các thay đổi và thoát khỏi trình chỉnh sửa bằng lệnh sau:

:wq

Vim là trình soạn thảo giàu tính năng do đó việc ghi nhớ mọi thứ về nó sẽ khó khăn. Nhưng không cần lo lắng, chúng ta luôn có thể yêu cầu giúp đỡ. May mắn thay, sự trợ giúp này được cung cấp bởi chính Vim.

Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Truy cập hướng dẫn trợ giúp
  • Trợ giúp về chủ đề cụ thể
  • Tìm kiếm cụm từ trợ giúp trong thủ công
  • Truy cập trợ giúp trực tuyến

Truy cập hướng dẫn trợ giúp

Sách hướng dẫn trợ giúp được cung cấp cùng với trình soạn thảo Vim và nó thực sự toàn diện. Để truy cập trợ giúp, hãy thực hiện lệnh dưới đây -

:help

Trợ giúp về chủ đề cụ thể

Hướng dẫn trợ giúp sẽ hiển thị toàn bộ trợ giúp về Vim. Nhưng nếu chúng ta chỉ quan tâm đến một số chủ đề nhất định thì sao. Vim cũng cung cấp lệnh cho điều đó với cú pháp sau

:help <topic-name>

Trong lệnh trên, hãy thay thế <topic-name> bằng chủ đề mà bạn quan tâm. Forinstance để truy cập trợ giúp về chế độ vim, thực hiện lệnh sau

:help modes

Tìm kiếm cụm từ trợ giúp trong thủ công

Bạn chỉ có thể tìm kiếm chủ đề cụ thể nếu bạn biết tên của nó. Nhưng nếu bạn không biết tên chính xác của chủ đề trợ giúp thì sao. Trong trường hợp đó, bạn có thể sử dụng lệnh dưới đây:

:helpgrep <phrase>

Ví dụ, để truy cập trợ giúp về điều hướng trong Vim, hãy thực hiện lệnh dưới đây

:helpgrep navigation

Truy cập trợ giúp trực tuyến

Vim cũng cung cấp trợ giúp trực tuyến. Để truy cập trợ giúp trực tuyến -

  • Truy cập URL vim-help

  • Ngoài ra, bạn cũng có thể tham khảo tài liệu vim-docs

Vim cung cấp nhiều lệnh làm cho chức năng chỉnh sửa thực sự mạnh mẽ. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Insert
  • Append
  • Mở dòng mới
  • Substitute
  • Change
  • Replace
  • Join

Chèn văn bản trước con trỏ

Để chèn văn bản trước khi con trỏ, hãy thực hiện các bước sau:

  • Để chèn văn bản trước khi con trỏ thực hiện các bước sau
  • Chuyển sang chế độ chèn
i

Chèn văn bản vào đầu dòng

Giả sử bạn đang ở giữa dòng và bạn muốn chèn văn bản vào đầu dòng hiện tại, sau đó thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Kích hoạt chế độ chèn
I

Hành động này sẽ di chuyển con trỏ đến đầu dòng hiện tại và chuyển Vim ở chế độ chèn

Nối văn bản sau con trỏ

Để nối văn bản sau con trỏ, hãy thực hiện các bước sau

  • Chuyển sang chế độ lệnh và di chuyển con trỏ đến vị trí thích hợp
Esc
  • Chuyển sang chế độ chèn
a

Hành động này sẽ di chuyển con trỏ tiếp theo theo một vị trí và chuyển Vim ở chế độ chèn.

Nối văn bản vào cuối dòng

Giả sử bạn đang ở giữa dòng và bạn muốn nối văn bản vào cuối dòng hiện tại, sau đó thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Chuyển sang chế độ chèn
A

Hành động này sẽ di chuyển con trỏ đến cuối dòng và chuyển Vim ở chế độ chèn

Mở dòng mới bên dưới con trỏ

Giả sử bạn đang ở giữa dòng và bạn muốn mở dòng mới bên dưới dòng hiện tại, sau đó thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Chuyển sang chế độ chèn
o

Hành động này sẽ chèn dòng trống bên dưới dòng hiện tại và chuyển Vim ở chế độ chèn

Mở dòng mới phía trên con trỏ

Giả sử bạn đang ở giữa dòng và bạn muốn mở dòng mới phía trên dòng hiện tại, sau đó thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Chuyển sang chế độ chèn
o

Hành động này sẽ chèn dòng trống phía trên dòng hiện tại và chuyển Vim ở chế độ chèn

Văn bản thay thế

Giả sử bạn muốn thay thế một ký tự, sau đó thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Di chuyển con trỏ đến vị trí thích hợp
  • Chuyển sang chế độ chèn
s

Hành động này sẽ xóa ký tự dưới con trỏ và chuyển Vim ở chế độ chèn Để thay thế toàn bộ dòng sử dụng -

s

Hành động này sẽ xóa toàn bộ dòng và chuyển Vim ở chế độ chèn.

Thay đổi văn bản

Giả sử bạn muốn thay đổi văn bản trong dòng hiện tại, sau đó thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Thực hiện lệnh sau -
cc

Điều này tương tự với hành động thay thế bằng cách sử dụng S

Để thay đổi văn bản từ vị trí con trỏ hiện tại, hãy thực hiện lệnh sau

C

Hành động này sẽ xóa văn bản sau vị trí con trỏ hiện tại và chuyển Vim ở chế độ chèn.

Thay thế văn bản

Để thay thế một ký tự, hãy thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Di chuyển con trỏ đến vị trí thích hợp
  • Thực hiện lệnh sau -
r
  • Nhập ký tự được thay thế.

Lưu ý rằng lệnh này sẽ không chuyển Vim trong chế độ chèn

Để thay thế toàn bộ dòng, hãy thực hiện -

R

Nó sẽ chuyển Vim ở chế độ thay thế như trong hình dưới đây -

Nối văn bản

Để nối hai dòng thực hiện các bước sau:

  • Chuyển sang chế độ lệnh
Esc
  • Di chuyển con trỏ đến dòng thích hợp
  • Thực hiện lệnh sau -
J

Vim có hỗ trợ tuyệt vời cho điều hướng nâng cao. Trong chương này, chúng ta sẽ thảo luận về một số kỹ thuật điều hướng phổ biến giúp cải thiện năng suất.

Điều hướng cơ bản

Trong điều hướng cơ bản, chúng ta có thể điều hướng sang trái, phải, lên và xuống theo vị trí. Các lệnh dưới đây có thể được sử dụng cho việc này:

Sr.No Lệnh & Mô tả
1 h

Di chuyển con trỏ sang trái theo một vị trí

2 l

Di chuyển con trỏ sang phải theo một vị trí

3 k

Di chuyển con trỏ theo hướng lên trên một dòng

4 j

Di chuyển con trỏ theo hướng xuống dưới một dòng

Để thực hiện điều hướng nhiều vị trí, hãy sử dụng số với các lệnh này. Ví dụ để điều hướng con trỏ 10 dòng bên dưới từ dòng hiện tại, hãy thực hiện lệnh sau:

10j

Bạn cũng có thể sử dụng số với các lệnh còn lại.

Ngoài ra, các lệnh dưới đây cũng thực hiện một số điều hướng hữu ích.

Sr.No Lệnh & Mô tả
1 0

Di chuyển con trỏ đến đầu dòng hiện tại

2 $

Di chuyển con trỏ đến cuối dòng hiện tại

3 Ctrl + f

Cuộn xuống toàn bộ trang

4 Ctrl + b

Cuộn lên toàn bộ trang

Điều hướng đến các dòng

Lệnh dưới đây có thể được sử dụng để điều hướng đến dòng cụ thể -

Sr.No Lệnh & Mô tả
1 :n

Chuyển đến dòng thứ n

2 :0

Chuyển đến đầu tệp

3 :$

Chuyển đến cuối tệp

Điều hướng từ

Chúng ta có thể sử dụng các lệnh sau để điều hướng từ:

Sr.No Lệnh & Mô tả
1 w

Di chuyển con trỏ đến đầu từ tiếp theo

2 e

Di chuyển con trỏ đến cuối từ hiện tại

3 b

Di chuyển con trỏ đến đầu từ trước đó

Sử dụng bước nhảy

Vim theo dõi điều hướng của bạn bằng cách sử dụng danh sách nhảy. Bạn có thể đi lùi và chuyển tiếp qua danh sách đó.

Danh sách nhảy theo dõi tất cả những nơi bạn đã đến bằng cách theo dõi tên tệp, số dòng và số cột.

Để xem danh sách nhảy, hãy thực hiện lệnh sau:

:jumps

Lệnh sau dựa trên danh sách nhảy:

Sr.No Lệnh & Mô tả
1 Ctrl + o

Quay lại vị trí cũ

2 Ctrl + i

Chuyển đến vị trí tiếp theo

Chúng tôi đã thấy chỉnh sửa cơ bản trước đó. Hãy để chúng tôi hiểu một số tính năng chỉnh sửa khác của Vim. Trong phần này, chúng ta sẽ thảo luận về các mục sau:

  • Buffer
  • Trao đổi tệp
  • Các hành động cắt, sao chép, xóa, dán
  • Hoàn tác và làm lại các hành động

Đệm

Bộ đệm là bộ nhớ tạm thời được Vim sử dụng. Khi chúng tôi mở một tệp trong trình soạn thảo, Vim sẽ tải nội dung của nó từ ổ đĩa. Những nội dung này được lưu trữ trong bộ nhớ (RAM) bất cứ khi nào chúng tôi chỉnh sửa tệp, chúng tôi thực sự đang chỉnh sửa tệp từ bộ đệm. Khi chúng tôi hoàn tất việc chỉnh sửa và lưu tệp, thời gian đó chỉ nội dung bộ đệm được chuyển sang tệp thích hợp.

Hoán đổi

Vùng hoán đổi là một tập tin do Vim tạo ra để lưu trữ nội dung bộ đệm theo định kỳ. Trong khi chỉnh sửa tệp, các thay đổi của chúng tôi có thể bị mất vì bất kỳ lý do nào và Vim cung cấp tệp hoán đổi để khôi phục dữ liệu.

Để lấy tên thực của tệp hoán đổi, hãy thực hiện lệnh sau:

:swapname

Ví dụ trong trường hợp của tôi tên là message.txt.swp như hiển thị trong hình ảnh bên dưới -

Các hành động cắt, sao chép và dán

Chúng ta thường thực hiện các thao tác cắt, sao chép và dán trên văn bản. Vim cung cấp các lệnh sau để thực hiện các hành động này (y là viết tắt của yank và p là viết tắt của hành động dán) -

Sr.No Lệnh & Mô tả
1 x

Xóa ký tự khỏi vị trí con trỏ

2 X

Xóa ký tự trước đó khỏi vị trí con trỏ

3 y

Sao chép một ký tự từ vị trí con trỏ

4 p

Dán ký tự sau vị trí con trỏ

5 P

Dán ký tự trước vị trí con trỏ

Lệnh đa vị trí

Chúng ta cũng có thể sử dụng các lệnh cắt, sao chép và dán với các từ và câu. Bảng dưới đây cho thấy điều này -

Sr.No Lệnh & Mô tả
1 dw

Xóa từ khỏi vị trí con trỏ

2 D

Xóa toàn bộ dòng khỏi vị trí con trỏ

3 dd

Xóa toàn bộ dòng

4 Y

Sao chép toàn bộ dòng

5 yy

Sao chép toàn bộ dòng

Để thực hiện các hành động nhiều dòng / nhiều từ chỉ cần sử dụng các số với lệnh. Bạn cũng có thể sử dụng cú pháp này với các lệnh khác. Ví dụ, để xóa 3 từ sử dụng -

3dw

Hoàn tác

Chúng tôi có thể hoàn tác một hoặc nhiều hành động. Để thực hiện hành động hoàn tác một lần, hãy thực hiện -

u

Để thực hiện nhiều hành động hoàn tác, hãy sử dụng số với cùng một lệnh. Ví dụ: lệnh dưới đây sẽ hoàn tác 3 hành động cuối cùng:

3u

Ngoài ra, để hoàn tác tất cả thực thi lệnh sau:

U

Làm lại

Làm lại là hành động tổng hợp của hoàn tác. Thực thi bất kỳ lệnh nào để thực hiện hành động làm lại.

Ctrl + r
OR
: red

Tìm kiếm là hành động rất phổ biến và đó là một trong những hành động chúng tôi sử dụng hầu hết thời gian. Trong chương này, chúng ta sẽ thấy một số lệnh cho phép thực hiện các hành động này một cách hiệu quả.

Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Thiết lập tìm kiếm
  • Tìm kiếm trong tệp hiện tại
  • Tìm kiếm trong nhiều tệp
  • Tìm kiếm trong tệp trợ giúp

Tìm kiếm cài đặt liên quan

Để thực hiện tìm kiếm gia tăng, hãy thực hiện lệnh sau:

:set incsearch

Để đánh dấu tìm kiếm, hãy thực hiện lệnh sau:

:set hlsearch

Lệnh này sẽ tự động đánh dấu các kết quả phù hợp hiện tại. Ví dụ trong hình ảnh dưới đây, từ cáo được tô sáng -

Để tắt tìm kiếm gia tăng và được đánh dấu, hãy thực hiện các lệnh sau:

:set noincsearch
:set nohlsearch

Tìm kiếm trong tệp hiện tại

Tìm kiếm theo hướng phía trước

Sử dụng các lệnh sau để thực hiện tìm kiếm theo hướng về phía trước -

Sr.No Lệnh & Mô tả
1 /<expression>

Tìm kiếm biểu thức theo hướng chuyển tiếp

2 n

Tìm lần xuất hiện tiếp theo. Điều này giống nhau và tìm tiếp theo

3 N

Tìm lần xuất hiện trước đó. Điều này giống như tìm trước

4 //

Lặp lại tìm kiếm chuyển tiếp trước đó

Tìm kiếm theo hướng ngược lại

Sử dụng các lệnh sau để thực hiện tìm kiếm theo hướng ngược lại

Sr.No Lệnh & Mô tả
1 ?<expression>

Biểu thức tìm kiếm theo hướng ngược lại

2 n

Tìm lần xuất hiện trước đó. Cái này giống nhau và tìm cái trước

3 N

Tìm lần xuất hiện tiếp theo. Điều này giống như tìm tiếp theo

4 ??

Lặp lại tìm kiếm ngược trước đó

Tìm kiếm từ dưới con trỏ

Đặt con trỏ dưới bất kỳ từ nào và thực hiện các lệnh sau để thực hiện thao tác tìm kiếm -

Sr.No Lệnh & Mô tả
1 *

Tìm kiếm lần xuất hiện tiếp theo của từ hiện tại

2 #

Tìm kiếm lần xuất hiện trước của từ hiện tại

Tìm kiếm trong nhiều tệp

Sử dụng lệnh vimgrep, chúng ta có thể tìm kiếm <expression> trong nhiều tệp. Ví dụ dưới đây chuỗi tìm kiếm lệnh -Jarvis trong tất cả các tệp văn bản.

:vimgrep Jarvis *.txt

Lưu ý rằng để chuyển đến lần xuất hiện tiếp theo và lần xuất hiện trước đó, chúng ta phải sử dụng các lệnh sau:

Sr.No Lệnh & Mô tả
1 :cn

Chuyển đến lần xuất hiện tiếp theo của biểu thức

2 :cN

Chuyển đến lần xuất hiện trước của biểu thức

Vim là trình soạn thảo rất mạnh mẽ. Nó hỗ trợ nhiều tính năng nâng cao để làm việc với nhiều tệp, bộ đệm và cửa sổ. Trong phần này, chúng ta sẽ thảo luận về các mục sau:

  • Nhiều tệp
  • Nhiều bộ đệm
  • Nhiều tab
  • Nhiều cửa sổ

Nhiều tệp

Giả sử bạn đang chỉnh sửa một tệp và bạn muốn mở một tệp khác trong cùng một phiên Vim. Trong trường hợp đó, bạn có thể sử dụng lệnh chỉnh sửa của Vim. Bảng dưới đây hiển thị các lệnh này

Sr.No Lệnh & Mô tả
1 :e

Tải tệp mới vào bộ đệm để chỉnh sửa

2 :edit

Giống như: e

3 :e <tab>

Liệt kê các tệp để chỉnh sửa từ thư mục hiện tại

4 :edit <tab>

Giống như: e <tab>

Nhiều bộ đệm

Chúng ta đã biết bộ đệm Vim là gì. Vim hỗ trợ nhiều bộ đệm. Các lệnh dưới đây sẽ hữu ích sẽ hoạt động với bộ đệm -

Sr.No Lệnh & Mô tả
1 :badd <file>

Thêm tệp vào bộ đệm mới

2 :bN

Chuyển sang bộ đệm thứ N. Ví dụ để chuyển sang sử dụng bộ đệm thứ 3: b3

3 :bnext

Di chuyển đến bộ đệm tiếp theo trong danh sách bộ đệm

4 :bprevious

Di chuyển đến bộ đệm trước đó trong danh sách bộ đệm

5 :buffers

Liệt kê tất cả các bộ đệm

6 :bfirst

Di chuyển đến vùng đệm đầu tiên

7 :blast

Di chuyển đến vùng đệm cuối cùng

số 8 :ball

Tải tất cả các bộ đệm

Ví dụ: lệnh dưới đây thêm tệp mới vào bộ đệm -

Bây giờ, có hai tệp trong bộ đệm. Thực thi lệnh dưới đây để hiển thị điều này -

:buffers

Nó sẽ hiển thị đầu ra sau:

Nhiều tab

Giống như các trình soạn thảo khác, chúng tôi cũng có thể mở nhiều tab trong Vim. Bảng dưới đây mô tả các lệnh liên quan đến tab -

Sr.No Lệnh & Mô tả
1 :tabnew

Mở tab mới

2 :tabnew <file>

Mở tệp mới trong tab

3 :tabclose

Đóng tab hiện tại

4 :tabnext

Chuyển sang tab tiếp theo

5 :tabprevious

Di chuyển đến tab trước

6 :tabfirst

Di chuyển đến tab đầu tiên

7 :tablast

Di chuyển đến tab cuối cùng

Ví dụ: hình ảnh bên dưới hiển thị nhiều tab

Nhiều cửa sổ

Trong Vim, chúng ta có thể tạo cửa sổ mới bằng các lệnh sau:

Sr.No Lệnh & Mô tả
1 :new <file>

Mở cửa sổ mới

2 :new <file>

Mở tệp trong cửa sổ mới

Trong hình ảnh dưới đây, chúng ta có thể thấy rằng cửa sổ Vim hiện tại được chia thành 2 phần sau khi thực hiện các lệnh sau:

$vim message.txt
:new

Vim hỗ trợ tính năng đánh dấu trang. Sử dụng tính năng này, chúng tôi có thể làm cho việc điều hướng trong tệp thực sự nhanh hơn. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Tạo dấu trang
  • Chuyển đến dấu trang
  • Liệt kê tất cả các dấu trang
  • Xóa dấu trang
  • Dấu trang cục bộ
  • Dấu trang chung

Tạo dấu trang

Để tạo dấu trang, hãy thực hiện lệnh sau:

m{bookmark-name}

Trong ví dụ trên, bookmark-name là một ký tự chữ cái. Ví dụ, lệnh dưới đây tạo dấu trang của tên a.

ma

Chuyển đến dấu trang

Sau khi bookmark được tạo, chúng ta có thể chuyển đến đó. Lệnh sau có thể được sử dụng để chuyển đến bookmark -

Sr.No Lệnh & Mô tả
1 `{bookmark-name}

Di chuyển đến vị trí chính xác của dấu trang. Xin lưu ý rằng nhân vật này là dấu ngoặc kép

2 ‘{bookmark-name}

Chuyển đến đầu dòng đánh dấu. Xin lưu ý rằng ký tự này là một trích dẫn duy nhất

Liệt kê tất cả các dấu trang

Để liệt kê tất cả các dấu trang, hãy thực hiện lệnh sau:

:marks

Trong hình ảnh dưới đây, nó hiển thị danh sách các dấu trang cho tệp hiện tại

Xóa dấu trang

Để xóa dấu trang, hãy thực hiện lệnh sau:

:delmarks {bookmark-name}

Ví dụ, bên dưới lệnh xóa dấu trang có tên a.

:delmarks a

Dấu trang cục bộ và dấu trang toàn cầu

Khi bạn mở nhiều tệp và nếu bạn muốn chuyển đến một vị trí cụ thể trong bất kỳ tệp nào đang mở, thì bạn có thể sử dụng tính năng đánh dấu toàn cục của Vim.

Nếu tên dấu trang là một chữ cái viết hoa thì đó là Dấu trang chung. Các lệnh đã thảo luận ở trên có thể áp dụng cho cả dấu trang cục bộ và dấu trang chung.

Macro là tính năng ghi và phát. Khi điều này được kết hợp với các lệnh Vim, nó sẽ trở thành sự kết hợp thực sự mạnh mẽ. Trong phần này, chúng ta sẽ thảo luận về các mục sau:

  • Bắt đầu ghi âm
  • Thực hiện các hành động Vim
  • Dừng ghi
  • Phát ghi âm

Bắt đầu ghi âm

Để bắt đầu ghi, nhấn q, theo sau bởi bất kỳ chữ cái thường nào làm tên macro. Ví dụ trong ví dụ dưới đây, tôi đã sử dụng “a” làm tên macro

Thực hiện các hành động Vim

Trong bước này, bạn có thể thực hiện bất kỳ hành động Vim nào như: cắt, sao chép, xóa, thay thế, v.v. Bạn có thể xem các hành động này bằng cách thực hiện lệnh sau:

:registers

Ví dụ: lệnh dưới đây cho thấy rằng các hành động kéo và xóa đã được thực hiện:

Dừng ghi

Sau khi bạn thực hiện xong các thao tác, nhấn q một lần nữa để dừng ghi. Bây giờ chế độ ghi sẽ biến mất như hình dưới đây -

Chơi

Để chơi thực hiện lệnh dưới đây -

@{macro-name}

Ví dụ: để thực thi macro “a”, hãy thực hiện lệnh dưới đây:

@a

Để chơi cùng một macro nhiều lần, hãy sử dụng các số với nó. Ví dụ, để thực hiện cùng một macro 10 lần, hãy thực hiện lệnh sau:

10@a

Vim cung cấp nhiều thanh ghi. Chúng ta có thể sử dụng các thanh ghi này như nhiều khay nhớ tạm. Tính năng này thực sự hữu ích khi làm việc với nhiều tệp. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Sao chép văn bản trong sổ đăng ký
  • Dán văn bản từ đăng ký
  • Liệt kê các đăng ký có sẵn
  • Đăng ký các loại

Sao chép văn bản trong sổ đăng ký

Để sao chép, chúng ta có thể sử dụng lệnh yank bình thường tức là yy và để lưu trữ nó trong thanh ghi, chúng ta có thể sử dụng cú pháp sau:

“<register-name><command>

Ví dụ, để sao chép văn bản trong thanh ghi “a”, hãy sử dụng lệnh sau:

“ayy

Dán văn bản từ đăng ký

Để dán văn bản từ đăng ký sử dụng -

“<register-name>p

Ví dụ: lệnh dưới đây sao chép văn bản từ thanh ghi “a” -

“ap

Liệt kê các đăng ký có sẵn

Để liệt kê tất cả các thanh ghi có sẵn, hãy sử dụng lệnh sau

:registers

Đăng ký các loại

Vim hỗ trợ các loại thanh ghi sau:

Sổ đăng ký không tên

Thanh ghi không tên được ký hiệu là “”. Vim lưu trữ văn bản đã xóa hoặc sao chép trong sổ đăng ký này

Sổ đăng ký được đặt tên

Chúng ta có thể sử dụng 26 thanh ghi được đặt tên; chúng ta có thể sử dụng az hoặc AZ. Theo mặc định, vim không sử dụng các thanh ghi này.

Nếu chúng ta sử dụng tên thanh ghi viết thường thì nội dung sẽ bị ghi đè và nếu chúng ta sử dụng tên viết hoa thì nội dung sẽ được thêm vào thanh ghi đó.

Đăng ký được đánh số

Chúng ta có thể sử dụng 0 đến 9 thanh ghi được đặt tên. Vim điền vào các thanh ghi này bằng văn bản từ lệnh yank and delete.

  • Thanh ghi được đánh số 0 chứa văn bản từ lệnh yank gần đây nhất.
  • Thanh ghi được đánh số 1 chứa văn bản bị xóa bởi lệnh xóa hoặc thay đổi gần đây nhất

Đăng ký mặc định

Sau đây là các đăng ký mặc định:

Sr.No Đăng ký & Mô tả
1 %

Tên của tệp hiện tại

2 #

Tên của tệp thay thế cho cửa sổ hiện tại

3 :

Lệnh được thực hiện gần đây nhất

4 .

Chứa văn bản được chèn cuối cùng

5

Đăng ký sử dụng lần cuối

Chức năng gấp sẽ hữu ích khi tệp có nội dung văn bản lớn. Sử dụng tính năng này, chúng tôi chỉ có thể hiển thị lọ thuốc đã chọn. Tính năng này đặc biệt hữu ích khi làm việc với các ngôn ngữ lập trình. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Kích hoạt và hủy kích hoạt chức năng màn hình đầu tiên
  • Các hành động gấp khác nhau

Kích hoạt và hủy kích hoạt gấp

Để kích hoạt màn hình gấp, sử dụng lệnh sau:

:set foldenable 
:set foldmethod = indent

Để hủy kích hoạt màn hình đầu tiên, hãy sử dụng lệnh sau

:set nofoldenable

Hành động gấp

Đóng gấp

Để gấp mã, hãy chuyển đến bất kỳ phương thức nào và thực hiện lệnh sau:

zc

Ví dụ bên dưới hình ảnh hiển thị kết quả của hành động này -

Mở gấp

Để mở màn hình đầu tiên, hãy sử dụng lệnh sau:

zo

Hình ảnh dưới đây cho thấy kết quả của hành động này -

Đóng tất cả các nếp gấp

Để đóng tất cả các nếp gấp, hãy thực hiện lệnh sau

zM

Hình ảnh dưới đây cho thấy kết quả của hành động này

Mở ra tất cả

Để mở ra, tất cả hãy thực hiện theo sau:

zR

Hình ảnh dưới đây cho thấy kết quả của hành động này -

Tương tự như lệnh diff của UNIX, chúng ta có thể sử dụng Vim để hiển thị khác biệt theo cách tốt hơn nhiều. Nó sẽ hiển thị khác nhau theo cách đầy màu sắc. Trong chương này, chúng ta sẽ thảo luận về các mục sau:

  • Hiển thị sự khác biệt giữa các tệp
  • Kích hoạt và hủy kích hoạt chế độ khác biệt
  • Điều hướng ở chế độ khác
  • Áp dụng các thay đổi từ cửa sổ khác nhau

Hiển thị sự khác biệt

Để hiển thị sự khác biệt giữa các tệp, hãy thực hiện lệnh dưới đây:

$ vimdiff <file> <file> 
OR 
$ vim –d <file> <file>

Ví dụ, lệnh dưới đây hiển thị sự khác biệt -

Trong hình trên, văn bản được đánh dấu bằng màu đỏ tươi là phổ biến. Văn bản còn lại được đánh dấu bằng màu đỏ cho biết rằng có một số khác biệt sau văn bản chung.

Kích hoạt và hủy kích hoạt chế độ khác biệt

Nếu bạn đã ở trong vim và bạn muốn thực hiện hành động khác, hãy sử dụng một trong các lệnh sau:

diffsplit

Sử dụng lệnh dưới đây để thực hiện chia theo chiều ngang -

:diffsplit filename

Hình ảnh trên cho thấy rằng chúng tôi đang so sánh hai tệp là message-1.txt và message-2.txt.

Đèn khuếch tán dọc

Để thực hiện chia theo chiều dọc, sử dụng lệnh sau:

:vert diffsplit <filename>

Nó mở ra cửa sổ sau -

Hình ảnh trên cho thấy rằng chúng tôi đang so sánh hai tệp là message-1.txt và message-2.txt.

Điều hướng ở chế độ khác

Điều hướng ở chế độ khác biệt có một chút khác biệt. Ví dụ: khi bạn cuộn văn bản từ một cửa sổ thì văn bản từ cửa sổ liền kề cũng được cuộn theo. Đây được gọi là scrollbind. Để kích hoạt việc sử dụng này -

:set scrollbind

Để vô hiệu hóa việc sử dụng này -

:set noscrollbind

Nếu bạn chỉnh sửa tệp ở chế độ này, hãy sử dụng lệnh sau để cập nhật khác biệt -

:diffupdate

Chuyển đổi giữa các cửa sổ khác nhau

Để chuyển đổi giữa các cửa sổ khác nhau, hãy thực hiện lệnh sau:

Ctrl + w Ctrl + w

Xin lưu ý rằng, chúng ta phải nhấn Ctrl + w 2 lần.

Chuyển đến thay đổi trước đó

Trong cửa sổ khác, thực hiện lệnh sau để chuyển đến thay đổi trước đó:

[c

Chuyển đến thay đổi tiếp theo

Trong cửa sổ khác, thực hiện lệnh sau để chuyển đến thay đổi tiếp theo:

]c

Áp dụng các thay đổi từ cửa sổ khác

Áp dụng thay đổi trong các cửa sổ khác nhau hiện tại

Để áp dụng thay đổi từ cửa sổ khác biệt liền kề sang cửa sổ khác hiện tại, hãy thực hiện -

:diffget

Ví dụ, nếu bạn đang ở cửa sổ bên trái và bạn muốn thay đổi từ cửa sổ bên phải sang cửa sổ hiện tại thì bạn sẽ thực hiện lệnh trên.

Áp dụng thay đổi từ ngăn hiện tại sang ngăn khác

Để áp dụng thay đổi từ cửa sổ khác biệt hiện tại sang cửa sổ khác biệt liền kề, hãy thực hiện -

:diffput

Ví dụ, nếu bạn đang ở cửa sổ bên trái và bạn muốn áp dụng thay đổi từ cửa sổ hiện tại sang cửa sổ bên phải thì bạn sẽ thực hiện lệnh trên.

Sử dụng plug-in, chúng tôi có thể mở rộng chức năng của Vim. Vim hỗ trợ nhiều plug-in và hầu hết chúng đều có sẵn miễn phí. Chương này nói về trình cắm Vim và chúng ta sẽ thảo luận về các mục sau:

  • Quản lý trình cắm
  • Một số plug-in hữu ích

Quản lý trình cắm

Phần này thảo luận về quản lý trình cắm. Vim cung cấp các trình quản lý trình cắm khác nhau nhưng chúng tôi sẽ không sử dụng bất kỳ trình quản lý trình cắm nào, thay vào đó chúng tôi sẽ thực hiện tất cả các bước này theo cách thủ công để hiểu rõ hơn. Khi bạn hiểu các bước này, bạn có thể sử dụng trình quản lý trình cắm.

Cài đặt plugin

Để cài đặt bất kỳ trình cắm nào, hãy thực hiện các bước sau:

  • Tạo thư mục .vim / pack trong thư mục chính của người dùng
  • Sao chép trình cắm vào bên trong thư mục này
  • Đặt đường dẫn thời gian chạy trong vim

Hãy để chúng tôi cài đặt plugin badwolf trong Vim. Đó là một cách phối màu cho vim.

$ mkdir -p ~/.vim/bundle 
$ cd ~/.vim/bundle/ $ git clone https://github.com/sjl/badwolf.git 
$ echo "set runtimepath^ = ~/.vim/bundle/badwolf" > ~/.vimrc

Bây giờ plugin đã được cài đặt, vì vậy chúng ta có thể sử dụng bảng màu badwold như sau:

:colorscheme badwolf

Cập nhật trình cắm

Nếu chúng ta quan sát kỹ, plug-in chỉ là một tập hợp các tệp và nếu chúng ta muốn cập nhật plug-in đó thì chỉ cần cập nhật thư mục plug-in thích hợp từ ~ / .vim / pack.

Xóa trình cắm

Việc xóa plug-in trong Vim thực sự rất đơn giản. Để xóa trình cắm, hãy thực hiện các bước sau:

  • Xóa thư mục trình cắm khỏi ~ / .vim / pack
  • Sửa đổi đường chạy thời gian thích hợp

Một số plug-in hữu ích

Dưới đây là danh sách một số plugin Vim hữu ích

Sr.No Tên & Mô tả
1 DumpX

Mã C / C ++ có thể tháo rời

2 awk.vim

Thụt lề cho tập lệnh AWK

3 Pathogen

Trình quản lý gói Vim

4 git-switcher.vim

Tự động lưu và tải phiên vim dựa trên việc chuyển đổi nhánh git

5 Pyflakes

Cung cấp liniting cho các tệp python

Chúng ta có thể cấu hình Vim để sử dụng nó như một IDE. Trong phần này, chúng ta sẽ thảo luận về các mục sau

  • Đánh dấu cú pháp
  • Thụt lề thông minh
  • Bounce
  • Thực thi các lệnh shell
  • Định cấu hình ctags và csope
  • Tự động hoàn thành và tự động đề xuất

Đánh dấu cú pháp

Đánh dấu cú pháp là một trong những tính năng quan trọng của IDE. Để cho phép sử dụng tô sáng cú pháp -

:syntax on

Ví dụ: hình ảnh dưới đây hiển thị đánh dấu cú pháp cho mã C -

Để tắt sử dụng tô sáng cú pháp -

:syntax off

Khi đánh dấu cú pháp bị tắt, nó sẽ hiển thị đầu ra sau:

Thụt lề thông minh

Để thực hiện thụt lề tự động và thông minh, hãy sử dụng các lệnh sau:

: set autoindent 
: set smartindent

Ngoài ra, bạn có thể sử dụng lệnh dưới đây để tự động thụt lề mã C:

: set cindent

Nảy

Nếu bạn đang sử dụng ngôn ngữ lập trình sử dụng dấu ngoặc nhọn để kết hợp nhiều câu lệnh thì% key sẽ là bạn của bạn. Phím này sẽ nhanh chóng nhảy giữa đầu và cuối dấu ngoặc nhọn.

Ví dụ, bạn đang ở dòng 11 và thực hiện lệnh% sau đó nó sẽ di chuyển con trỏ đến dòng 4. Hình ảnh dưới đây cho thấy điều này:

Thực thi các lệnh shell

Để thực hiện một lệnh từ người dùng trình soạn thảo Vim -

:!<command>

Ví dụ, để thực hiện lệnh pwd, hãy sử dụng cú pháp sau:

:!pwd

However, if you want to multiple shell commands then execute following command −

:shell

Above command will give you terminal access, where you can execute multiple commands. Once you are done with it, just type exit command which will return back to Vim session.

Configure ctags and cscope

Combination of ctags and csope provides many useful features like go to function definition, go to function declaration, find function calls, search file, and many more. Perform below steps to configure these tool −

  • Generate tags using following command −
$ ctags <file>

This command will generate new file namely tags

  • Provide tag file to vim using following command −
:set tags = tag
  • Now move your cursor under function name and press Ctrl + ] to go to function definition.
  • Use Ctrl + t to come back to previous position.

To install and configure cscope perform following steps −

  • Install cscope
$ sudo apt-get install cscope
  • Generate ctags and launch main window
$ cscope –R

  • User Ctrl + d to close cscope window

Auto-completion and auto-suggesting

We can use following commands for auto-completion −

Sr.No Command & Description
1 Ctrl + x Ctrl + N

Word completion

2 Ctrl + x Ctrl + L

Line completion

3 Ctrl + x Ctrl + F

File name completion

Note that we have to use these commands in insert mode.

Many times we need to work with remote servers. And often we edit files from those remote servers. One of the obvious solution to edit those files is to log in to the remote sever and edit files. But sometimes it is convenient to edit those files from local machine because we might have installed and configured various plug-in on our local system. In this chapter, we will discuss following items −

  • Access remote files
  • Understand netread and netwrite
  • Other supported protocol

Accessing remote files

Vim supports remote file editing using following syntax −

$vim scp://[email protected]/filepath

In above example vim will recognize that it has to use scp protocol and it will access file using that protocol. For instance −

$ vim scp://[email protected]//tmp/message.txt

Above command will open /tmp/message.txt file from remote-server. It will use SCP protocol and jarvis user’s credentials for authentication.

Using nread and nwrite

Vim supports nread and nwrite functionality which stands for net read and net write respectively. Previous section shows method to access remote file while launching Vim. But what if you are already in Vim? Then you can use following commands −

:Nread scp://jarvis@localhost//tmp/message.txt

In addition to reading we can also modify file on remote server directly. In that case use Nwrite command as follows −

:Nwrite scp://jarvis@localhost//tmp/message.txt

Once file is opened, you can use regular Vim commands.

Other supported protocols

In addition to SCP, Vim supports following protocols −

  • FTP
  • SFTP
  • HTTP (read-only)
  • rsync

Now we got fair idea about Vim. Let us discuss few tips and tricks of Vim to improve productivity. In this section, we will discuss following items −

  • Convert spaces to tabs and vice-versa
  • Highlight miss-spelled words
  • Word completion
  • Copy line character by character
  • Indent code
  • Change file format

Convert spaces to tabs and vice-versa

Convert tabs to spaces

If you are editing a file and you want to convert entered tab character to spaces then execute following command −

:set expandtab

Note that, this command will not change existing tabs to spaces. To achieve this execute following command −

:set tabstop = 4 shiftwidth = 4 expandtab 
:retab

In above command we are instructing Vim to convert tabs into 4 spaces

Convert spaces to tabs

To convert spaces to tabs execute below command −

:set noexpandtab :retab!

Highlight miss-spelled words

We can instruct Vim to highlight miss-spelled words. To do this execute following command −

:set spell

Below image highlights misspelled word in Vim −

Word completion

Vim also provides word completion. For this execute following command in insert mode −

Ctrl + p

Copy character line by line

Use following command to copy and paste line character by character −

Sr.No Command & Description
1 Ctrl + y

Copy and paste text located above the cursor

2 Ctrl + e

Copy and paste text located below the cursor

Note the we have to use these commands in insert mode.

Indent code

If you have un-indented code to indent it execute following command −

=%

For instance, if you have un-indented code like this −

Then go to line 4 and execute =% command. It will indent code like this −

Change file format

To change file format to UNIX execute following command −

:set ff = unix

To change file format to DOS execute following command −

:set ff = dos

We can personalize Vim according to our requirement. In this section, we will discuss following items −

  • Configuration files
  • Changing fonts
  • Changing color scheme
  • Personal highlighting
  • Status line

Configuration files

For Vim configuration files can be at user level or global level. User specific settings will be stored in user level files while global settings will be stored in global level files.

Tệp Vimrc

Global vimrc

Để tìm ra tệp vimrc toàn cầu, hãy thực hiện lệnh sau trong trình chỉnh sửa

:echo $VIM

HOẶC LÀ

:echo \%VIM\%

Trên Linux, tệp này sẽ nằm trong thư mục / usr / share / vim trong khi trên Window, nó sẽ nằm trong thư mục C: \ Program Files \ Vim

Local vimrc

Local vimrc sẽ nằm trong thư mục chính của người dùng. Ví dụ: trên Linux, nó sẽ nằm trong thư mục / home / <USER> trong khi trên Windows, nó sẽ nằm trong thư mục C: \ Documents and Setting \ <USER> /

Lưu ý rằng, trên Windows tên tệp sẽ là _vimrc trong khi trên Linux nó sẽ là .vimrc.

Gvimrc

Global gvimrc

Trên Linux, tệp này sẽ nằm trong thư mục / usr / share / gvim trong khi trên Window nó sẽ nằm trong thư mục C: \ Program Files \ Vim

Local gvimrc

Gvimrc cục bộ sẽ nằm trong thư mục chính của người dùng. Ví dụ: trên Linux, nó sẽ nằm trong thư mục / home / <USER> trong khi trên Windows, nó sẽ nằm trong thư mục C: \ Documents and Setting \ <USER> /

Lưu ý rằng, trên Windows tên tệp sẽ là _gvimrc trong khi trên Linux nó sẽ là 55 .gvimrc.

exrc

các tệp exrc được sử dụng để tương thích ngược. Các tệp này bị bỏ qua nếu có tệp vimrc hoặc gvimrc.

Global exrc

Trên Linux, tệp này sẽ nằm trong thư mục / usr / share / vim trong khi trên Window, nó sẽ nằm trong thư mục C: \ Program Files \ Vim

Local exrc

Exrc cục bộ sẽ nằm trong thư mục chính của người dùng. Ví dụ: trên Linux, nó sẽ nằm trong thư mục / home / <USER> trong khi trên Windows, nó sẽ nằm trong thư mục C: \ Documents and Setting \ <USER> / _exrc

Thay đổi phông chữ

Để thay đổi phông chữ, hãy thực hiện lệnh sau trong gVim:

:set guifont = courier

Lệnh trên sẽ thay đổi phông chữ thành chuyển phát nhanh.

Thay đổi màu sắc

Để thay đổi bảng màu, hãy thực hiện lệnh sau:

:colorscheme <tab>

Khi bạn nhấn ký tự tab, nó sẽ hiển thị các bảng màu có sẵn cho Vim.

Đánh dấu cá nhân

Đánh dấu các ký tự sau các cột nhất định

Thực hiện lệnh dưới đây để đánh dấu các cột lớn hơn 73 -

:match ErrorMsg /\%>73v.\+/

Hình ảnh dưới đây cho thấy điều này -

Dưới đây là mô tả của lệnh này:

Sr.No Lệnh & Mô tả
1 \%>

Khớp sau cột

2 73

Đây là số cột

3 V

Nó chỉ hoạt động cho các cột ảo

4 .\+

Khớp một hoặc nhiều ký tự

Thêm số dòng

Để thêm số dòng, hãy thực hiện lệnh sau:

:set number

Để tắt lệnh này, hãy thực thi lệnh sau:

:set nonumber

Đặt chiều rộng số

Để đặt độ rộng số, hãy thực hiện lệnh sau:

:set numberwidth = <num>

Kiểm tra chính tả

Để bật tính năng kiểm tra chính tả, hãy thực hiện lệnh sau:

:set spell

Và để đặt ngôn ngữ chính tả, hãy thực hiện lệnh sau:

:set spelllang = <language>

Ví dụ để đặt cách sử dụng tiếng Đức sau dấu phẩy -

:set spelllang = de

Viết tắt

Sử dụng cách viết tắt, chúng ta có thể tạo phím tắt cho chuỗi dài. Ví dụ, lệnh dưới đây tạo ra từ viết tắt là "nhanh chóng".

:abbr quick the quick brown fox

Nếu bạn gõ "quick" và nhấn tab thì nó sẽ được thay thế bằng chuỗi "the quick brown fox"

Chúng tôi có thể sử dụng điều này để sửa một số lỗi chính tả. Ví dụ, lệnh dưới đây thực hiện điều này:

:abr teh the

Dòng trạng thái

Dòng trạng thái được hiển thị ở cuối trình chỉnh sửa. Để kích hoạt dòng trạng thái, hãy thực hiện lệnh sau:

:set laststatus = 2

Để loại bỏ điều này cho phiên hiện tại, hãy thực hiện lệnh sau:

:set laststatus = 0

Vim thực sự là một trình soạn thảo mạnh mẽ và bây giờ bạn có thể làm phiền nó. Làm chủ Vim sẽ thực sự cải thiện năng suất của bạn. Sử dụng Vim bạn có thể giải quyết nhiều tác vụ phức tạp với một vài lệnh. Bạn có thể tham khảo tài liệu sau để biết thêm về Vim.

Vim tài liệu chính thức

Bạn có thể truy cập tài liệu chính thức của Vim từ trang web sau:

https://www.vim.org/

Vim Scripting hướng dẫn

Bạn có thể nâng cao vim hơn nữa bằng cách viết kịch bản cho nó. Nó có ngôn ngữ kịch bản riêng. Để biết thêm về nó, hãy truy cập liên kết sau -

https://vim.sourceforge.io/scripts/index.php

Vim plug-in

Vim plug-in mở rộng thêm chức năng của nó và giúp bạn làm việc hiệu quả hơn. Bạn có thể cài đặt, cấu hình và thậm chí viết các plug-in cho Vim. Bạn có thể tham khảo tài liệu về điều này từ trang web chính thức của họ.