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
M
of 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 = 53
Remarks :
-
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 spaces
We 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
EMPTY
This 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\1
This 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
-
-