2009-05-25 33 views
102

Tôi muốn biết nếu có cách nào mà tôi có thể dán văn bản được kéo vào cửa sổ lệnh. Ví dụ: nếu tôi đã giật mạnh một từ và tôi muốn grep nó ở một số vị trí tôi không thể chỉ cần dán từ bằng cách sử dụng 'p'. Tuy nhiên nếu tôi sao chép nó vào clipboard, Shift-Insert sẽ dán cùng một thứ.Làm thế nào để sao chép văn bản yanked vào dấu nhắc lệnh VI

Có bất kỳ tinh chỉnh nào có sẵn cho phép tôi dán văn bản được kéo dài vào dấu nhắc lệnh vim không? Tôi đang sử dụng gvim trên Windows.

Trả lời

147

cố gắng sử dụng

<ctrl+r>" 

nơi "là viết tắt của sổ đăng ký mặc định.

+7

Lưu ý rằng thao tác này cũng hoạt động ở chế độ chèn thông thường, không chỉ trên dòng lệnh. – user55400

+22

Nếu bạn sử dụng '*' thay vì '" ', bạn sẽ nhận được nội dung của khay nhớ tạm thời của hệ thống (có thể là tiện dụng) –

34

<C-R>" sẽ dán đệm mặc định. Cách khác, bạn có thể sử dụng q: để mở một bộ đệm cho lệnh tiếp theo. Thử :help q:

+8

Crap thánh,' q: 'vượt quá tuyệt vời – Hubro

12

Ở chế độ thông thường, bấm :, sau đó ctrl-r, và sau đó ".

+2

Về mặt kỹ thuật, khi bạn nhấn:, bạn không còn ở chế độ bình thường – graywh

+0

@graywh - điểm tốt! – Rook

3

Bạn có thể giật vào khay nhớ tạm bằng bộ đệm có tên *. Ví dụ: thao tác này sẽ sao chép dòng hiện tại vào khay nhớ tạm thời:

"*yy 

Vì vậy, bạn có thể sao chép đường bằng cách sử dụng và sau đó dán nó bằng dịch chuyển-chèn trong dòng lệnh.

Tương tự như vậy, bạn có thể dán từ clipboard như thế này:

"*p 
2

của clipboard của +, trên Mac ít nhất. Vì vậy, bạn sẽ viết "+yy để yank một dòng vào clipboard và "+p để dán. Mặc dù bạn luôn có thể sử dụng Command-C và Command-V.

5

Nếu nó chỉ là một từ mà bạn muốn sao chép, bạn có thể sử dụng <C-r><C-w>

  1. Đặt con trỏ lên từ
  2. Sau đó, bạn có thể gõ một cái gì đó giống như :vim <C-r><C-w> *
9

Để tiết kiệm bạn là một bước giật gân, nếu con trỏ của bạn là từ bạn muốn sử dụng trong Ex, hãy sử dụng:

<ctl-r><ctl-w> 

Điều này eschews yanking để dán vào dòng lệnh; thay vào đó, một người dán từ dưới con trỏ của một người trực tiếp vào dòng lệnh. Ví dụ:

:%s/<ctl-r><ctl-w>/foo/g 
Các vấn đề liên quan