Sao chép-dán cho vim không hoạt động khi bật chuột (: set mouse = a)?


52

Tôi đã cố gắng sao chép dán một cái gì đó từ vim sang một ứng dụng khác và từ ứng dụng đó sang vimsử dụng nhấp chuột phải và sau đó sao chép và dán (hoặc với Ctrl+ vCtrl+ cvà cũng đã thử Commandphiên bản cho mac OSX.). Tuy nhiên, khi tôi thử thực hiện, nó chỉ sao chép từ đầu tiên khi tôi thực hiện từ vimhoặc khi tôi sao chép từ ứng dụng sang vim, nó sao chép mọi thứ, nhưng chèn các tab và khoảng trắng lạ. Tôi nghĩ điều này đã xảy ra khi tôi quyết định đặt chuột trong thiết bị đầu cuối. Như trong:

:set mouse=a

Tôi có dòng đó trên .vimrctập tin của tôi trên iTerm (mac os x). Mặc dù, có thể làm cho bản sao của tôi dán với các ứng dụng khác vimkhông bị phá vỡ mouse=akhông? Hoặc ít nhất có thể tắt chuột trong khi tôi thực hiện dán sao chép? Tôi đã làm :helpchuột nhưng các ý kiến ​​không hữu ích cho tôi. Tôi sẽ dán chúng ở đây nhưng ... công cụ sao chép của tôi bị hỏng!

Tôi đã thử :set mouse!:set mouse=a!những thứ này chẳng có ích gì ... :(


Thông tin bổ sung về môi trường của tôi:

Tôi cũng đang sử dụng tmux hầu hết thời gian, tuy nhiên, tôi đã kiểm tra lỗi / lỗi này mà không có phiên tmux, đó là lý do tại sao tôi đăng bài này chủ yếu dưới dạng câu hỏi vim.


4
Tôi có thể nói với bạn rằng vimcó khả năng kéo theo Lựa chọn chính chỉ bằng cách sử dụng yđộng từ. Tôi không biết tại sao bạn sẽ không sử dụng nó.
HalosGhost

1
Tôi sẽ không làm điều đó bởi vì tôi không biết làm thế nào để tôi đoán, xin lỗi vì sự bất tài của tôi. Tôi thậm chí không biết rằng nó tồn tại cho đến khi bạn đề cập đến nó. Hãy chia sẻ kiến ​​thức của bạn! :)
Pinocchio

Đây có phải là macvim ?
Patrick

không, nó không chỉ là iTerm (như tôi đã đề cập trong câu hỏi, nhưng câu hỏi hay).
Pinocchio

Câu trả lời:


66

mouse=a ngăn khả năng sao chép và dán ra khỏi vim với các ký tự có thể đọc được.

Thay đổi mouse=ađể mouse=rvà cần khắc phục sự cố với điều đó.

Một điều tôi tự hỏi là, bạn có đang thay đổi tập tin cấu hình cho vim của bạn với chuột được đặt thành mouse = a không?

câu trả lời gốc ^

Nếu mouse=rkhông cung cấp cho bạn tất cả các tùy chọn sao chép trước đây, hãy đổi nó thànhmouse=v

Cả hai mouse=rmouse=vcó cùng chức năng bạn đang cần, nhưng tùy thuộc vào vimrc mà bạn đang sử dụng, cái này sẽ hoạt động tốt hơn cái kia.


bạn cũng đã thử làm nổi bật văn bản và sử dụng nút giữa chuột để đi qua một nơi khác. có xu hướng hoạt động tốt hơn khi thử dùng Ctrl + v và Ctrl + c
bgrif

Tôi không biết câu hỏi của bạn có nghĩa là gì: Ý one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a?bạn là nếu tôi có :mouse=atrong tệp .vimrc của mình? Tôi có :mouse=atrong tập tin .vimrc của tôi.
Pinocchio

1
chỉ --with-x=yes? Tôi không cần phải đặt :set --with-x=yes mouse=ahay cái gì đó? Bạn có thể làm rõ những gì bạn có ý nghĩa?
Pinocchio

1
Hãy để tôi nghiên cứu nếu bạn cần kết hợp --with-x=yesđể set mouse=a. Khi tôi đọc nó, tất cả những gì tôi thấy là chính nó trong tập tin cấu hình. Nhưng nó có thể khác nhau vì vậy tôi muốn chắc chắn rằng tôi nói với bạn điều đúng sẽ làm việc cho bạn.
bgrif

1
Cảm ơn rất nhiều, gợi ý này hoạt động như một cơ duyên với chuột = v
Pamungkas Jayuda

