Wybieranie zakresu linii w Notepad ++

10

Jak szybko wybrać określony zakres linii w Notepad ++? Mam plik tekstowy zawierający ponad 1 mln wierszy i muszę z niego usunąć niektóre fragmenty, ale ręczne wybieranie wierszy zajmuje zbyt wiele czasu. Na przykład: muszę wybrać linie od 2000 do 12000, jak to zrobić szybko?

Mcyg
źródło
1
Podobne pytanie o przepełnienie stosu.
trejder

Odpowiedzi:

2

Mam lepszą odpowiedź. Możesz nagrać makro (usuwając np. 10Linie). Następnie uruchom go kilka razy.

1) Idź do Macro > Start recording

2) przytrzymaj Shifti dotknij, Downaby zaznaczyć na przykład 10linie. I usuń je.

3) Idź do Macro > Stop Recording

Teraz twoje makro jest zapisywane, możesz zapisać je do użycia w przyszłości.

4) Idź do Macro > Save Current Recording Macro.... I zapisz to z imieniem.

5) Przesuń kursor do linii, którą chcesz usunąć, a następnie przejdź do Macro > Run A Macro Multiple Times.... Wybierz makro i uruchom żądane Nczasy.

szynka
źródło
To jest pomysł! To może działać, dziękuję bardzo. :)
Mcyg
7

Tylko Left Clickraz w linii. 2000Następnie przejdź do linii 12000, przytrzymaj Shifti Left Clickponownie.

1) Left Clickw linii2000

2) Idź do linii 12000

3) Shift+ Left Clickw linii12000

szynka
źródło
1
Tak, ale tracę zaznaczenie za pomocą Ctrl + G. O tym mówię, przejście od 2000 do 12000 zajmuje wieki.
Mcyg
Oba rozwiązania działają dzięki! Zaoszczędził ból głowy
3

Właśnie odpowiedziałem na to w tym podobnym pytaniu , ale wygląda na to, że jest to bardziej odpowiednia odpowiedź tutaj i domyślam się, że ten tytuł pytania uzyska więcej trafień ... więc zamieszczam tutaj i mam nadzieję, że to nie jest jakiś rodzaj faux pas ... (może powinien to być link do drugiego?)

# File:: selectGOTO.py
#   A N++ Python Script to enhance line selection speed compared to mouse, cursor, page controls.
#   Selects text from the [ start|end ] of current line to [ end|start ] of GOTO line.

# Install using:: Plugins -> Plugin Manager -> Python Script
# Create script using:: Plugins -> Python Script -> New Script -> "selectGoto.py"
# Add to menu:: Plugins -> Python Script -> Configuration -> [select script] [ add ]
# Create shortcut:: [Restart N++]
#   Settings -> Shortcut Mapper -> Plugin Commands -> selectGOTO -> [modify] [ctrl]+[shift]+[g]

# Simple usage:
#   [ctrl]+[shift]+[g] line#
#   Do your operation... (ie: del)

from Npp import *

class startAnchor:
    pos = 0

def selectGOTO( args ):
    endPos = editor.getCurrentPos()
    if( endPos > startAnchor.pos ):
        startAnchor.pos = editor.positionFromLine( editor.lineFromPosition( startAnchor.pos ) )
    else:
        tmp = startAnchor.pos
        startAnchor.pos = endPos
        endPos = tmp
    endPos = editor.getLineEndPosition( editor.lineFromPosition( endPos ) )
    editor.setSel( startAnchor.pos, endPos )
    editor.clearCallbacks()

def main():
    startAnchor.pos = editor.getCurrentPos()
    editor.callback( selectGOTO, [SCINTILLANOTIFICATION.UPDATEUI] )
    notepad.menuCommand( MENUCOMMAND.SEARCH_GOTOLINE )

main()
Thell
źródło
Świetny! Szukałem tego od wieków. Jednak edytowałem Twój kod, aby nie przenosił początkowego punktu wyboru - nie ma takiej potrzeby. (Usunięto kod po if (endPos> startAnchor.pos)).
Nigel Touch
Stworzyłem również dodatkowe wersje, które wybierają Poprzednia zakładka (polecenie 43007) i Następna zakładka (43006), które bardziej mi odpowiadają.
Nigel Touch
0

1) kliknij ctrl + g podaj numer linii, aby przejść przypuść 2000
2) Kliknij prawym przyciskiem myszy, a następnie wybierz opcję Rozpocznij / Zakończ
3) kliknij ctrl + g podaj numer linii, aby przejść przypuść 10000
4) Kliknij prawym przyciskiem myszy, a następnie wybierz opcję Rozpocznij / Zakończ
5) Ctrl + c, aby skopiować

Mahendra
źródło