vi editor : How to replace multiple tab by tab-space-tab - replace

I have a text file which has two TABS consecutively. I need to insert a SPACE between those two TABS.
I am working on vi editor. Can anyone tell me how to do that.

Use :
:%s/\t\t/\t \t/g
Do you want to perform multiple substitution on each line?

To globally replace all instances of \t\t with \t \t
:g/\t\t/s//\t \t/g
or to replace the first instance on every line:
:g/\t\t/s//\t \t

Related

Find pipe character and replace with newline

I currently have a list of a few thousand elements each separated using the "|" character. Is there a way with sublime text to place each item on it's own line?
I have attempted to use the Regex find and replace with the parameters of
Find: |
Where: doc.txt
Replace: \n
For some reason that placed every character on a new line.
For example:
listItem1|newItem2|newItem3|newItem4|newItem5|newItem6
Had placed each letter on a new line, but I was intending for it to find the character and insert a carriage return. much like
listItem1
newitem2
newItem3
newItem4
newItem5
newItem6
Is there a simple way to accomplish this without using a plugin? I've seen some examples using plugins, but I would think there would be a way.
Select one | and press ALT + F3 on windows and linux, CMD + CTRL + G on mac to select all instances in the file, then hit Enter
To use \n in the replace field you need to activate regex.
You need to escape the pipe | character to use it in a regex search.
So activate regex find and replace and use these values:
FIND = \|
REPLACE = \n
That will achieve what you want to do.

How to replace a sentence

How to replace the text
input:
This glass contains 1.5l of milk. But i don't like milk
ouptput:
Replace_text But i don't like milk
I need to replace text from the beginning to the next full dot. But i don't know what was the sentence.
vim has its definition of sentence. This you can read :h sentence.
For your example, I would do (assume your cursor is at the BOL):
c)WAHTEVER
The c) will remove the 1st sentence and enter INSERT mode.
To do batch replacement, you can record macro or make use of normal command.
What about this substitution command?
:%s/\(.\{1,}\)\.\(\w*\)/Replace_text\2/g
or using character classes (you might need to add special characters etc):
([\w\s]+\.\S[\w\s]+)\.(.*)
http://regexr.com/3cc0r
You can do the following
^cf.
It jumps to first non-blank character, deletes text including . and puts you in insert mode so that you can type in Repace_text.
If you want to change till the ., change f with t
You can also make use of text objects. cis will let you change the sentence.

Unwrap text in Sublime Text 2

I'd like to unwrap lines so that I can turn them from lines with hard line-breaks to no line breaks.
Specifically, this means that contiguous runs of lines with non-whitespace should be joined together Essentially, any \n with no whitespace on either side should be replaced with a single space. Other linebreaks shouldn't get touched.
I feel like it ought to be a search-and-replace with a search string something like (?!\n)\n(?!\n) -> , but that doesn't work, as it doesn't match anything.
Is there an ST2 built-in command for this?
any \n with no whitespace on either side
(?<!\s)\n(?!\s)
other linebreaks shouldn't get touched.
(?<!(?:\s|\n))\n(?!\s)
Replace with ''
As #flow mentioned, there are built-ins for that task. Just select the lines you want to join and press Ctrl + J.
And your way should works too. Only you missed a bit. It should be (?<!\n)\n(?!\n)
The following solution works best for text copied from a console log with 80 columns. It only removes \n if the line touches the last column.
Find:
(.{80})\n
Replace:
$1

Sublime text find and replace with special characters

I suck at regular expressions and what to do a simple find and replace of '}' to '} /n' notepad++ can recongise what I'm after as it has the 3 options of normal find and replace, special chars and full regex. I however only ever used to option two. How can I enable special characters in my search using sublime text 2.
Cheers
Joe,
In sublime you can use find & replace. Drag the replace panel large enough and use cmd + enter to go to a new line.
Hit replace all:
And thats it your sorted chap
If you want to replace } within notepad++ with } \n you can use the following rules:
find: }
Replace with: } \n
Searchmethod: Extended (\n, \e...)
Press replace all

Removing empty lines in Notepad++

