Hoàn thành tên tệp cho các tệp từ xa


16

Bạn tôi đã chỉ cho tôi một mẹo hay về Emacs vài ngày trước, nơi anh ấy có thể mở một tệp trên một máy chủ từ xa và tôi nghĩ ngay rằng "cũng nên có cách để làm điều đó trong vim" và đó là sự thật.

Tôi chỉ có thể sử dụng :e scp://user@server//filepathđể làm điều đó, không có vấn đề;). Tuy nhiên, anh ta chỉ có thể nhập tên máy chủ và sau đó hoàn thành các đường dẫn và tên tệp (bằng tab), điều mà tôi chưa thể làm được. Có ai biết nếu điều này có thể được thực hiện trong vim?


1
Tôi có mặc dù ctrlp có thể hỗ trợ nó ... nhưng rõ ràng đó là một yêu cầu tính năng .
muru

Câu trả lời:


6

, nhưng hiện tại (2015) không có sẵn, vì trình quản lý tệp tích hợp của vim không hỗ trợ duyệt web từ xa. .

Cập nhật quý 3 năm 2016:

Có một số công việc xung quanh, với mức độ thoải mái / tương thích / nỗ lực khác nhau. Tất cả cùng nhau họ thêm vào một giải pháp tốt đẹp, nhưng tất cả chúng cũng có thể được sử dụng riêng lẻ:

Nếu bạn không thể sửa đổi môi trường của mình hoặc .vimrc-only: Trong trình quản lý tệp vim, bạn có thể sử dụng // ?Phím để tìm kiếm tiến / lùi và bạn có thể ánh xạ TABtới một trong số chúng. Điều này mạnh hơn âm thanh để điều hướng bạn nhanh chóng xung quanh hệ thống tệp. Mô tả dưới đây.

Giải pháp cơ bản (cho vim tiêu chuẩn với NetRW):

  • Không trỏ vim vào một tệp từ xa
  • Trỏ tới một thư mục "ở trên cùng", vd $HOME: vim scp://files/hoặc /:vim scp://files///
  • Plugin NetRW mở trong thư mục cấp cao nhất ( /hoặc $HOME).
  • Trong NetRW, bạn có thể điều hướng với một vài lần nhấn phím đáng ngạc nhiên:
  • Để chỉnh sửa từ xa /etc/network/interfacesvới NetRW trên /:

    /etENTERENTER/netwENTERENTER/intENTERt

Bạn luôn có thể sử dụng ?để tìm kiếm ngược lên trên, mà không cần bọc từ trên xuống.

Thậm chí tốt hơn , để gần như bắt chước TAB -Completion thêm vào .vimrc:

  • Bản đồ TABđến / trong NetRW:autocmd filetype netrw noremap <buffer> <TAB> /
  • Định cấu hình NetRW cho TreeView: let g:netrw_liststyle=3
  • Thêm một chuyển đổi cho một VExplore từ xa cho<C-E> , nếu bạn muốn (tôi sử dụng nó).
  • Tôi cũng khuyên incsearch, ignorecasesmartcasecho NetRW, hoặc tất cả các bộ đệm.

So với hoàn thành tab "thông thường", ở trên là khác nhau, nhưng rất thoải mái.

Lưu ý: Tất cả các giả định ở trên đều giả sử các kết nối không có mật khẩu dựa trên chứng chỉ ssh ~/.ssh/configvới Người dùng, Cổng, Nén, Jumphost (ProxyCommand được thiết lập sao cho chỉ cần tên máy chủ / bí danh.

Điều này cũng đã được thảo luận trước đây ở ngoài và đây


1
Bạn có thể mở rộng về thủ thuật bằng cách tóm tắt liên kết? Một liên kết đơn giản là không hữu ích nếu trang web bị sập hoặc chết.
muru

Tôi nghĩ rằng, đây ít nhiều là "giải pháp" cuối cùng của tôi, cho đến khi NetRW có thể thực hiện điều này một cách tự nhiên. Tôi vẫn sẽ quan tâm đến các vấn đề đã biết còn lại, nhưng hy vọng sẽ tìm thấy (hoặc được chỉ ra) các lỗi, sửa lỗi và cải tiến tinh tế hơn. Họ sẽ được giải quyết / kết hợp. Cảm ơn bạn đã bình luận.
Alex Stragies
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.