Move a block to the right or left
-
Hi
Are there shortcuts to Move a block to the right or left completely like microsoft word (ctrl+R and ctrl+L)
ctrl+alt+R and ctrl+alt+L doesn’t work ( the following image)
http://8pic.ir/images/0nu0oph3hj31aer7uidb.jpg
I want to move all lines together on the left or right with a shortcut like microsoft word (like the following image)
-
Hello, Ramin Parsa,
It look easy and difficult, at the same time !!
A) How to move a block of lines to the leftmost position ( so, at column 1 )? Quite easy, indeed !
-
Firstly, select your block of lines
-
Open the Replace dialog ( Ctrl + H )
-
SEARCH
^\h+ -
REPLACE
EMPTY -
Select the Regular expression search mode
-
Check the In selection option
-
Click on the Replace All button
Et voilà !
For instance, from the original text, below :
This is a short and simple test and I strongly hope that everything will turn right, in the end !We’ll get the text below :
This is a short and simple test and I strongly hope that everything will turn right, in the end !This S/R should be easily written, as a macro !
B) How to move a block of lines to the rightmost position ? This task is more difficult and SHOULD, normally, be done by a script language, as the Python or Lua plugin
Indeed, if we’re going to use regexes, we have to find out, first, the number
Mof characters of the longest line of your block, as I suppose that the rightmost location is located just after the last character of the longest line !In our example above, the longest line contains 53 characters =>
M = 53Remarks :
-
I suppose that your text does NOT contain any tabulation character, only space characters !
-
To easily see the changes, in N++, just display the EOL characters ( View > Show symbol > Show all characters )
-
To run the three S/R, below, use, exclusively, the Replace All button !
So, from our original text ,below :
This is a short and simple test and I strongly hope that everything will turn right, in the end !We perform a first S/R, which adds 53 spaces, at the end of all the lines of the block
SEARCH
$REPLACE
53 spacesWe get the text below :
This is a short and simple test and I strongly hope that everything will turn right, in the end !Then, we run a second S/R, which delete any range of extra spaces, beginning at column 54, in all lines of the block
SEARCH
^.{53}\K +REPLACE
EMPTYThis time, the text becomes, as below :
This is a short and simple test and I strongly hope that everything will turn right, in the end !Finally, use the third and last S/R, below, which swap the final range of space characters with the first part of each line of the block :
SEARCH
^(.+?)( +)$REPLACE
\2\1This is a short and simple test and I strongly hope that everything will turn right, in the end !
No doubt that everyone understands, at once, why a macro, with the three successive S/R, would not adapted to that task :-((
Of course, if the macro mechanism allow us to enter the value of the parameter
M, we would just have to determine the longest line of the block and run the macro !Best Regards
guy038
-
-