Notepad ++ Multi edycja


112

Jak mogę mieć wiele kursorów w Notepad ++?

Będę miał kilka wartości rozdzielanych tabulatorami. Muszę napisać zapytanie dla wszystkich tych wartości. Na przykład, jeśli otrzymam plik Excel z takimi wartościami:

1234 xyz pqr
2345 sdf kkk
...

Chcę skopiować cały ten fragment danych do Notepad ++ i napisać zapytanie, wstawiając wszystkie wartości na raz.

Lubię to:

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

Robiłem to z moim poprzednim edytorem tekstu Ultraedit. Czy można to zrobić za pomocą Notepad ++?


2
Eee ... Użyj SublimeText. :)
Praveen Kumar Purushothaman

Robię to cały czas w Notepad ++, ale utknąłem w tej pracy z UltraEdit ... Jak to zrobić z UltraEdit? :)
Ron Jensen - Wszyscy jesteśmy Monicą

Odpowiedzi:


166

Tak: po prostu naciśnij i przytrzymaj Altklawisz, kliknij i przeciągnij, aby wybrać linie, których kolumny chcesz edytować, i zacznij pisać.

Możesz także przejść do Ustawienia> Preferencje ... i na karcie Edycja włączyć edycję wielokrotną, aby umożliwić zaznaczenie wielu oddzielnych regionów lub kolumn tekstu do jednoczesnej edycji.

Jest znacznie bardziej intuicyjny, ponieważ możesz zobaczyć swoje zmiany na żywo podczas pisania.


2013 tutaj, wersja 5.2: Nie ma (już) zakładki Edycja ani opcji wielokrotnej edycji.
Wouter

@Wouter: Nadal jest dla mnie w wersji 6.2 ... jeśli nie ma jej w wersji 5.2, to coś innego może być nie tak, ale nie mogę dalej komentować.
BoltClock

@BoltClock: Super! Gdzieś pomiędzy wersją v5.2 i v6.2 ta funkcja musiała zostać dodana. A może gdzieś wcześniej na chwilę się zgubił :)
Wouter

1
Demo można zobaczyć tutaj: notepad-plus-plus.org/features/multi-editing.html . Wygląda jak stara wersja, ale wypróbowałem ją w wersji 6.4.5 i działała dobrze.
brazilianldsjaguar

10
alt+up/downnie działa dla mnie. Musiałem alt+shift+up/downzamiast tego użyć . v6.9.1
AXO

51

W miejscu, w którym chcesz dodać tekst, wykonaj:

Shift+ Alt+down arrow

i wybierz żądane linie. Następnie wpisz. Wpisany tekst zostanie wstawiony we wszystkich wybranych wierszach.


1
Naprawdę najlepsza odpowiedź tutaj.
Etienne Gautier

to jest jeszcze lepsza odpowiedź! pamiętaj, aby użyć shift + alt dla dowolnej akcji, takiej jak wytnij, kopiuj!
gaurav

Długo szukałem tej funkcji, dzięki!
michal.hubczyk

46

Możesz dodawać / edytować zawartość w wielu wierszach za pomocą przycisku sterowania. To jest funkcja edycji wielu w Notepad ++, musimy ją włączyć w ustawieniach. Naciśnij i przytrzymaj klawisz Control, wybierz miejsca, w których chcesz wprowadzić tekst, zwolnij kontrolkę i zacznij pisać, spowoduje to zaktualizowanie tekstu we wszystkich wybranych wcześniej miejscach.

wprowadź opis obrazu tutaj

Ref: http://notepad-plus-plus.org/features/multi-editing.html


1
Uwielbiam gif, który stworzyłeś. Dzięki za to.
Julien

Właśnie tego chciałem. Dziękuję Ci.
Sol


22

Możesz użyć Edit > Column Editor...do wstawienia tekstu w bieżącej i następnych liniach. Skrót to Alt + C.


8

Notepad ++ ma potężny silnik regex, zdolny do wyszukiwania i zastępowania wzorców do woli.

W Twoim scenariuszu:

  1. Kliknij pozycję menu Wyszukaj \ Zamień ...

  2. Wypełnij pole „Znajdź” wzorcem wyszukiwania:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. Wypełnij wzór zamiany:

    Insert into tbl (\1, \2) where clm = \3
    
  4. Kliknij Replace Allprzycisk.