How can I replace empty lines in Notepad++? I tried a find and replace with the empty lines in the find, and nothing in the replace, but it did not work; it probably needs regex.
There is now a built-in way to do this as of version 6.5.2
Edit -> Line Operations -> Remove Empty Lines or Remove Empty Lines (Containing Blank characters)
You need something like a regular expression.
You have to be in Extended mode
If you want all the lines to end up on a single line use \r\n. If you want to simply remove empty lines, use \n\r as #Link originally suggested.
Replace either expression with nothing.
There is a plugin that adds a menu entitled TextFX. This menu, which houses a dizzying array of quick text editing options, gives a person the ability to make quick coding changes. In this menu, you can find selections such as Drop Quotes, Delete Blank Lines as well as Unwrap and Rewrap Text
Do the following:
TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines
notepad++
Ctrl-H
Select Regular Expression
Enter ^[ \t]*$\r?\n into find what, leave replace empty. This will match all lines starting with white space and ending with carriage return (in this case a windows crlf)
Click the Find Next button to see for yourself how it matches only empty lines.
Press ctrl + h (Shortcut for replace).
In the Find what zone, type ^\R ( for exact empty lines) or ^\h*\R ( for empty lines with blanks, only).
Leave the Replace with zone empty.
Check the Wrap around option.
Select the Regular expression search mode.
Click on the Replace All button.
You can follow the technique as shown in the following screenshot:
Find what: ^\r\n
Replace with: keep this empty
Search Mode: Regular expression
Wrap around: selected
NOTE: for *nix files just find by \n
This worked for me:
Press ctrl + h (Shortcut for replace)
Write one of the following regex in find what box.
[\n\r]+$ or ^[\n\r]+
Leave Replace with box blank
In Search Mode, select Regex
Click on Replace All
Done!
In notepad++ press CTRL+H , in search mode click on the "Extended (\n, \r, \t ...)" radio button then type in the "Find what" box: \r\n (short for CR LF) and leave the "Replace with" box empty..
Finally hit replace all
Well I'm not sure about the regex or your situation..
How about CTRL+A, Select the TextFX menu -> TextFX Edit -> Delete Blank Lines and viola all blank line gone.
A side note - if the line is blank i.e. does not contain spaces, this will work
1) Ctrl + H ( Or Search 🠆 Replace..) to open Replace window.
2) Select 'Search Mode' 'Regular expression'
3) In 'Find What' type ^(\s*)(.*)(\s*)$ & in 'Replace With' type \2
^ - Matches start of line character
(\s*) - Matches empty space characters
(.*) - Matches any characters
(\s*) - Matches empty spaces characters
$ - Matches end of line character
\2 - Denotes the matching contend of the 2nd bracket
Refer https://www.rexegg.com/regex-quickstart.html for more on regex.
You can search for the following regex: ^(?:[\t ]*(?:\r?\n|\r))+ and replace it with empty field
Ctrl+H.
find - \r\r
replace with - \r.
This obviously does not work if the blank lines contain tabs or blanks. Many web pages (e.g. http://www.guardian.co.uk/) contain these white lines, as a result of a faulty HTML editor.
Remove white space using regular expression as follows:
change pattern: [\t ]+$
into nothing.
where [\t ] matches either tab or space. '+' matches one or more occurrences, and '$' marks the end of line.
Then use notepad++/textFX to remove single or extra empty lines.
Be sure that these blank lines are not significant in the given context.
Edit >> Blank Operations >> Trim Leading and Trailing Spaces (to remove black tabs and spaces in empty lines)
Ctrl + H to get replace window and replace pattern: ^\r\n with nothing (select regular expression)
Note: step 1 will remove your code intendation done via tabs and blank spaces
Sometimes \n\r etc not work, here to figure it out, what your actually regular expression should be.
Advantage of this trick: If you want to replace in multiple file at once, you must need this method. Above will not work...
CTRL+A, Select the TextFX menu -> TextFX Edit -> Delete Blank Lines as suggested above works.
But if lines contains some space, then move the cursor to that line and do a CTRL + H. The "Find what:" sec will show the blank space and in the "Replace with" section, leave it blank.
Now all the spaces are removed and now try CTRL+A, Select the TextFX menu -> TextFX Edit -> Delete Blank Lines
/n/r assumes a specific type of line break. To target any blank line you could also use:
^$
This says - any line that begins and then ends with nothing between. This is more of a catch-all. Replace with the same empty string.
I did not see the combined one as answer, so search for ^\s+$ and replace by {nothing}
^\s+$ means
^ start of line
\s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
$ until end of line
This pattern is tested in Notepad++ v8.1.1
It replaces all spaces/tabs/blank lines before and after each row of text.
It shouldn't mess with anything in the middle of the text.
Find: ^(\s|\t)+|(\s|\t)+$
Replace: leave this blank
Before:
_____________________________________
\tWORD\r\n
\r\n
\tWORD\s\tWORD\s\t\r\n
\r\n
\r\n
WORD\s\s\tWORD\t\sWORD\s\r\n
\t\r\n
\s\s\s\r\n
WORD\s\sWORD\s\s\t\r\n
____________________________________
After:
_____________________________________
WORD\r\n
WORD\s\tWORD\r\n
WORD\s\s\tWORD\t\sWORD\r\n
WORD\s\sWORD
_____________________________________
A few of the above expressions and extended expressions did not work for me, but the regular expression "$\n$" did.
An easy alternative for removing white space from empty lines:
TextFX>TextFX Edit> Trim Trailing Spaces
This will remove all trailing spaces, including trailing spaces in blank lines.
Make sure, no trailing spaces are significant.
this work for me:
SEARCH:^\r
REPLACE: (empty)