2011-11-15 33 views
16

Bất cứ ai có thể giúp tôi với điều này: Tôi đang cố gắng tìm ra cách sao chép và dán văn bản giữa 2 trường hợp khác nhau của vim trên các thiết bị đầu cuối khác nhau (sử dụng thiết bị đầu cuối iterm2 hoặc mac). Tôi có thể làm điều đó bằng cách sử dụng chuột nếu tôi làm ": thiết lập chuột = a" nhưng tôi muốn có thể làm điều đó bằng cách sử dụng bàn phím.Sao chép và dán vim qua bàn phím giữa các thiết bị đầu cuối mac khác nhau?

Tôi đã googled và nói rằng bạn có thể sử dụng thanh ghi "* hoặc" + để sao chép/dán vào/từ khay nhớ tạm của hệ thống, nhưng khi tôi nhập * hoặc + trong vim, mac sẽ tạo một trong những âm thanh đó nó làm khi bạn không thể làm điều gì đó. Tôi cũng đã thực hiện ": set clipboard = unnamed" nhưng điều đó cũng không hiệu quả.

Tôi đang sử dụng thiết bị đầu cuối Mac OSX 10.7 (Lion) và iTerm2 hoặc Mac.

Thanks for the help

+1

Giống như ghi chú bên cạnh; khi tôi muốn làm một cái gì đó như thế này, cuối cùng tôi nhận ra rằng cách dễ dàng để đạt được nó không phải là chạy hai trường hợp vim khác nhau trong các thiết bị đầu cuối riêng biệt, mà thay vào đó có một số bộ đệm hoặc bộ đệm trong một cá thể vim duy nhất, vì vậy tôi có thể nhìn vào một số tập tin cùng một lúc chỉ trong một vim. Sau đó, nó thậm chí không phải là một vấn đề ở tất cả, và bạn có thể yank và đưa văn bản giữa các tập tin vào nội dung trái tim của bạn mà không cần bất kỳ nỗ lực đặc biệt, hoặc học lệnh mới hoặc bất cứ điều gì. –

+0

Để sử dụng khay nhớ tạm thời của hệ thống, tôi sử dụng chuỗi '" * y' để yanking cho nó và '" * p' hoặc '" * P' để dán từ đó. Và có, tôi muốn có nhiều hơn một cửa sổ và để chuyển đổi giữa chúng bằng cách sử dụng 'ALT-TAB', điều này dễ dàng hơn nhiều so với việc sử dụng một cửa sổ cho VIM và có 2 thư mục khác nhau với một số tệp trong đó – mliebelt

+0

Tôi chỉ sử dụng một Vim và thực hiện tất cả điều hướng/mở tệp từ bên trong Vim Tất cả các bộ đệm mà tôi đã mở trong một phiên được ẩn và có thể truy cập rất nhanh chóng thông qua cùng một plugin, chỉ sử dụng một Vim cho phép tôi chia sẻ sổ đăng ký (và do đó là macro) và lịch sử giữa tất cả các bộ đệm mở của tôi – romainl

Trả lời

17

Bạn có thể thêm đầu ra của :version?

tôi có thể yank với yy hoặc y trong một trường hợp Vim chạy trong cửa sổ Terminal.app A và đặt với p hoặc P trong một phiên bản Vim chạy trong Terminal.app cửa sổ B với dòng này trong ~/.vimrc tôi:

set clipboard+=unnamed 

mà không sử dụng sổ đăng ký clipboard cụ thể (* hoặc +).

Và tại sao bạn có hai phiên bản Vim chạy trong các thiết bị đầu cuối khác nhau? SSH/địa phương? Nếu một trong một phiên SSH yanking/put sẽ không hoạt động vì hai máy (local/remote) không chia sẻ cùng một clipboard (s).

EDIT

Tôi nghi ngờ rằng Vim đã không được biên soạn với cờ bên phải (s). Rõ ràng là vậy.

Vì bạn đang sử dụng mặc định của Mac OS X Vim ý kiến ​​của tôi là bạn không cần phải biên dịch lại hoặc thậm chí biên dịch bất cứ điều gì vì nó thường dẫn đến nhiều vấn đề hơn giá trị của nó. Thay vào đó, hãy tải xuống bản dựng MacVim mới nhất và sử dụng (CLI) Vim thực thi trong gói của MacVim: nó có tất cả các chức năng giống như MacVim (trong các ràng buộc của CLI, dĩ nhiên). Quay lại đầu trang ||||

Thêm dòng này để ~/.bashrc của bạn hoặc ~/.profile hoặc bất cứ nơi nào bạn đang sử dụng để đặt bí danh và chức năng tùy chỉnh bash:

alias vim='/path/to/MacVim.app/Contents/MacOS/Vim' 
+0

Đây là phiên bản của tôi đầu ra: VIM - Vi IMproved 7.3 (2010 ngày 15 tháng 8, biên soạn ngày 24 tháng 6 năm 2011 20:00:09) Biên soạn bởi [email protected] Phiên bản bình thường không có GUI. – Eddy

+0

Tôi đã thử những gì bạn nói, có 2 cửa sổ đầu cuối mở , mỗi một với một thể hiện của vim. Nhưng tôi vẫn không thể sao chép và dán giữa chúng (ngay cả với: set clipboard + = unnamed trong ~/.vimrc) của tôi – Eddy

+1

Ah, tôi chỉ nhận thấy điều này trong phiên bản đầu ra: -xterm_clipboard. Vì vậy, tôi đoán tôi sẽ cần phải biên dịch lại vim và kích hoạt xterm_clipboard hoặc một cái gì đó? Làm thế nào để làm điều đó? – Eddy

0

Nếu bạn muốn sao chép toàn bộ tập tin vào tập tin mục tiêu của bạn.

Mở tệp đích trong vim.

Đặt con trỏ vào nơi bạn muốn nó và gõ như sau:

: r /path_to_file/file.ext

này sẽ sao chép toàn bộ tập tin vào nơi con trỏ của bạn là ...

+0

Bạn có thể liên kết câu trả lời trong các trang web trao đổi ngăn xếp khác nhau bằng cách thêm nhận xét có liên kết đến câu trả lời gốc của bạn. Không cần sao chép nội dung bằng cách sao chép. – oleksii

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