Sao chép / dán Vimperator


23

Tôi đang thử Vimperator . Tôi chủ yếu muốn nó cho cuộn hjkl, và tôi thích hệ thống "gợi ý" của nó cho các liên kết sau. Hai tính năng này thực sự là tất cả những gì tôi cần; Tôi nghĩ.

Tôi không bận tâm đến các tính năng khác, đôi khi nó cản trở tôi.

Điều làm tôi khó chịu nhất là sao chép / dán. Tôi đã quen với Ctrl+ c/ Ctrl+ v, tôi không phiền khi sử dụng một phím tắt khác, nhưng ..

:help yank chỉ ra rằng sao chép văn bản đã chọn được thực hiện bằng Y, nhưng phương pháp duy nhất được đề cập để dán là nút chuột giữa!

Điều này thật vô lý chống lại tinh thần của Vim!

Làm cách nào tôi có thể dán vào Vimperator mà không cần sử dụng chuột?


Các câu trả lời trong câu hỏi này đã hết hạn (có nghĩa là vì chúng bảy tuổi) Nếu bạn đến đây từ google thì đây không phải là (cho đến ngày hôm nay) những câu trả lời bạn đang tìm kiếm
Arthur Ulfeldt

Câu trả lời:


15

Điều tốt nhất và dễ nhất mà bạn có thể làm là sắp xếp lại các phím. Nó không khó. Đặt cái này vào _vimperatorrc của bạn (hoặc .vimperatorrc trong Linux)

noremap <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

<C-v>theo mặc định được ánh xạ sang chế độ "Chuyển tiếp", có nghĩa là phím tiếp theo bạn nhấn được gửi trực tiếp đến Firefox mà không được vimperator xử lý và ăn. Vì vậy, các ánh xạ ở trên chỉ cần kích hoạt chế độ "Vượt qua" và gửi phím tắt tương ứng.

Thậm chí còn có một plugin vimperator mở rộng điều này hơn nữa và ánh xạ lại tất cả các phím tắt phổ biến của cửa sổ , vì vậy chúng hoạt động như mong đợi.


3
cho <Cv> (dán) nó phải được inoremap
Hasen

chấp nhận cho liên kết plugin! đó là điều tuyệt vời và khắc phục sự cố
hasen

2
Có vẻ như phiên bản hiện tại (3.8.1) có thể có Cc và Cv thực hiện sao chép và dán ở cấp độ hệ điều hành theo mặc định ... Tôi không thể tìm thấy bất cứ điều gì về nó trong các thay đổi, nhưng tôi chỉ chuyển từ Pentadactyl sang mới nhất Vimperator và Cc và Cv làm việc như tôi muốn họ.
driftcatcher

@hangtoven dường như là chính xác, câu trả lời ở đây đã lỗi thời
Arthur Ulfeldt

36

Tôi ngạc nhiên không có câu trả lời chính xác hơn cho câu hỏi này. Liên kết plugin của câu trả lời được chọn đã giải quyết vấn đề của OP, nhưng không ai thực sự giải thích làm thế nào để dán một cái gì đó vào trường văn bản mà không sử dụng chế độ thông qua (Cv).

Nếu bạn đang ở trong một trường văn bản ở chế độ INSERT và muốn dán một cái gì đó, điều rõ ràng cần làm trong vi-Land là nhấn ESC và p để dán. Trong vimperator, điều này không hoạt động - ESC hoàn toàn đưa bạn ra khỏi chế độ INSERT và chuyển sang chế độ mà bạn làm việc với toàn bộ trang / tab.

Vimperator giải quyết điều này bằng cách có thêm một chế độ BASIC - TEXTAREA. Khi ở chế độ TEXTAREA, bạn có thể sử dụng các lệnh được hỗ trợ mà bạn sử dụng trong vi.

Enter TEXTAREA mode: C-t
Paste:    p
Copy line:    yy
Delete Char:  x
Delete Line:  dd

V.v.

Điều này dường như không được ghi chép rõ ràng - cuối cùng tôi đã nhận ra nó chủ yếu là do nhầm lẫn. Nó hoạt động tương tự trong các hộp văn bản nhiều dòng và một dòng.


Cảm ơn đã bình luận điều này. Đây chính xác là những gì tôi cần để có được vimperator vòng đầu và hình thành các trường.
ZweiBlumen

@RevAaron khi bạn vào chế độ TEXTAREA giống như chế độ VI truyền thống và hầu hết phím VI sẽ hoạt động để chỉnh sửa văn bản? Và tôi cũng nhận thấy (một lần nữa là tình cờ) khi tôi nhấn "d" và sau đó "s" hoặc "a" trong chế độ TEXTAREA, nó chuyển chế độ sang chế độ gọi là VISUAL. Tôi sẽ đánh giá cao nếu bạn có thể cho tôi một số thông tin về điều này. hoặc thậm chí nếu bạn thích tôi có thể đặt nó như một câu hỏi thì bạn có thể trả lời nó sau đó những người khác sẽ sử dụng nó.
Mehrad

13

Ngay bây giờ, vimperator ánh xạ lại cả Ctrl + C (từ 'sao chép' thành 'hủy') và Ctrl + V (từ 'dán' sang 'truyền qua'). Trên Linux, phương pháp sao chép / dán ưa thích là bằng nút chuột giữa, vì vậy đây không phải là vấn đề. Trên Windows, đây là một thảm họa giao diện người dùng và nó rất cần được sửa chữa.

Có ba nơi bạn có thể sao chép từ: văn bản từ trang Web, văn bản từ trường biểu mẫu và văn bản từ một ứng dụng bên ngoài. Có hai nơi bạn có thể sao chép vào: vào trường biểu mẫu và vào ứng dụng bên ngoài. Các địa chỉ và thanh lệnh hoạt động như các trường mẫu.

