Chọn khối mã trong vim


13

Cho một mã như thế này:

588          while ($linecounter > 0) {
589             $token = " ";
590             while ($token != PHP_EOL) {
591                 if (fseek($handle, $pos, SEEK_END) == -1) {
592                     $beginning = true;
593                     break;
594                 }
595                 $token = fgetc($handle);
596                 $pos--;
597             }
598             $linecounter--;
599             if ($beginning) {
600                 rewind($handle);
601             }
602         }

Con trỏ ở ký tự =trong dòng 590.

Đó là cách hiệu quả nhất để chọn khối mã:

  1. dòng 590-597
  2. dòng 591-596 (chỉ phần bên trong)

Câu trả lời:


20

Để làm đầu tiên:

  • Nhấn $để đi đến cuối của dòng{
  • Đẩy vhoặc V(tùy thuộc vào việc bạn muốn chọn dòng hay không)
  • Đẩy %(để nhảy đến khung phù hợp).

Để chỉ chọn phần bên trong, hãy vào bên trong phần bên trong và sử dụng công cụ i{sửa đổi hướng.

Ví dụ: để xóa mọi thứ bên trong {…}khối hiện tại , hãy nhập : di{.


1
Ồ, tôi vừa học cách sử dụng yi(, cảm ơn :)
takeshin

10
  1. $để nhảy đến cuối dòng bạn đang ở (để vượt qua niềng răng mở)
    vđể bắt đầu một lựa chọn ( Vcho toàn bộ dòng)
    %để nhảy đến nẹp phù hợp.

  2. jđể đi xuống một dòng để con trỏ của bạn nằm trong niềng răng bạn đang cố chọn
    vđể bắt đầu lựa chọn ( Vcho toàn bộ dòng)
    i{chọn mọi thứ bên trong dấu ngoặc


Phương thức 2 có lẽ là phương pháp tốt nhất ở đây, vì chuyển động $ trong phương thức 1 chỉ hoạt động vì dấu ngoặc mở ở cuối dòng. Phương pháp 2 hoạt động mà không có chuyển động j nếu con trỏ của bạn ở bất cứ đâu trong dấu ngoặc nhọn.
SpoonMeiser

3

Để mở rộng câu trả lời của Caleb chỉ một chút, vi{sẽ chọn "bên trong" của khối mã. Để bao gồm "bên ngoài" của khối mã, tức là bao gồm cả dấu ngoặc nhọn, hãy sử dụng va{.

Điều này sẽ không bao gồm khổ whilethơ mặc dù. Để làm điều đó, bạn có thể sử dụng ođể di chuyển con trỏ đến đầu lựa chọn, và sau đó 0di chuyển vùng chọn đến đầu dòng.

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.