I to wszystko.

NotePad ++ zamień zrzut ekranu okna


Używam wyrażenia regularnego do tego typu edycji od ponad 10 lat, ale wiele osób naprawia wyrażenie regex mylące lub trudne do nauczenia
raider33

6

Najłatwiejszą metodą rozwiązania problemu (bez przechodzenia do innego edytora lub uczenia się wyrażeń regularnych) jest zapisanie makra.

  • Umieść kursor na początku tekstu, kliknij przycisk „Nagraj” na wstążce, a następnie edytuj tylko ten jeden wiersz tekstu. Możesz używać tylko klawiszy strzałek lub Ctrl + klawiszy strzałek do poruszania się po znakach / słowach, zamiast klikać myszą. Przydatne są również klawisze „home” i „end”.
  • Kiedy skończysz z tą jedną linią, przesuń kursor (ponownie bez użycia myszy) na początek następnej linii.
  • Kliknij przycisk „Zatrzymaj nagrywanie”.
  • Kliknij przycisk „Odtwórz makro”, aby sprawdzić, czy w następnym wierszu działa zgodnie z oczekiwaniami.
  • Kliknij 'uruchom makro wiele razy', aby zrobić to jeszcze raz, i jeszcze raz, i jeszcze raz ...: P
Zaletą tego w porównaniu z kursorami do edycji wielokrotnej jest to, że nie trzeba ręcznie klikać i umieszczać kursorów w każdym wierszu. Drugą zaletą jest to, że możesz pracować z danymi rozdzielanymi tabulatorami, które nie mają spójnego rozmiaru / długości - po prostu użyj ctrl + left / right, aby pominąć słowa.

Szczerze mówiąc, makra w N ++ uratowały mi około roku życia.


1

Notepad ++ ma tylko edycję kolumn. Nie jest to całkowicie to samo, co wiele kursorów.

Sublime Text ma cudowną implementację tego, warto to sprawdzić ...
To stosunkowo nowy edytor (2011), który dość szybko zyskuje na popularności: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20Sublime% 20Text & cmpt = q

Edycja: Najwyraźniej gdzieś w Notepad ++ w wersji 6.x dodano edycję z wieloma kursorami, ale w Sublime wciąż jest kilka bardziej zaawansowanych funkcji, takich jak „wybierz następne wystąpienie”.


edycja npp z wieloma kursorami nie jest tak dobra, jak edycja wielowierszowa wzniosłej.
th1rdey3

1
Korekta: multi-kursor edycji NPP ma nigdzie w pobliżu tak dobre jak wielowierszowego edycji Sublime przez domyślnie . Biblioteka scintilla zapewnia wszystkie funkcje, które wspierają wysublimowane. Każdy użytkownik może pobrać wtyczkę, taką jak nppscripts lub pythonscript, aby uzyskać dostęp do podstawowej struktury npp i zmapować te skrypty na skróty klawiaturowe, emulując wszystkie wysublimowane polecenia. Dla tych, którzy nie chcą zawracać sobie głowy konfigurowaniem swojego edytora, koniecznie płać za wzniosłość.
user2867288

Rozumiem, skąd pochodzisz, ale nie jest sprawiedliwe poproszenie zwykłego użytkownika o napisanie skryptu podstawowego środowiska edytora dla normalnej funkcji. Zgodziłbym się z tobą, gdyby wtyczka już to zrobiła (gdybym miała więcej czasu, zrobiłbym ją). Również ten niedawny post sourceforge.net/p/scintilla/feature-requests/1085 mówi, że „zaznacz następne” może być łatwe do zrobienia, ale nadal nie możesz mieć funkcji klawiszy strzałek. Zastanawiam się, jak łatwe byłoby „pominięcie” również? Podświetl następny, pomiń następny, a czasami strzałki mogą być pomocne.
ShawnFumo

0

W tym celu możesz skorzystać z wtyczki ConyEdit. Gdy ConyEdit działa w tle, wykonaj następujące kroki:

  1. użyj wiersza poleceń cc.spc /\t/ a aby podzielić tekst na kolumny i zapisać je w tablicy o dwóch wymiarach.
  2. użyj polecenia, cc.paby wydrukować, używając zawartości tablicy.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.