2010-01-25 40 views
23

Tôi sử dụng GVIM trên Ubuntu 9.10. Tôi đang tìm đúng cách để cấu hình GVIM để có thể chỉnh sửa các tập tin từ xa (HTML, PHP, CSS) cho ftp exemple.Làm cách nào để sử dụng GVIM để chỉnh sửa tệp từ xa?

  • Khi tôi sử dụng: Địa chỉ e scp: //[email protected]/./path/to/file tôi nhận được: error detected while processing BufEnter Auto commands for "*":E472: Command failed.
  • Khi tôi mở một file trên từ xa thông qua Dolphin hoặc Nautilus, tôi không thể sử dụng các file khác với NERDTree.
  • Cuối cùng khi tôi chỉnh sửa trên một tập tin từ xa thông qua Dolphin các quyền đang thay đổi để truy cập interdit.

Vậy làm thế nào để sử dụng GVIM để chỉnh sửa các tệp từ xa như trên máy chủ cục bộ của tôi?

+0

Các bạn đã thử vẽ bản đồ một chìa khóa để một chức năng mà có vị trí như là một arg trả về một cuộc gọi để scp với vị trí và một thư mục tạm thời và sau đó cố gắng để mở nó? Bạn có thể tăng cường điều này bằng cách ràng buộc một khóa thứ hai để viết và chúng scp các tập tin trở lại. – tzenes

Trả lời

8

Có một con đường và đó là sử dụng bản sao các máy chủ từ xa, sử dụng SSH để chuyển tiếp các khách hàng X11 cho bạn, như vậy:

[email protected]:~/$ ssh -X [email protected] 
... 
[email protected]:~/$ gvim file 

Lệnh sau nên mở gvim trên desktop của bạn. Tất nhiên, điều này dựa trên máy chủ từ xa có X11/gnome/gvim được cài đặt ở nơi đầu tiên, mà có thể không phải là giải pháp bạn đang tìm kiếm/một tùy chọn trong trường hợp của bạn.

Lưu ý: Chuyển tiếp X11 có thể là rủi ro bảo mật.

+0

Có cách nào để một số loại bộ nhớ đệm không? Nếu bạn đang ở trên một mạng chậm, nó có thể là một nỗi đau để phát triển từ xa. – Begui

-2

Tôi không nghĩ rằng bạn sẽ có thể chỉnh sửa trực tiếp tệp từ xa bằng cách sử dụng GVIM chạy cục bộ. Tuy nhiên, như những người khác đã chỉ ra, điều này là defintiely có thể. Điều này trông rất thú vị; Tôi sẽ kiểm tra điều này. Tôi sẽ để phần còn lại của bài đăng của tôi ở đây, trong trường hợp nó hữu ích cho bất kỳ ai khác, như là một phương pháp thay thế. Phương thức này sẽ hoạt động ngay cả khi bạn không có quyền truy cập SSH vào tệp (nghĩa là bạn chỉ có FTP hoặc S3).

Bạn có thể nhận được hiệu ứng đó, bằng cách buộc GVIM vào ứng dụng chuyển tệp đồ họa. Ví dụ, trên OS X, tôi sử dụng CyberDuck để truyền tệp (FTP, SFTP, v.v.). Sau đó, tôi đã cấu hình để sử dụng GVIM làm trình soạn thảo của mình, vì vậy tôi chỉ có thể nhấp đúp vào một tệp trong danh sách từ xa và CyberDuck sẽ tải xuống bản sao của tệp từ xa đó và mở tệp đó trong GVIM. Khi tôi lưu nó trong GVIM, CyberDuck tải tệp lên máy chủ từ xa.

Tôi chắc chắn rằng chức năng này không phải là duy nhất đối với CyberDuck và có thể có mặt trong hầu hết các tiện ích chuyển tập tin đẹp hơn.

+0

Tôi đã thử nó với FileZilla và cách giải quyết này là tốt hơn so với những gì tôi đã làm trước đây. Tôi sẽ kiểm tra những người khác vào ngày mai. – LaTulipe

+0

Tôi rất vui vì điều đó có ích cho bạn. Có vẻ như bạn mới sử dụng trang web này, vui lòng cân nhắc bỏ phiếu cho bất kỳ câu trả lời nào bạn cho là hữu ích và đánh dấu câu trả lời hay nhất được chấp nhận (nếu giải quyết được vấn đề của bạn). Kiểm tra liên kết FAQ ở đầu trang nếu bạn không chắc chắn về cách thực hiện điều này. Cảm ơn! – pkaeding

+1

Điều này không đúng. Bạn chắc chắn có thể chỉnh sửa một tập tin từ xa bằng cách sử dụng gvim chạy cục bộ. Như những người khác đã đề cập: giúp netrw sẽ cho bạn biết thêm –

1

EDIT: Xác thực khóa là không cần thiết để mở tệp trên ssh. Vim sẽ nhắc nhập mật khẩu.

Sẽ hữu ích nếu lưu ý nếu netrw.vim được tải bằng vim khi khởi động.

:echo exists("g:loaded_netrwPlugin") 

Để mở tệp qua ssh, bạn cần khóa công khai của máy cục bộ trong khóa được ủy quyền của máy chủ. Sau phần trợ giúp trong tài liệu vim giải thích nó khá tốt.

:help netrw-ssh-hack 

cách nhanh để xuất khóa công khai sẽ là bằng cách sử dụng ssh-copy-id (nếu có).

