2008-11-17 6 views
6

Khi sử dụng gdb và Vim, thường tôi muốn dừng trên một dòng cụ thể. Thông thường trong Vim I copy-paste số dòng hiển thị trên vùng quy tắc vào phiên gdb. Nó sẽ tiết kiệm cho tôi rất nhiều rắc rối nếu tôi có thể sử dụng một cái gì đó như "+<magic-incantation> để sao chép số dòng của vị trí con trỏ hiện tại vào bộ đệm xclipboard. Điều này có thể không?Trong Vim, có cách nào để sao chép số dòng hiện tại vào bộ đệm không?

Trả lời

10

đặt này trong vimrc của bạn

map ,n <Esc>:let @*=line(".")<CR> 

sau đó sử dụng ,n sẽ sao chép các số dòng hiện tại vào clipboard

-1

Bạn không chắc chắn đây có phải là những gì bạn đang theo dõi hay không nhưng bạn đã thử sử dụng các điểm đánh dấu chưa?

Đặt con trỏ trên dòng bạn muốn, sau đó nhập m và một chữ cái, hãy nói a.

Nhập 'a sẽ đưa bạn đến dòng có chứa điểm đánh dấu.

Nhập `a sẽ đưa bạn đến thư thực tế mà bạn đã đánh dấu trong dòng.

Hmm, chỉ cần suy nghĩ thêm một chút, điều này phải có sẵn vì số dòng có sẵn để sử dụng trong các chức năng khác nhau, ví dụ: để sử dụng trong thanh trạng thái.

+0

Nice thử, nhưng đáng buồn là một bộ đệm không giữ dòng sau đó. Dấu và yanks phải sử dụng một bộ đăng ký khác ... – richq

+0

Bugger. Không chắc chắn về những gì bạn muốn điều này cho nhưng tôi giả định chỉ là chuyển hướng. Có thể thêm một chút văn bản để làm rõ các câu hỏi? –

5

Vì vậy, các dòng kỳ diệu là:

:call setreg('*', line('.')) 

Lý do:

  1. Sổ * giữ clipboard
  2. line('.') giữ dòng số lượng hiện tại

Tất nhiên bạn có thể lập bản đồ chức năng đó để một phím tắt:

nmap ,ln :call setreg('*', line('.'))<CR>