21

Đối với người dùng OS X: Để sao chép dán bằng cách mouse=asử dụng altthay vì Shiftchọn văn bản. Sau đó cmd-ccmd-vlàm việc như mong đợi.

Tìm thấy câu trả lời này tại đây https://stackoverflow.com/a/4608387/671639 sau rất nhiều lần googling.


Bạn là Chúa ......: ')
omerjerk

điều duy nhất làm việc cho tôi, cảm ơn!
Don

3
Đối với tôi, OSX hoạt động "fn" thay vì "shift" hoặc "alt".
ssasa


6

Giải pháp của Bharath , nhấn Shifttrong khi sao chép, sẽ thực hiện nó, nhưng nó sẽ sao chép nhiều hơn những gì bạn muốn sao chép trong trường hợp đánh số hoặc băm nhận xét.

Một cách để làm như vậy ngay cả với mouse = a là sử dụng chế độ trực quan bằng cách nhấn Vcho con trỏ đơn hoặc Shift+ Vđể tô sáng toàn dòng và bạn có thể di chuyển lên hoặc xuống bằng mũi tên và sử dụng Yđể sao chép hoặc Dcắt và điều đó sẽ hoạt động.


@Anthon, Sẽ làm, Cảm ơn đã làm rõ.
amrx

1
Tôi đã viết lại nhận xét tự phát âm của bạn để làm cho nó giống như một câu trả lời theo cách mà các mod có thể sẽ để nguyên như vậy (và bạn có thể có được một số tiếng tăm trên đó để bạn có thể nhận xét). Nếu bản gốc là một chỉnh sửa nhỏ hơn, bình luận sẽ phù hợp hơn.
Anthon

5

Có cùng một vấn đề: không thể làm nổi bật bằng chuột nên không thể sao chép và dán từ VIM trong phiên cuối vào tài liệu và trình duyệt Windows: Đã làm như sau và hiện tại nó hoạt động:

: set clipboard=unnamedplus
: set mouse=r

4

Tham khảo: http://vimdoc.sourceforge.net/htmldoc/options.html

Xem phần Ghi chú ở cuối tham chiếu:
Khi bật chuột, các nút chuột vẫn có thể được sử dụng bằng cách giữ phím shift. Điều này bao gồm sao chép dán bằng nút chuột.

*'mouse'* *E538*
'mouse'         string  (default "", "a" for GUI, MS-DOS and Win32)
            global
            {not in Vi}
    Enable the use of the mouse.  Only works for certain terminals
    (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
    sysmouse and Linux console with gpm).  For using the mouse in the
    GUI, see |gui-mouse|.
    The mouse can be enabled for different modes:
        n   Normal mode
        v   Visual mode
        i   Insert mode
        c   Command-line mode
        h   all previous modes when editing a help file
        a   all previous modes
        r   for |hit-enter| and |more-prompt| prompt
    Normally you would enable the mouse in all four modes with:
        :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

    See |mouse-using|.  Also see |'clipboard'|.

    Note: When enabling the mouse in a terminal, copy/paste will use the
    "* register if there is access to an X-server.  The xterm handling of
    the mouse buttons can still be used by keeping the shift key pressed.
    Also see the 'clipboard' option.

1
Cảm ơn đã đóng góp tài liệu tham khảo đó, nhưng, nó có trả lời câu hỏi không? Nếu vậy, bạn có thể xác định một phần của trích dẫn đó, trình bày tóm tắt của câu trả lời thực tế?
G-Man nói 'Phục hồi Monica'

0

Đối với phần thứ hai của câu hỏi của bạn, nơi bạn đã chỉ định rằng khi dán từ các ứng dụng khác vào vim, nó sẽ thêm các tab / dấu cách. Hãy thử thêm phần này vào ~ / .vimrc đặt dán hoặc trong vim trước khi dán ở chế độ bình thường, nhấn "shift" + ":" và nhập "set paste"


0

Bạn có thể sử dụng yđể sao chép (yank) và pđể dán ngay cả khi :set mouse=ađã đặt ~/.vimrc. Sử dụng v+ arrow keysđể làm nổi bật văn bản. Để sao chép toàn bộ một dòng một cách nhanh chóng, sử dụng shift+ y.



0

Sử dụng hai dòng dưới đây trong của bạn ~/.vimrcđể sử dụng tất cả các tính năng hay của a gui-mousevà dán vào bảng tạm hệ thống bằng cách sử dụng y(phím yank) nếu bạn không thực sự cần bất kỳ bộ đệm clipboard bổ sung nào:

set mouse=a
set clipboard=unnamed
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.