Tôi đã tìm thấy giải pháp thực hiện chính xác những gì bạn đang yêu cầu. Nhưng nó yêu cầu trình cắm FarNet và mô-đun PowerShellFar của nó:
http://code.google.com.vn/p/farnet/
Họ cũng cần cài đặt .NET 2.0+ và Windows PowerShell 2.0. Đây đã là trường hợp trên Windows 7 nhưng các phiên bản Windows trước đó không may mắn như vậy. Bên cạnh đó, PowerShell 2.0 chỉ dành cho Windows XP SP 3 trở lên (thậm chí không phải SP 2).
Nếu bạn chưa sợ thì đây là mẹo. Trong lệnh biên tập bên ngoài, chúng tôi gọi PowerShellFar thông qua tiền tố dòng lệnh của nó "& gt;:"
>: & vim @(Get-FarPath -Selected) #
Đó là nó. Nó hoạt động, tôi đã thử nó (không phải với vim, mặc dù, tôi không có). Nó rất nhanh, nó không khởi động PowerShell mỗi lần; lõi được tải một lần khi Far bắt đầu.
Lưu ý: '#' cuối cùng trong lệnh là một quy ước PowerShellFar nhỏ: không thêm vào các lệnh lịch sử lệnh liên tục với '#' ở cuối. Lệnh này là để mở trình soạn thảo bên ngoài, nó được viết một lần và chúng tôi không muốn nó làm ô nhiễm lịch sử của các lệnh khác được gõ thủ công.
P.S. Tôi là tác giả của cả FarNet và PowerShellFar, chỉ trong trường hợp. Họ là nguồn mở, trưởng thành và mạnh mẽ. Tôi muốn giới thiệu chúng trong mọi trường hợp, theo như bạn sử dụng Far Manager và Windows gần đây có tất cả các điều kiện tiên quyết cho các công cụ này.
!@AFQ!
là về một số tệp đã chọn mà tên được ghi vào tệp tạm thời X. Tên X được gửi đến Vim trong dòng lệnh. Tệp X chứa tên tệp đã chọn, được trích dẫn (!), Tôi vừa kiểm tra điều này. Mọi thứ có vẻ đúng. Vì vậy, những gì là sai trong trường hợp của bạn?