Giải pháp này hoàn toàn được lấy cảm hứng từ một romainl (rất cảm ơn anh ấy) nhưng nó cho phép mở nhiều bộ đệm với nhiều chuỗi.
Thêm các dòng sau vào .zshrc
(hoặc .bashrc
hoặc bất kỳ tệp nào có liên quan nơi bạn xác định hàm bash)
function mvim {
CMD="vim "
for string in "$@"
do
CMD=$CMD"-c \"enew | put='"$string"'\" "
done
CMD=$CMD"-c \"bufdo 1d\""
eval $CMD
}
Sau khi tìm nguồn cung cấp .zshrc
tệp của bạn, bạn sẽ có thể gọi chức năng sau:
mvim "foo bar" "baz" "and quz"
Nó sẽ mở một cá thể vim với 3 bộ đệm, mỗi bộ chứa một chuỗi.
Nếu không có đối số được cung cấp, một ví dụ vim thông thường sẽ được bắt đầu. Nếu một đối số là một chuỗi rỗng, một bộ đệm trống sẽ được tạo.
EDIT Tôi nhận ra rằng vì một lý do mà tôi không hiểu một dòng trống được tạo ra ở đầu mỗi bộ đệm nên tôi đã thêm dòng
CMD=$CMD"-c \"bufdo 1d\""
Để thoát khỏi dòng trống này trong tất cả các bộ đệm.
vim < echo "test"
nhưng không thành công. Tôi không biết vềvim -
! Và+
/-c
cũng có thể hữu ích. Cảm ơn bạn.