Copying from...
     A web page: 'Y' works, '^C' doesn't
     Form field: 'Y' doesn't work, '^C' does
     Extern application: 'Y' doesn't work, '^C' does
  Copying to...
     Form field: '^V' doesn't work, '^V,^V' does
     External application: '^V' works, '^V,^V' pastes twice
 Or, seen another way
       Copy  Paste
 Page  Y     N/A
 Form  ^C    ^V,^V
 App   ^C    ^V

Người dùng thông thường sẽ không ghi nhớ bảng đó. Họ sẽ không bao giờ hiểu được, bởi vì nó không được ghi chép rõ ràng và họ sẽ không đọc nó ngay cả khi nó là. Thay vào đó, họ sẽ sử dụng menu chuột phải, điều duy nhất hoạt động ở mọi nơi. Trên thực tế, một vài tuần sau khi tôi bắt đầu sử dụng Vimperator, tôi đã bắt gặp mình làm điều đó, trong một ứng dụng hoàn toàn không liên quan, điều mà tôi chưa từng làm trước đây.

Chúng ta cần khôi phục ^ C và ^ V về các chức năng ban đầu, hợp pháp của chúng dưới dạng sao chép và dán, nghĩa là thay thế ^ C = hủy và ^ V = các phím nóng truyền qua. Trên thực tế, cả hai phím nóng này là duy nhất cho vimperator và không xuất hiện trong vim. ^ V có nghĩa là 'chặn hình ảnh' trong vim, không áp dụng trong vimperator, vì vậy việc truyền qua có thể dễ dàng được gán cho một số khóa khác. Tôi đề nghị dấu gạch chéo ngược trong chế độ lệnh và ctrl + dấu gạch chéo ngược ở cả chế độ lệnh và chèn. Rời đi ^ C. Tôi nghĩ rằng nên được chuyển đến ^ S. Điều này có hai khả năng ghi nhớ tốt: đó là 'dừng lại' và đó cũng là phím nóng Unix cho XOFF, nó vô dụng nhưng tương tự về mặt ngữ nghĩa. ^ S hiện đang "lưu trang dưới dạng" trong vimperator, thứ hiếm khi được sử dụng và vẫn có thể được truy cập bằng: save hoặc: saveas.

Hoàn tác cũng bị hỏng; đó là ^ Z, nhưng ^ Z không phải là chế độ chuyển qua và không có cách nào để hoàn tác chỉnh sửa trong trường biểu mẫu mà không sử dụng chuột. Tôi thấy không có lý do gì để không chuyển nó sang một phím nóng khác, đặc biệt là vì ^ Z trong vim có nghĩa là tạm ngưng, điều này hoàn toàn không liên quan và bất ngờ thấy mình ở chế độ vượt qua là vô cùng mất phương hướng. Tôi không thể nghĩ ra một phím nóng không độc đoán để thay đổi thành này, nhưng ^ Z ban đầu khá độc đoán, vì vậy bất kỳ phím nóng nào không được sử dụng sẽ làm.

Soruce: http://www.mozdev.org/pipermail/vimperator/2008-Oc/10/002359.html


2

Tôi đã tìm kiếm một cách để làm điều này trong một thời gian. Đẹp một. Nhưng giải pháp noremap từ user4126 không hoàn hảo nếu tôi muốn dán vào dòng lệnh hoặc vào hộp văn bản khi joe chỉ ra. Vì vậy, tôi đã điều chỉnh nó với inoremap và cnoremap cũng tại http://charlieharvey.org.uk/page/vimperator_cut_and_paste . Có vẻ như vnoremap được hỗ trợ.

Vì vậy, bạn có thể dán vào dòng lệnh và vào hộp văn bản bằng cách sử dụng phím tắt ctrl-v chỉ một lần. Dán đoạn sau vào .vimperatorrc của bạn và khởi động lại Firefox.

noremap <C-v> <C-v><C-v>
inoremap <C-v> <C-v><C-v>
cnoremap <C-v> <C-v><C-v>

noremap <C-c> <C-v><C-c>
inoremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>

2

Tôi không tìm thấy câu trả lời hữu ích vì tôi không thể thấy Ctrl+ ở cbất cứ đâu. Những gì tôi làm là sử dụng phím tắt SecureCRT. Đó là, để sao chép từ trang:

Ctrl+Ins

Để dán: Ctrl+ Vhai lần (như ai đó nói trong câu trả lời ở nơi khác).


Xin cảm ơn, thưa ngài. Ánh xạ <cc> đến <c-in> đã giải quyết được hương vị đặc biệt của tôi về vấn đề này.
Steve Vermeulen


1

Để có câu trả lời ngắn - ^ V ^ V (ví dụ: Ctrl-V Ctrl-V)

Ctrl-V đầu tiên thực hiện "thao tác gõ phím tiếp theo". Ctrl-V thứ hai dán văn bản. Đây là những gì tôi làm cho hầu hết các trường văn bản.

Nếu bạn sử dụng chế độ vi cho các trường văn bản nhiều dòng (đặt noinsertmode), bạn cũng có thể dán bằng p - vì vậy nếu tôi muốn dán URL của tab khác vào thẻ này, tôi có thể chuyển đến tab đó, sử dụng y và sau đó quay lại tab này. Thanh dưới cùng của trình duyệt sẽ nói - TEXTAREA - và tôi có thể nhấn p để dán vào URL.


0

Tôi sẽ đề nghị sử dụng

map <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

Bởi vì nếu bạn đã mở một trình soạn thảo văn bản bên ngoài, một cửa sổ Cc đơn giản tại FF sẽ kết thúc trình soạn thảo bên ngoài và bạn sẽ mất tất cả.

BR

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.