Insert sequential numbers at start of lines
-
@Alan-Kilborn
1: Line content
2: Line content
3: Line content
4: Line content
5: Line content
6: Line content
7: Line content
8: Line content
9: Line content
10: Line content
11: Line content
12: Line content
… and to become
Line content
Line content
Line content
Line content
etc.
Find: ^\d+: doesn’t work and plus, i don’t need it for the whole document, just for the lines i select. -
@Ionut-Dorin said in Insert sequential numbers at start of lines:
Find: ^\d+: doesn’t work
If you did exactly what I said to do, I see no reason why it wouldn’t work on your sample data.
i don’t need it for the whole document, just for the lines i select.
Ok, so don’t checkmark Wrap around but make your selection first and then checkmark In selection.
-
@Alan-Kilborn Yes, that did it, I think i read too fast and didn’t see that you said “Search mode: Regular expression” and i didn’t check that, so maybe that’s why it didnt work.
Also, i turned it into a macro for ease of use.
Thank you so much for your help and patience, you’re a lifesaver. -
@Alan-Kilborn said in Insert sequential numbers at start of lines:
Sure, most anything is possible with programming.
Hi Alan, the scripts have been working really well, thank you so much for your help. One thing I’ve noticed is that, when using the script for selected lines, it has to be a block selection for the script to work. I can’t select individual lines (eg: line 1, line 4, line 7) and insert numbers at that the start of only those lines.
I’ve tried:
- Multi-selection using Ctrl + single-click at the start of each line.
- Multi-selection using Ctrl + single-click at the start and end of each line.
- Multi-selection using Ctrl + double-click to select the first word of each line.
Numbers 1 & 2 don’t actually select any text so when I run the script I get a “No text selected” message.
Number 3 only places a number at the start of the line for the last word I select.Is it possible or am I expecting more than the script can achieve?
-
You must be referring to the
TextFxInsertLineNumbers.py
script, because the other script discussed in this topic,InsertLineNumbersOnLines.py
, doesn’t deal with any selected text at all.Here’s a modified version of the script I’m calling
TextFxInsertLineNumbers2.py
:# -*- coding: utf-8 -*- from __future__ import print_function # references: # https://community.notepad-plus-plus.org/topic/23206/insert-sequential-numbers-at-start-of-lines # https://community.notepad-plus-plus.org/topic/23166/faq-desk-how-do-i-replicate-the-features-of-textfx from Npp import * #------------------------------------------------------------------------------- class TFILN2(object): def __init__(self): handled_line_nbr_list = [] running_line_nbr = 1 line_tup_list = [] for s in range(editor.getSelections()): start_line = editor.lineFromPosition(editor.getSelectionNStart(s)) end_line = editor.lineFromPosition(editor.getSelectionNEnd(s)) line_tup_list.append((start_line, end_line)) line_tup_list.sort() for (start_line, end_line) in line_tup_list: for line_nbr in range(start_line, end_line + 1): if line_nbr not in handled_line_nbr_list: line_content = editor.getLine(line_nbr).rstrip('\n\r') editor.replaceLine(line_nbr, '{n:08} {c}'.format(n=running_line_nbr, c=line_content)) running_line_nbr += 1 handled_line_nbr_list.append(line_nbr) editor.setSel(editor.getCurrentPos(), editor.getCurrentPos()) #------------------------------------------------------------------------------- if __name__ == '__main__': TFILN2()
This version handles all types of selections.
-
@Alan-Kilborn said in Insert sequential numbers at start of lines:
This version handles all types of selections.
Perfect!!! Thank you so much 😁👍