ssh-copy-id [email protected] 

Và xem tài liệu netrw để chỉnh sửa tệp mạng qua các giao thức khác.

:help netrw 

HTH.

+0

Trong khi xác thực dựa trên khóa chắc chắn làm cho mọi thứ trở nên háo hức, tôi không nghĩ rằng nó là bắt buộc. –

+0

Bill B: Cảm ơn. Có, các phím không cần thiết. Tôi không để ý. – shoban

6

Để netrw hoạt động liền mạch, tôi tin rằng bạn cần không phải ở chế độ tương thích.

Hãy thử

: set nocompatible

sau đó

: chỉnh sửa scp: // host/path/to/file

+0

Tôi đã sử dụng phương pháp này một số lần thành công. – wom

0

Theo các tài liệu BufEnter được xử lý sau khi các tập tin đã được đọc và bộ đệm được tạo, do đó, tôi đoán là netrw đã đọc thành công tệp nhưng bạn có một plugin giả định tệp nằm trên hệ thống tệp cục bộ và đang cố gắng truy cập tệp, ví dụ: để chạy ctags.

Thử tắt tất cả tập lệnh plugin của bạn ngoại trừ các tập lệnh Vim mặc định, sau đó chỉnh sửa tệp.

Ngoài ra, hãy thử chỉnh sửa thư mục để xem liệu netrw có thể đọc được thư mục đó không - bạn cần đặt/ở cuối để netrw biết đó là thư mục.

+0

Tôi đã vô hiệu hóa các tập lệnh plugin ngoại trừ các tập lệnh Vim mặc định, "scp: // username @ remotehost/path/to/dir /" và tôi nhận được: "Không có dòng nào trong bộ đệm" – LaTulipe

43

Tôi đã tìm thấy đang chạy hệ thống tệp qua ssh (bằng phương tiện sshfs) một tùy chọn tốt hơn việc trình chỉnh sửa xử lý nội dung đó hoặc chạy trình chỉnh sửa trên đường hầm ssh.

Vì vậy, bạn cần phải

apt-get install sshfs 

và sau đó

sshfs [email protected]:/remote/path /local/mountpoint 

Và đó sẽ cho phép bạn chỉnh sửa tập tin từ xa như thể họ đang ở trên hệ thống tập tin địa phương của bạn.

Để làm cho nó thậm chí còn mượt mà bạn có thể thêm một dòng vào/etc/fstab

sshfs#[email protected]:/remote/path /local/mountpoint fuse user,noauto 

Đối với một số lý do tôi thấy rằng tôi phải sử dụng fusermount -u /local/mountpoint thay vì sau đó chỉ cần umount /local/mountpoint khi thử nghiệm với điều này. Có lẽ đó chỉ là bản phân phối của tôi.

Gần đây tôi cũng lưu ý rằng người dùng gắn kết phải nằm trong nhóm fuse. Vì vậy:

sudo addgroup <username> fuse 

Một lựa chọn phổ biến khác tất nhiên, sẽ được chạy vim (chứ không phải sau đó gvim) bên trong một phiên GNU Screen trên một máy và kết nối với phiên qua ssh từ bất cứ nơi nào bạn xảy ra được. Mã số trong cả ngày tại nơi làm việc và vào buổi tối bạn ssh vào máy tính văn phòng của bạn, reattach để phiên màn hình gnu của bạn và nhận chính xác nơi bạn rời đi. Tôi sử dụng tìm bảng màu phong phú hơn là thứ duy nhất tôi thực sự bỏ qua khi sử dụng vim, nhưng thực sự có thể được chỉnh sửa nhờ to a fork of urxvt cho phép bạn tùy chỉnh toàn bộ bảng màu của vị trí 256, không chỉ 16 vị trí đầu tiên của bảng màu hầu hết các trình giả lập thiết bị đầu cuối sẽ cho phép bạn tùy chỉnh.

+0

theo màu vim, hãy thử xem tại đây: http://vim.wikia.com/wiki/256_colors_in_vim –

+0

Bạn có thể nhận được 256 màu trong nhiều trình mô phỏng thiết bị đầu cuối, nhưng bảng màu (ngoài 16 màu đầu tiên) được cố định, vì vậy hầu hết các chủ đề màu gvim sẽ vẫn không trông tuyệt vời trong vim. Tuy nhiên có một thương hiệu mới [rxvt-unicode fork] (https://github.com/trapd00r/rxvt-unicode) sẽ cho phép bạn tạo một bảng màu tùy chỉnh. Tôi vẫn chưa thực sự thử nó, nhưng có vẻ đầy hứa hẹn. – oivvio

+0

Tôi đã sử dụng nó trong hơn 20 năm, và tôi vẫn tìm thấy những điều khiến tôi nói 'Wow, tôi không biết bạn có thể làm điều đó — Tôi Linux!' –

0

Giới thiệu về lệnh của bạn,: e scp: //[email protected]/./path/to/file: lưu ý rằng với netrw, scp được lấy tương đối so với thư mục chính của bạn trên máy chủ từ xa đó. Để tránh đường dẫn tương đối nhà, hãy thả "."; I E. : e scp: // username @ remotehost // đường dẫn/đến/tệp.

-1

để thực hiện việc này trên cửa sổ tải xuống/cài đặt thư viện Dokan và Dokan SSHFS, là liên kết đầu tiên và cuối cùng trên this page.

+1

liên kết bị hỏng .... – Funkodebat

Các vấn đề liên quan