Cách nhảy trực tiếp đến số cột trong Vim


234

Đôi khi để sửa lỗi, tôi phải thực hiện công việc thú vị là lội qua mã javascript được rút gọn. Các dòng có chiều rộng lên tới 600 cột. Thư viện báo cáo ngoại lệ đủ tử tế để cung cấp cho tôi tọa độ sự cố chính xác dưới dạng số dòng và số cột. Tuy nhiên tôi không thể tìm cách nhảy trực tiếp đến số cột, mặc dù tôi có thể nhảy đến dòng dễ dàng như vậy.

Tôi làm nó như thế nào?


Nghe có vẻ như đây là một công cụ cần được phát minh. "Phổ biến js của tôi và trong khi bạn ở đó nhảy đến vị trí được xác định bởi số cột này."
dnellis74

2
@ dnellis74 Công cụ đó tồn tại. Nó được gọi là "sourcemaps";)
Burgi

//, @Burgi, có thể haz 3 từ tóm tắt & liên kết không?
Nathan Basan

Câu trả lời:


333

Các |lệnh làm những gì bạn muốn, như trong 30|sẽ đưa bạn đến cột 30.

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar


41
Xin lưu ý, để sử dụng chung, đây là cột màn hình , không phải cột thực . Điều này có nghĩa là các <Tab>nhân vật sẽ nhận được kết quả khác nhau. Nếu những nhân vật này sẽ có mặt ở đó, bạn sẽ thay muốn |30lhhoặc |29lhoặc 029lhoặc một cái gì đó như thế.
Chris Morgan

25
Bạn cũng có thể chuyển một số trước các lệnh chuyển động khác nhau, ví dụ: 50hsẽ di chuyển 50 ký tự còn lại.
AB

7
:set nowrapcũng có thể giúp giảm nhầm lẫn giữa các dòng màn hình và các dòng tệp.
David Pope

4
@DavidPope: lưu ý rằng trong trường hợp này "cột màn hình" có nghĩa là nó vẫn liên quan đến điểm bắt đầu của dòng. g0đạt được "bắt đầu của dòng màn hình hiện tại".
Chris Morgan

10
Tài liệu của vim rất vui nhộn: "Đường ống của Ceci n'est pas une" :-)
Avinash Meetoo

45

Bạn có thể sử dụng cursorchức năng. Ví dụ: để nhảy đến cột 25 của dòng 15, bạn có thể sử dụng :call cursor(15,25).


2
Điều này không đưa ra câu trả lời cho câu hỏi và thật tiện lợi khi có lệnh Ex thay thế cho kịch bản. Lưu ý rằng nếu số dòng bằng 0, con trỏ sẽ ở trong dòng hiện tại.
Giles Gardam

Điều này đặc biệt tốt khi mở Vim từ các công cụ khác, vì cuộc gọi này có thể được thực hiện trên dòng lệnh:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves

5

Một câu trả lời khác phù hợp với tôi trên Mac OS là sử dụng lệnh di chuyển con trỏ sang phải (tức là l). Vì vậy, nếu con trỏ của bạn nằm trên cột đầu tiên và bạn muốn đặt con trỏ ở cột 50 của dòng hiện tại, hãy sử dụng lệnh:

49l
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.