Làm thế nào để thêm một lệnh trong trình soạn thảo vim?


87

Nếu giả sử tên tệp mã nguồn của tôi là "foo.c". Trong khi chỉnh sửa và gỡ lỗi, tôi luôn thực hiện lệnh này: -

:! gcc -g foo.c -o foo; gdb foo

Tôi có thể thêm một lệnh tùy chỉnh vào Vim sao cho nếu tôi gõ ": debug" thì lệnh trên thực thi không? Làm thế nào để tôi đạt được điều đó?

Câu trả lời:


103

Đúng. Tài liệu Vim, phần 40.2, Ánh xạ dòng lệnh :

Trình chỉnh sửa Vim cho phép bạn xác định các lệnh của riêng mình. Bạn thực thi các lệnh này giống như bất kỳ lệnh chế độ dòng lệnh nào khác. Để xác định lệnh, sử dụng lệnh ": lệnh", như sau:

: lệnh DeleteFirst 1delete

Bây giờ khi bạn thực thi lệnh ": DeleteFirst" Vim thực thi ": 1delete", sẽ xóa dòng đầu tiên.

Lưu ý: Các lệnh do người dùng định nghĩa phải bắt đầu bằng chữ in hoa. Bạn không thể sử dụng ": X", ": Next" và ": In". Dấu gạch dưới không thể được sử dụng! Bạn có thể sử dụng chữ số, nhưng điều này không được khuyến khích.

Đặt dòng đó trong của bạn ~/.vimrc(tất nhiên trừ đi bẩm :sinh) và nó sẽ được xác định mỗi khi bạn bắt đầu vim. Ngoài ra, sử dụng %:tđể tạo tham chiếu đến tệp đang được chỉnh sửa (văn bản ! gcc %:tđược thay thế bởi ! gcc foo.c).

Nếu bạn chỉ muốn nó được xác định cho một tệp hoặc cho một số tệp nhất định, bạn muốn tự động nhận.


4
nếu bạn đang thay thế một lệnh hiện có, bạn cần sử dụng command!.
phyatt

14

Vim đã hỗ trợ Makefiles (: make). Nếu bạn tạo một nguồn cho nguồn của mình, bạn có thể chỉ định trong đó những gì bạn muốn thực hiện. Ngoài ra, thông qua ctags, Vim sẽ có thể lặp lại thông qua bất kỳ lỗi nào được tìm thấy trong quá trình biên dịch.


5

Thêm một lệnh biên tập vi do người dùng định nghĩa:

Điều này sẽ làm cho nó để khi người dùng gõ :Legendở chế độ bình thường, một khối văn bản được thêm vào dưới con trỏ.

Bước 1: Đặt dòng này vào một tệp có tên ~ / Legend_header.txt`

this text will be added

Bước 2: Đặt lệnh này vào tệp ~ / .vimrc của bạn (nếu tệp không tồn tại, hãy tạo nó):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

Bước 3: Khởi động lại vi để các thay đổi có hiệu lực. Bạn đã hoàn tất.

Kiểm tra nó

Bước 1: Mở tệp mới trong vi. Ở chế độ "bình thường" mặc định trong vi. Thể loại:Legend

Bước 2: Nội dung ~/legend_header.txtcần được thêm vào nơi con trỏ đang ở.


0

Tôi sử dụng lệnh này trong .vimrc của tôi để biên dịch và thực thi mã c:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, nhưng cho nhu cầu của bạn, bạn có thể đặt:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

Bạn có thể chắc chắn tên của tệp exec sẽ là tên nguồn không có phần mở rộng .c.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.