Làm cách nào tôi có thể chọn mọi dòng khác có nhiều con trỏ trong Sublime Text?


162

Trong Sublime Text 2, có thể chọn ngay lập tức mọi dòng khác (hoặc lẻ / chẵn) và đặt nhiều con trỏ trên các dòng đó không?

Cảm ơn.


5
Bạn không muốn chấp nhận một câu trả lời?
Martin Thoma

Câu trả lời:


381
  1. Tìm: Ctrl+F
  2. Nếu các biểu thức thông thường chưa được bật, hãy bật chúng: Alt+R
  3. Nhập vào biểu thức .*\n.*\n
  4. Tìm tất cả: Alt+Enter
  5. Nhấn mũi tên trái để thoát khỏi các lựa chọn, chỉ để lại các con trỏ:
  6. Bây giờ bạn có một con trỏ ở đầu mỗi dòng số lẻ. Nếu bạn muốn các dòng được đánh số chẵn, nhấn xuống:
  7. Tùy thuộc vào tệp, có thể có một con trỏ bị thiếu ở dưới cùng của tệp. Sử dụng chuột (chết tiệt!) Cuộn xuống phía dưới, nhấn và giữ Ctrlvị trí con trỏ bị thiếu để thêm nó vào.

83
Bạn cũng có thể sử dụng (.*\n){10}cho mỗi 10 dòng
Joe Daley


3
đẹp! (.*(\n|$)){2}Giải pháp của @ zessx bao gồm dòng cuối cùng
woojoo666

3
Chỉ cần lưu ý, trong Sublime 2 chạy trên OS X 10.11.5, lối tắt cho tìm kiếm RegEx là Alt + Command + R. Bạn cũng có thể bật tìm kiếm RegEx bằng cách nhấn Command + F và sau đó nhấp vào biểu tượng trông như thế này: [. *]
lustig

97

Bạn có thể làm điều đó một cách dễ dàng:

  • Chọn tất cả các dòng của bạn, hoặc toàn bộ tài liệu Ctrl+A
  • Thêm nhiều bộ chọn: Ctrl+ Shift+ L(và trong Mac: Command + Shift + L)

BIÊN TẬP :


12
Mặc dù không phải là câu trả lời đúng cho câu hỏi này, đây là những gì tôi muốn. cảm ơn vì đã chia sẻ
Rajani Karuturi

Gợi ý tuyệt vời và đơn giản!
filip

5
Giải pháp này là những gì tôi cần nhưng không phải là những gì OP muốn.
hét lên

13

Tôi đã tìm kiếm một cách để chọn các dòng thay thế trong cao siêu.

Cảm ơn Joe Daley cho một câu trả lời rất tốt. Mặc dù tôi nhận ra rằng, nếu bạn sử dụng regex, nó sẽ không chọn dòng cuối cùng trong tệp nếu không có dòng mới ở cuối tệp.

Tôi muốn cải thiện câu trả lời đó nhưng dường như tôi không có đủ danh tiếng vào lúc này để bình luận về câu trả lời ở trên.

Bạn có thể sử dụng chuỗi tìm kiếm sau với regex được bật, sau đó nhấn alt + enter. Tiếp theo là một mũi tên trái. Điều này sẽ đặt một con trỏ trên mỗi dòng thay thế (cùng các bước như được giải thích bởi Joe Daley)

^.*\n.*$

7

Bạn có thể thử với một plugin: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

Lưu tệp này trong của bạn Packages/User .

Sau đó, thêm ràng buộc chính cho plugin đó:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

Lệnh này sẽ chọn tất cả các dòng khác. Khi bạn có các dòng khác được chọn, bạn có thể sử dụng Split selection into lineslệnh ( Ctrl+ Shift+ L, Cmd+ Shift+ Ltrên Mac).

Nếu bạn muốn có everythnig trong một phím tắt, bạn có thể sửa đổi plugin như thế này:

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

Dòng cuối cùng chỉ để loại bỏ lựa chọn, để lại nhiều con trỏ ở đầu các dòng được chọn.


1
Wow điều này có vẻ đầy hứa hẹn - Tôi sẽ thử nó sớm nhất có thể!
dùng2136580

Cảm ơn rât nhiều! Tôi khá mới với các plugin. Có lẽ vui. Bắt đầu có thể chọn tất cả các dòng khác sẽ chỉ là tuyệt vời. Chúc mừng!
dùng2136580
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.