2013-02-07 13 views
7

Tôi đang sử dụng màn hình để sao chép mã mà tôi đang xem bằng cách sử dụng Vim từ cửa sổ này sang cửa sổ khác hiện đang chỉnh sửa tệp có Vim. Thật không may, khi dán vào cửa sổ thứ hai, tôi nhận được khoảng trắng ngày càng nhiều bên trái đầu vào của tôi sau mỗi dòng mới. Làm thế nào là khoảng trắng này tìm đường vào bộ đệm của tôi?Tại sao có thêm khoảng trống sau dòng mới khi dán bằng Màn hình?

Tôi đã cố gắng tắt tự động thụt lề trong trường hợp Vim đang thêm khoảng trắng thừa, nhưng sự cố vẫn tiếp diễn.

Dưới đây là thông tin có thể thích hợp:

  • OSX 10.6.8
  • Cả hai tập tin Unix phong cách.
  • Screen phiên bản: 4.00.03
  • Vim phiên bản: 7.3
  • Đằng loại thiết bị đầu cuối là: xterm-color

Trả lời

18

Bạn đang sao chép bằng cách sử dụng chuột hoặc một số cách phi vim khác? Nếu có, bạn phải làm :set paste trước khi dán và :set nopaste sau. Xem :h pastetoggle để có ánh xạ nhanh.

Nếu tất cả các phiên vim của bạn là địa phương và Vim hỗ trợ nó (:echo has('clipboard')<CR> nên tiếng vang 1), bạn nên sử dụng clipboard của hệ thống của bạn: "+y để yank và "+p để dán mà không có thụt pesky.

Hoặc, tốt hơn, mở tệp của bạn trong cùng một phiên Vim.

+0

Tôi không sử dụng Vim để sao chép hoặc dán. Tôi đang sử dụng màn hình để làm như vậy. Tôi chắc chắn có thể sửa chữa vấn đề bằng cách mở các tập tin trong cùng một phiên Vim, nhưng tôi thấy vấn đề này thú vị và muốn nhận được để dưới cùng của nó. Ngoài ra, những gì bạn có ý nghĩa của địa phương chính xác? Như trong cùng một máy chủ? – Daeden

+1

Sự cố là chế độ dán. Do ': set paste' trước khi dán và vấn đề sẽ biến mất. –

+0

Có, trên cùng một máy chủ. Từ quan điểm của Vim dán từ màn hình hoặc với 'Cmd + v' là như nhau: văn bản được chèn char bởi char và từng dòng (nhưng rất nhanh) và Vim áp dụng định dạng và thụt lề. Sử dụng '" + y' và '" + p'. – romainl

0

vấn đề này xuất phát từ listcharseol Vim thêm một nhân vật ở phần cuối của dòng, một số người dùng thêm ví dụ ↲

Để loại bỏ char thêm này bạn cần phải không được thiết lập EOP trong listchars, ví dụ :

set listchars=tab:\ \ ,trail:-,extends:>,nbsp:\ ,precedes:< 

tab sẽ được thay thế bằng dấu cách, dấu không gian sẽ xuất hiện với -, vv ...

Như eol là không có mặt, nó sẽ không được hiển thị, điều này sẽ khắc phục sự cố