2009-10-07 21 views
21

Có thể yank toàn bộ khối mã Python trong Vim không?Làm thế nào để yank toàn bộ một khối trong Vim?

Hãy cho nó một def, for, if vv khối ...

+1

"Thuộc về superuser.com", có thể? Tôi không chắc chắn ... –

+7

Không đồng ý, đây là về việc sử dụng một công cụ phần mềm trong một quá trình phát triển cụ thể (mã hóa Python), xem http://meta.stackexchange.com/questions/12373/which- các loại câu hỏi liên quan đến chương trình có liên quan/12378 # 12378 –

Trả lời

20

Bạn có thể yank một đoạn văn với y}. Điều này sẽ không yank tất cả các phương pháp nếu bạn có một dòng trống mặc dù.

+5

Bạn có thể sử dụng Ctrl-v và y} để xem các dòng nào sẽ được kéo mạnh. Bạn có thể nhấn} khi bạn muốn bao gồm khối của mình. – noomz

4

Có một tập lệnh bổ sung vim python_fn.vim trong đó có một trong các chức năng của nó, một ràng buộc quan trọng để chọn một khối mã Python bằng cách sử dụng ]v. Sau đó bạn có thể yank nó với y như bình thường.

3

Tôi thường chỉ sử dụng chế độ chặn hình ảnh. Shift-V, di chuyển và 'y'ank khối được đánh dấu. Chỉ có rất nhiều phím tắt tôi có thể giữ trong bộ nhớ cùng một lúc :)

+2

Đây là những gì tôi thường làm, tôi không nghĩ đó là cách tốt nhất, nhưng nó đủ dễ dàng để làm với một tế bào não :) –

+0

lựa chọn hình ảnh cũng rất hữu ích cho thụt đầu dòng/dedenting khối sử dụng> và < –

3
  1. Nhập lựa chọn dòng hình ảnh bằng cách nhấn 'V'
  2. Khi hoàn tất việc lựa chọn pres khối 'y'
  3. Dán nó ở đâu đó với 'p 'hoặc 'P'
3

bạn có thể kết hợp một tìm kiếm với yank, vì vậy nếu chức năng của bạn kết thúc với return retval bạn có thể gõ y/return retval

6

Nếu bạn muốn yank tất cả mọi thứ trừ số { sử dụng yi{ (hoặc yi}). Nếu bạn đưa dấu ngoặc nhọn vào, hãy sử dụng ya{ (hoặc ya}).

Các ia bổ nghĩa trongtất cả.

Để yank một từ bất cứ đâu trong từ bạn là: yiw

Để yank nội dung của dấu ngoặc đơn: yi); nếu bạn muốn bao gồm họ, sử dụng ya(

Bạn có thể làm tương tự cho " hoặc ' với yi", ya" hoặc yi'ya'.

Tất nhiên, bạn không bị giới hạn khi giật mình. Bạn có thể xóa một từ với diw hoặc thay đổi nó với ciw, vv ... vv ...

+3

Tuyệt vời cho một ngôn ngữ C. Tôi nghĩ rằng câu hỏi đã được cụ thể cho python mặc dù. – bluehavana

+2

Ngoài ra còn có 'p' để yank đoạn văn hiện tại (đó là bất kỳ thứ gì được phân tách bằng các dòng trống phía trên bên dưới). 'yip' yanks toàn bộ đoạn văn và' yap' yanks toàn bộ đoạn + dòng trống sau. Điều này rất hữu ích nếu con trỏ của bạn đã ở đâu đó bên trong đoạn bạn muốn giật. –

1

tôi đã thực hiện một plugin tên spacebox mà hiện một lựa chọn trực quan của tất cả các dòng với sự thụt vào cùng một hoặc nhiều như dòng hiện tại.

Với khoảng trống Python là cách của nó, bạn có thể đặt con trỏ trên dòng bên dưới def hoặc if và ra lệnh :SpaceBox để chọn "chặn" của bạn.

6

Bộ tiện ích bổ sung tuyệt vời Python-mode bao gồm một số key commands để điều hướng lớp học, phương pháp và khối chức năng.

  • Để yank một phương pháp: ymộtM (phương pháp nội: yiM)

  • Để yank một lớp: ymộtC

Có chuyển động tiện dụng khác, như chuyển từ chức năng-to-function (]]). Xem số complete list of keys để biết thêm.

0

Chỉ cần gấp lớp bằng za và sau đó sử dụng chế độ trực quan (V) để chọn lớp đã thu gọn. Bằng cách này bạn không cần phải cuộn quá nhiều. Sau đó, chỉ yank với y. Khi bạn đang thực hiện yanking mở ra lớp với za một lần nữa.

0
  1. Trong file py, nhấn Esc
  2. Nhấn shift V để vào chế độ dòng visual
  3. Highlight lên và xuống phím mũi tên
  4. Nhấn d để xóa các hàng chọn
  5. Đến hàng bạn muốn đặt các dòng và nhấn p để dán các dòng sau hàng hoặc nhấn shift P để dán trước một hàng

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan