it-swarm-vi.tech

Làm cách nào để cắt / sao chép / dán trong GVim trên Ubuntu hoạt động với Ctrl + X, Ctrl + C, Ctrl + V?

Theo mặc định, việc cắt/sao chép/dán các đoạn cắt ngắn trong GVim trên Ubuntu là:

[.__.] Cắt "+ x [.__.] Sao chép" + y [.__.] Dán "+ gP [.__.]

Tôi muốn sử dụng các tổ hợp phím điều khiển trong GVim, giống như tôi sử dụng trong Firefox và các ứng dụng gnome. Làm cách nào để định cấu hình GVim để hoạt động như các ứng dụng Gnome khác?

52
pcapademic

Thêm các dòng sau vào _vimrc hoặc .vimrc của bạn

source $VIMRUNTIME/mswin.vim
behave mswin

Nhưng hãy cẩn thận, chế độ trực quan sau đó là CTRL-Q thay vì CTRL-V.

Để biết tổng quan về mswin.vim, hãy xem mswin.vim sourcode . Nó được nhận xét rất tốt và nếu một số lệnh không rõ ràng, bạn có thể dễ dàng tìm kiếm nó trong trợ giúp của vim.

Dưới đây là tổng quan nhanh được tổng hợp từ nguồn:

  • phím lùi và phím con trỏ bao bọc đến dòng trước/tiếp theo
  • CTRL-X và SHIFT-Del bị cắt
  • CTRL-C và CTRL-Chèn là Sao chép
  • CTRL-V và Shift-Chèn được dán
  • Sử dụng CTRL-Q để làm những gì CTRL-V đã sử dụng để làm
  • Sử dụng CTRL-S để lưu, cũng trong chế độ Chèn
  • CTRL-Z là Hoàn tác; không phải trong cmdline
  • CTRL-Y là Làm lại (mặc dù không lặp lại); không phải trong cmdline
  • Alt-Space là menu Hệ thống
  • CTRL-A là Chọn tất cả
  • CTRL-Tab là cửa sổ tiếp theo
  • CTRL-F4 là Đóng cửa sổ

Theo yêu cầu của Nippysaurus: Tôi đặt theo dõi trong .gvimrc của mình để hiển thị Ctrl-V bên cạnh Dán trong menu:

unmenu! Edit.Paste
aunmenu Edit.Paste
nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V        "+gP
cnoremenu    &Edit.&Paste<Tab>Ctrl-V        <C-R>+

Tôi đã không kiểm tra kỹ lưỡng, chỉ kiểm tra nhanh nếu nó làm đúng như tôi mong đợi. Làm việc cho tôi, hy vọng nó hoạt động cho bạn ;-)

50
Ludwig Weinzierl

Nếu bạn muốn Cắt/Sao chép/Dán để hoạt động bằng các phím nóng "tiêu chuẩn", nhưng bạn không muốn thay đổi bất kỳ tùy chọn cấu hình nào khác trong gvim, hãy thử thêm phần sau vào ~/.vimrc.

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

Dán chỉ hoạt động ở chế độ Trực quan và chèn, do đó bạn không phải lo lắng về xung đột với Ctrl-V và Chế độ hình ảnh theo chiều. Đây không phải là vấn đề, vì Sao chép và Cắt đưa bạn vào chế độ chèn, do đó bạn có thể dán ngay lập tức sau đó. Nếu bạn dùng thử, bạn sẽ thấy rằng nó hoàn toàn tự nhiên.

Tôi đã đưa ra cấu hình này sau vài lần tinh chỉnh và tôi nghĩ bây giờ nó "hoàn hảo". Nếu bạn thậm chí có chút không hài lòng với cấu hình sao chép/dán hiện tại của mình, hãy thử điều này và tôi cá là bạn sẽ thích nó.

44
Cogan

Nếu bạn muốn duy trì hành vi vim bình thường nhưng cũng cho phép sử dụng bảng tạm thời ít cồng kềnh hơn, hãy xem Truy cập bảng tạm hệ thống . Nếu bạn muốn gvim sử dụng bảng tạm hệ thống làm bộ đệm mặc định của nó (vì vậy, bất kỳ lệnh x, y, p, v.v., hãy sử dụng bảng tạm) vào vimrc của bạn:

set clipboard=unnamed

Cá nhân tôi sử dụng bộ đệm nhiều hơn trong vim so với giữa vim và hệ thống; Vì vậy, tôi muốn có một phím tắt rườm rà hơn một chút so với việc hệ thống của tôi liên tục bị ghi đè. Nhưng thật tuyệt khi lựa chọn này dành cho những người thích nó.

9
jtb

Tôi nghĩ bạn có thể thêm phần này bằng lệnh: imap (đã thử chỉ với Ctrl + X trong Windows đã hoạt động, nhấn ctrl + c dường như để hủy lệnh mặc dù vậy bạn có thể phải thực hiện trong vimrc).

:imap <C-X> "+x
:imap <C-C> "+y 
:imap <C-V> "+gP

Nếu bạn thêm nó vào ~/.vimrc, bạn chỉ cần xóa: phía trước imap.

imap chỉ thêm các liên kết trong chế độ chèn, vì vậy bạn có thể muốn thay đổi nó thành chỉ ánh xạ hoặc một cái gì đó khác. Nhìn vào :help mapmode để tìm hiểu thêm về cách ánh xạ lại và hủy ánh xạ.

Chúc may mắn!

2
Peter Thorin