Để thực thi vim trong chế độ không tương tác, bạn có thể sử dụng +{command}
/ -c {command}
hoặc -s
tham số sẽ cho phép bạn thực thi các lệnh vim sau khi tệp đầu tiên được đọc.
Kiểm tra một vài ví dụ dưới đây.
Lệnh đầu vào và đầu ra tiêu chuẩn đơn giản có thể đạt được bằng lệnh:
$ echo Example | vim -es '+:wq! /dev/stdout' /dev/stdin | cat
Để chỉnh sửa một tệp và lưu các thay đổi sang tệp khác:
$ vim -es '+:0,$s/127/128/g' '+:wq! new_file' /etc/hosts
$ cat file1 file2 | vim - -es '+:0,$s/foo/test/g' '+:wq! file3'
Để chỉnh sửa tệp tại chỗ, bạn có thể sử dụng -s {scriptin}
để tệp script được đọc, ví dụ:
$ echo ':0,$s/foo/test/ge' > cmds.txt
$ echo ':wq' >> cmds.txt
$ vim -s cmds.txt -es file
Để phân tích tệp và gửi nó đến đầu ra của đường ống, bạn có thể thử như sau:
$ cat /etc/hosts | vim -es '+:0,$s/127/128/g' '+%print' '+:q!' /dev/stdin | cat
hoặc là:
$ cat /etc/hosts | vim -es '+:0,$s/127/128/g' '+:wq! /dev/stdout' /dev/stdin | cat
Xem thêm: Làm cách nào để chỉnh sửa các tệp không tương tác (ví dụ: trong đường ống)? tại Vim SE